本文主要向大家介绍了Oracle数据库之Oracle 重建控制文件一例,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。

环境:OEL 5.7 + Oracle 10.2.0.5

背景:在Oracle的运维过程中,时常会遇到一些场景是需要重建控制文件才可以解决的。本文的场景可以通过复制控制文件到新路径,运行一段时间后,再用老的控制文件启动数据库重现。

1.当前故障现象

在使用旧的控制文件启动数据库时,报错ORA-01122、ORA-01110、ORA-01207:

SQL> shutdown abort

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

Total System Global Area  599785472 bytes

Fixed Size                  2098112 bytes

Variable Size             218106944 bytes

Database Buffers          373293056 bytes

Redo Buffers                6287360 bytes

Database mounted.

ORA-01122: database file 1 failed verification check

ORA-01110: data file 1: '/oradata/cxywdb/system01.dbf'ORA-01207: file is more recent than control file - old control file

2.分析故障原因

根据报错信息查找MOS文档:

ORA-1122, ORA-1110, ORA-1207 while open the database after crash (文档 ID 283927.1)

延伸思考一下,为什么会这样?

主要错误是ORA-01207,利用oerr工具看到Oralce对这个错误的详细描述是:

01207, 00000, "file is more recent than control file - old control file"// *Cause:  The control file change sequence number in the data file is

//         greater than the number in the control file. This implies that

//         the wrong control file is being used. Note that repeatedly causing

//         this error can make it stop happening without correcting the real//         problem. Every attempt to open the database will advance the

//         control file change sequence number until it is great enough.

// *Action: Use the current control file or do backup control file recovery to

//         make the control file current. Be sure to follow all restrictions

//         on doing a backup control file recovery.

一般遇到这种情况,当前的控制文件肯定是找不到了。那么就得考虑重建控制文件来解决,MOS给出的建议也是重建控制文件。

3.重建控制文件

重建控制文件的核心步骤:

3.1 备份控制文件到trace

startup mountalter database backup controlfile to trace;

oradebug setmypid

oradebug tracefile_name

3.2 启动数据库到nomount状态

shutdown abortstartup nomount;

3.3 确认重建控制文件的语句

vi control.sqlCREATE CONTROLFILE REUSE DATABASE "CXYWDB" NORESETLOGS FORCE LOGGING ARCHIVELOG

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

MAXINSTANCES 8

MAXLOGHISTORY 292LOGFILE

GROUP 5 '/oradata2/cxywdb/redo11.log'  SIZE 50M,  GROUP 6 '/oradata2/cxywdb/redo12.log'  SIZE 50M,  GROUP 7 '/oradata2/cxywdb/redo13.log'  SIZE 50M-- STANDBY LOGFILEDATAFILE

'/oradata/cxywdb/system01.dbf',  '/oradata/cxywdb/undotbs01.dbf',  '/oradata/cxywdb/sysaux01.dbf',  '/oradata/cxywdb/users01.dbf',  '/oradata/cxywdb/alfred01.dbf',  '/oradata/cxywdb/alfred02.dbf',  '/oradata/cxywdb/alfred03.dbf',  '/oradata/cxywdb/alfred04.dbf',  '/oradata/cxywdb/alfred05.dbf',  '/oradata/cxywdb/dbs_i_alfred01.dbf'CHARACTER SET ZHS16GBK

;

3.4 恢复并打开数据库

SQL> recover database;Media recovery complete.SQL> alter database open;Database altered.

附:实际解决过程如下:

SQL> shutdown abort

ORACLE instance shut down.SQL> startup mountORACLE instance started.Total System Global Area  599785472 bytesFixed Size                  2098112 bytesVariable Size             218106944 bytesDatabase Buffers          373293056 bytesRedo Buffers                6287360 bytesDatabase mounted.SQL> alter database backup controlfile to trace;Database altered.SQL> oradebug setmypidStatement processed.SQL> oradebug tracefile_name

/s01/oracle/admin/cxywdb/udump/cxywdb_ora_3983.trcSQL> shutdown abortORACLE instance shut down.SQL> startup nomount;ORACLE instance started.Total System Global Area  599785472 bytesFixed Size                  2098112 bytesVariable Size             218106944 bytesDatabase Buffers          373293056 bytesRedo Buffers                6287360 bytesSQL> @controlControl file created.SQL> select status from v$instance;STATUS------------MOUNTEDSQL> recover database;Media recovery complete.SQL> alter database open;Database altered.

本文由职坐标整理并发布,希望对同学们学习Oracle有所帮助,更多内容请关注职坐标数据库Oracle数据库频道!

oracle数据库激活控制文件位置,Oracle数据库之Oracle 重建控制文件一例相关推荐

  1. oracle log block size,案例:Oracle无法启动报错ORA-00218: block size 0 重建控制文件

    天萃荷净 oracle数据库无法启动报错ORA-00218故障,通过重建控制文件解决文件损坏问题 遇到一个案例在数据库启动的时候报ORA-00218错误,而这个故障的引起原因是因为重建控制文件的时候, ...

  2. Oracle 11g重建控制文件——控制文件全部丢失,从零开始

    控制文件(control file)是一个相当小的文件(最多能增长到64M左右),其中包含Oracle需要的其他文件的一个目录.参数文件告知实例控制文件的位置,控制文件则告知示例数据库和在线重做日志文 ...

  3. 如果控制文件损坏那么如何恢复?恢复控制文件的方式有哪几种

    [RMAN]如果控制文件损坏那么如何恢复?恢复控制文件的方式有哪几种? 真题1.如果控制文件损坏那么如何恢复?恢复控制文件的方式有哪几种? 答案:如果控制文件有多个,而只损坏了单个控制文件,那么只需要 ...

  4. 重建控制文件的案例(RESETLOGS模式和NORESETLOGS模式)

    本案例分两种情况:归档模式和非归档模式.在每种模式下采用两种重建方式,即resetlogs和noresetlogs. 一.archived模式下: SQL> archive log list 数 ...

  5. 【翻译自mos中文文章】重建控制文件的方法

    重建控制文件的方法 參考原文: How to Recreate a Controlfile (Doc ID 735106.1) 适用于: Oracle Database - Enterprise Ed ...

  6. oracle 重建控制文件 恢复数据库

    C盘不小心被格式化了,Oracle在D盘,重装系统后,需要把数据库恢复起来 1.无法打开数据库,需要重建控制文件. SQL> shutdown abort; ORACLE 例程已经关闭. SQL ...

  7. oracle重建控制文件流程,ORACLE之重建控制文件

    当这些信息更改或者变动时,oracle数据库会自动把最新信息更新到controlfile文件里面. 启动数据库时,Oracle从初始化参数文件(pfile/spfile)中获得控制文件的名字及位置,打 ...

  8. oracle重建服务器,Oracle重建控制文件的实例教程

    前言 控制文件(control file)是一个相当小的文件(最多能增长到64M左右),其中包含Oracle需要的其他文件的一个目录.参数文件告知实例控制文件的位置,控制文件则告知示例数据库和在线重做 ...

  9. oracle 控制文件在哪里设置_oracle的controlfile控制文件

    参数文件中定义控制文件位置及个数,建议控制文件放在不同位置,最多可以创建8个,多个控制文件间是镜像的关系. 控制文件包含: 数据库名字及标识 数据库创建的时间戳 表空间名字 数据文件和联机重做日志文件 ...

最新文章

  1. 如何查看 SAP Spartacus PageLayoutComponent 里的 template$ 的值
  2. 爱荷华大选 App 投票酿闹剧的反思:为什么我们在软件工程方面如此糟糕?
  3. python报表利器TableOne学习实践
  4. 09年职称计算机考试,09年职称计算机考试试题A.doc
  5. JavaWeb学习思维导图
  6. 人才管理是什么意思_hr是什么意思(HR到底是干什么的?)
  7. mysql 需要什么硬件配置_Mysql的硬件优化和配置优化
  8. 云流化云渲染技术在vr看房/装修领域是怎样实现的?
  9. 商业研究(10):比呀比-海淘电商-海外正品直邮-高品质跨境购物平台
  10. javascript实现汉诺塔
  11. 程序员的算法趣题Q09: 落单的男女
  12. Android和Java中的回调函数
  13. Mac 卸载/安装 maven
  14. Js Event Loop
  15. Error Code: 1265. Data truncated for column
  16. 斯塔克尔伯格竞争模型
  17. Category(类别)和扩展(Extension)的区别
  18. 并发编程之LockSupport的 park 方法及线程中断响应
  19. 程序员的数学思维修炼
  20. 手把手教怎么制作U盘启动系统盘,Ventoy工具下载和使用

热门文章

  1. 是什么让我们聚在一起
  2. grappelli美化Django Admin
  3. C语言编译-嵌入式系统
  4. 结构化数据上的机器学习大杀器XGBoost
  5. zb_system login.php,zblog后台登录地址怎么修改?
  6. Tomcat如果默认8080被占用修改端口号和查询端口号地址
  7. python批量创建实例_Django批量创建Model实例
  8. ide循环执行用例 selenium_Selenium Web自动化Page Object设计模式——循环执行测试用例...
  9. html子级透明度不随父级别,我不想从CSS的父级继承子级不透明度
  10. HDU 5552 Bus Routes(NTT+分治)