【翻译自mos中文文章】重建控制文件的方法
2014-07-23 00:03
591 查看
重建控制文件的方法
参考原文:
How to Recreate a Controlfile (Doc ID 735106.1)
适用于:
Oracle Database - Enterprise Edition - Version 9.0.1.0 and later
Information in this document applies to any platform.
解决方案:
警告:
只有遇到下列场景时,你才应该recreate 你的控制文件
1.所有的当前的控制文件copies 已经丢失 或者 都已经损坏(corrupted)
2.你正在restore一个backup,在此backup中控制文件已经损坏 或者丢失(missing)
3.你需要在控制文件中改变一个hard limit 的数据库参数(database parameter)
4.如果你正在move 你的database 到一个server上,并且files位于不同的location上。
5. oracle 技术支持人员建议你重建控制文件。
第一种情况:在已经存在的db中(并且该db是mount or open状态)建立一个新的controlfile
首先,必须生成一个控制文件的ascii dump文件
SQL> alter database backup controlfile to trace;
该trace文件被生成在udump目录下:
SQL> show parameter user_dump_dest
NAME TYPE VALUE
-------------- ------ ------------------------------------------------
user_dump_dest string /oracle/product/11.1.0/db_1/diag/rdbms/V11/trace
到/oracle/product/11.1.0/db_1/diag/rdbms/V11/trace目录下,按照时间排序:
% cd /oracle/product/11.1.0/db_1/diag/rdbms/V11/trace
% ls -ltr
一旦定位到该文件,该文件会与一般的trace file一样显示如下:
Trace file /oracle/product/11.1.0/db_1/diag/rdbms/V11/trace/V11_ora_31225.trc
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /oracle/product/11.1.0/db_1
你感兴趣的是 包括 控制文件创建脚本的那一段。
修改trace file 并用修改后的脚本来建立控制文件
CREATE CONTROLFILE REUSE DATABASE "V11" NORESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/oradata/V11/redo01.log' SIZE 50M,
GROUP 2 '/oradata/V11/redo02.log' SIZE 50M,
GROUP 3 '/oradata/V11/redo03.log' SIZE 50M
DATAFILE
'/oradata/V11/system01.dbf',
'/oradata/V11/sysaux01.dbf',
'/oradata/V11/undotbs01.dbf',
'/oradata/V11/user01.dbf'
CHARACTER SET WE8MSWIN1252
;
--->请特别注意:CHARACTER SET WE8MSWIN1252 可以由 alert_sid.log中得到。
ALTER TABLESPACE TEMP_TEST ADD TEMPFILE '/oradata/V11/temp01.dbf' reuse;
"CREATE CONTROLFILE"之前的任何东西请删掉,
CHARACTER SET之后的任何东西请删掉,一定要保留那个分号
在上面的例子中,我们选择了NORESETLOGS 选项,并且该db运行于archivelog模式下。
请务必保证使用shutdown immediate选项来关闭数据库。然后启动到nomount状态下:
SQL> shutdown immediate;
SQL> startup nomount;
SQL>@control.sql
注意:当重建控制文件完毕后,务必保证添加已经存在temp file:
alter tablespace temp_ts add tempfile '?/oradata/V11/temp01.dbf'? reuse;
控制文件一旦被创建,db 被自动带入到mounted 状态。如果你使用了resetlogs打开了database,请尽快做一个backup
第二种情况:该db无法到mount 状态
1.要么restore 控制文件,
2.要么有一个重建控制文件的脚本,如下是一个例子:
CREATE CONTROLFILE REUSE DATABASE "DBNAME" NORESETLOGS ARCHIVELOG
Follow the format listing:
- Location of redo logs.
- Location of datafiles
- Specifying the characterset.
Once you have listed all files correctly you are ready to recreate your controlfile
SQL> startup nomount;
SQL>@control.sql
参考原文:
How to Recreate a Controlfile (Doc ID 735106.1)
适用于:
Oracle Database - Enterprise Edition - Version 9.0.1.0 and later
Information in this document applies to any platform.
解决方案:
警告:
只有遇到下列场景时,你才应该recreate 你的控制文件
1.所有的当前的控制文件copies 已经丢失 或者 都已经损坏(corrupted)
2.你正在restore一个backup,在此backup中控制文件已经损坏 或者丢失(missing)
3.你需要在控制文件中改变一个hard limit 的数据库参数(database parameter)
4.如果你正在move 你的database 到一个server上,并且files位于不同的location上。
5. oracle 技术支持人员建议你重建控制文件。
第一种情况:在已经存在的db中(并且该db是mount or open状态)建立一个新的controlfile
首先,必须生成一个控制文件的ascii dump文件
SQL> alter database backup controlfile to trace;
该trace文件被生成在udump目录下:
SQL> show parameter user_dump_dest
NAME TYPE VALUE
-------------- ------ ------------------------------------------------
user_dump_dest string /oracle/product/11.1.0/db_1/diag/rdbms/V11/trace
到/oracle/product/11.1.0/db_1/diag/rdbms/V11/trace目录下,按照时间排序:
% cd /oracle/product/11.1.0/db_1/diag/rdbms/V11/trace
% ls -ltr
一旦定位到该文件,该文件会与一般的trace file一样显示如下:
Trace file /oracle/product/11.1.0/db_1/diag/rdbms/V11/trace/V11_ora_31225.trc
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /oracle/product/11.1.0/db_1
你感兴趣的是 包括 控制文件创建脚本的那一段。
修改trace file 并用修改后的脚本来建立控制文件
CREATE CONTROLFILE REUSE DATABASE "V11" NORESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/oradata/V11/redo01.log' SIZE 50M,
GROUP 2 '/oradata/V11/redo02.log' SIZE 50M,
GROUP 3 '/oradata/V11/redo03.log' SIZE 50M
DATAFILE
'/oradata/V11/system01.dbf',
'/oradata/V11/sysaux01.dbf',
'/oradata/V11/undotbs01.dbf',
'/oradata/V11/user01.dbf'
CHARACTER SET WE8MSWIN1252
;
--->请特别注意:CHARACTER SET WE8MSWIN1252 可以由 alert_sid.log中得到。
ALTER TABLESPACE TEMP_TEST ADD TEMPFILE '/oradata/V11/temp01.dbf' reuse;
"CREATE CONTROLFILE"之前的任何东西请删掉,
CHARACTER SET之后的任何东西请删掉,一定要保留那个分号
在上面的例子中,我们选择了NORESETLOGS 选项,并且该db运行于archivelog模式下。
请务必保证使用shutdown immediate选项来关闭数据库。然后启动到nomount状态下:
SQL> shutdown immediate;
SQL> startup nomount;
SQL>@control.sql
注意:当重建控制文件完毕后,务必保证添加已经存在temp file:
alter tablespace temp_ts add tempfile '?/oradata/V11/temp01.dbf'? reuse;
控制文件一旦被创建,db 被自动带入到mounted 状态。如果你使用了resetlogs打开了database,请尽快做一个backup
第二种情况:该db无法到mount 状态
1.要么restore 控制文件,
2.要么有一个重建控制文件的脚本,如下是一个例子:
CREATE CONTROLFILE REUSE DATABASE "DBNAME" NORESETLOGS ARCHIVELOG
Follow the format listing:
- Location of redo logs.
- Location of datafiles
- Specifying the characterset.
Once you have listed all files correctly you are ready to recreate your controlfile
SQL> startup nomount;
SQL>@control.sql
相关文章推荐
- 【翻译自mos中文文章】重建控制文件的方法
- 【翻译自mos文章】在重建控制文件之前应该考虑的事情
- 【翻译自mos文章】在重建控制文件之后,丢失了数据库补充日志信息(Missed Database Supplemental Log Information)
- 【翻译自mos文章】重新创建物理standby database 的 控制文件的方法
- 【翻译自mos文章】在重建控制文件之前应该考虑的事情
- 【翻译自mos文章】当控制文件的备份丢失时,怎么restore database
- 【翻译自mos文章】在rac中,使用asmcmd命令从 文件系统 move system datafile 到asm磁盘组的方法
- [翻译自MOS文章]在OGG的trail文件中始终包括lob类型记录的方法
- 【翻译自mos文章】ABMR:在asm 环境中测试Automatic Block Recover 特性的方法
- 【翻译自mos文章】当并行事务恢复进程在运行时,禁用并行事务恢复的方法
- 【翻译自mos文章】ABMR:在asm 环境中測试Automatic Block Recover 特性的方法
- 【翻译自mos文章】在Oracle GoldenGate中循环使用ggserr.log的方法
- 【翻译自mos文章】在dg环境中flashback primary database的方法
- 【翻译自mos文章】当NFS server 宕机后,Oracle 数据库 冻结并且alert 文件里没有任何错误
- 【翻译自mos文章】开启dblink的 oracle net trace/tracing --对dblink进行跟踪的方法
- 【翻译自mos文章】对于每一个文件的 file.id and file.incarnation number,重命名文件别名
- 【翻译自mos文章】 使用asmcmd cp命令 把datafile从文件系统移动(move)到asm磁盘组中--针对11gR2
- 【翻译自mos文章】在11gR2 rac环境中,文件系统使用率紧张,并且lsof显示有很多oraagent_oracle.l10 (deleted)
- 【翻译自mos文章】改变数据库用户sysman(该用户是DB Control Repository 的schema)密码的方法
- 【翻译自mos文章】回收 asm磁盘空间的方法