暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle重建控制文件(单实例)

DB小榴莲 2018-12-01
1412

该方法适用版本Oracle Database - Enterprise Edition - Version 9.0.1.0 and later

 

1、重建控制文件的几个场景(circumstances)

 

  1. 控制文件当前所有副本都已经丢失或者损坏

  2. 当在还原一个控制文件遭到丢失或损坏的备份

  3. 需要更改控制文件中的硬限制数据库参数

  4. 当数据库移动到另一台服务器,并且文件位于不同的位置

 


2、重建控制文件的一般步骤


2.1 数据库实例在MOUNT或者OPEN阶段,生成一份控制文件的转储(一份ascii dump文件)


SQL> alter database backup controlfile to trace;

 

2.2 定位trace文件存放路径的两种方法

 

[1]使用user_dump_dest参数显示


a. 显示路径

 

b. 找到trace文件

进入到参数显示出来的路径后,使用命令:ls -lrt 按照日期/时间显示出最新生成的跟踪文件

 

[2]使用ORADEBUG命令输出生成trace文件的名称(全路径) 

 

a. 跟踪当前会话

SQL> oradebug setmypid;         

Statement processed.

 

b. 查看trace文件名及位置

SQL> oradebug tracefile_name;   

/oravl01/oracle/diag/rdbms/zldb4/zldb4/trace/zldb4_ora_15925498.trc

                      

 

2.3 从跟踪文件里找到重建控制文件的命令,并编辑成脚本文件,方便执行(createcon.sql)


CREATE CONTROLFILE REUSE DATABASE "ZLDB4" NORESETLOGS  ARCHIVELOG

    MAXLOGFILES 16

    MAXLOGMEMBERS 3

    MAXDATAFILES 100

    MAXINSTANCES 8

    MAXLOGHISTORY 584

LOGFILE

  GROUP 1 '+ZLDB4_DATA1/zldb4/onlinelog/group_1.257.923458569'  SIZE 1024M BLOCKSIZE 512,

  GROUP 2 '+ZLDB4_DATA1/zldb4/onlinelog/group_2.258.923458571'  SIZE 1024M BLOCKSIZE 512,

  GROUP 3 '+ZLDB4_DATA1/zldb4/onlinelog/group_3.259.923458575'  SIZE 1024M BLOCKSIZE 512

-- STANDBY LOGFILE

DATAFILE

  '+ZLDB4_DATA1/zldb4/datafile/system.260.923458579',

  '+ZLDB4_DATA1/zldb4/datafile/sysaux.261.923458581',

  '+ZLDB4_DATA1/zldb4/datafile/undotbs1.262.923458583',

  '+ZLDB4_DATA1/zldb4/datafile/users.264.923458593',

  ........

 '+ZLDB4_DATA1/zldb4/datafile/small_data.281.965566743',

  '+ZLDB4_DATA1/zldb4/datafile/test_data.282.966450905'

CHARACTER SET ZHS16GBK;

  

2.4 关闭实例,并删除数据库控制文件,模拟控制文件缺失环境


SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

 

ASMCMD> ls

Current.256.923458569.bak

ASMCMD> rm -f *

 

2.5 在控制文件丢失的情况下,尝试打开数据库


SQL> SHUTDOWN IMMEDIATE

Database closed.

Database dismounted.

ORACLE instance shut down.

 

SQL> STARTUP

ORACLE instance started.

 

Total System Global Area 2.1446E+10 bytes

Fixed Size                  2255824 bytes

Variable Size            3087008816 bytes

Database Buffers         1.8321E+10 bytes

Redo Buffers               35782656 bytes

ORA-00205: error in identifying control file, check alert log for more info

 

2.6 重建控制文件


SQL> @/home/orauser/.scrit/createcon.sql

 

Control file created.

 

2.7 打开数据库


SQL> alter database open;

 

Database altered.


如果重建控制文件中使用RESETLOGS选项,那么在尝试打开数据库时会有如下错误提示:


ERROR at line 1:

ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

 

SQL> select instance_name,status from v$instance;

 

INSTANCE_NAME    STATUS

---------------- ------------

zldb4            OPEN

 

最后修改时间:2021-06-23 11:26:47
文章转载自DB小榴莲,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论