【翻译自mos文章】在重建控制文件之前应该考虑的事情
来源:互联网 发布:mac 卸载 编辑:程序博客网 时间:2024/04/29 03:25
在重建控制文件之前应该考虑的事情
来源于:
Things to Consider Before Recreating the Controlfile (文档 ID 1475632.1)
适用于:
Oracle Database - Enterprise Edition - Version 10.2.0.1 and later
Information in this document applies to any platform.
目的:
突出控制文件的重要性和在重建控制文件之前应该考虑的问题。
问题解决的步骤:
在重建控制文件之前:
控制文件对数据库来说是非常重要的,一些信息只存储在控制文件中,而不存储在数据字典中。
元数据包括闪回日志,块变化跟踪,Rman备份和数据文件的位置。
经常有变通方案或解决方案,并且控制文件根本不用重建。
如果你必须重建控制文件,或者Oracle指示你这么做,考虑如下的事情:
1. 不可访问的/offlined 的datafile
如果一开始所有的datafile不在disk上,你将不能recreate controlfile。
如果datafiles在disk上,务必保证没有offlined的datafile
你会遇到下列错误:
2.闪回 database
当一个控制文件被重建之后,所有的闪回信息--normal restore point, guaranteed restore point, and flashback database都将会被关闭,即使用NORESETLOGS方式去建立
所有的disk上的闪回日志不能被catelog回 控制文件 中。如果你尝试catalog flashback log,你将会遇到下面的错误:
3.闪回区(Flash Recovery Area)使用率
一旦控制文件被重建,v$flash_recovery_area_usage视图可能不会反馈实际的使用率。因此,你需要运行下面的命令来把所有东西catalog回控制文件中。
4.备份元数据
如果你没有使用rman的恢复目录,你需要将所有的backuppiece catalog到控制文件中。进一步来说,在9i之前,我们不能catalog backuppiece
控制文件对于备份和恢复是极为重要的。catalog 所有的backuppiece 到控制文件中固然没错,但是你必须首先有一个控制文件。
如果你丢失了所有的syatem,并且只有backuppiece可用,你必须至少有一个controlfile 来catalog backuppiece。
进一步来说,disk上没有任何datafile的话,你不能重建controlfile
备份Current controlfile
在open/mounted模式时:
当数据库已经关闭时,请使用操作系统命令做备份,举例如下:
请注意:二进制备份与ASCII备份是不同的!
*******************************添加开始*****************************************
译者注:下面的这一点是译者自己加的:
5. 数据库级别的补充日志信息在重建控制文件之后会丢失
详细见:
Missed Database Supplemental Log Information After Recreate Controlfile In 10g Database. (文档 ID 1474952.1)
或者:
http://blog.csdn.net/msdnchina/article/details/38360055
*******************************添加结束*****************************************
推荐:
1)在不同的存储上复用控制文件
至少需要在两个不同的存储上有两个控制文件的copies。如果media 被损坏,你至少还有另外一个copy还可用。
因此,数据库参数文件至少有两个控制文件位置:
这将会确保在每次backup的最后会有一个controlfile的备份
来源于:
Things to Consider Before Recreating the Controlfile (文档 ID 1475632.1)
适用于:
Oracle Database - Enterprise Edition - Version 10.2.0.1 and later
Information in this document applies to any platform.
目的:
突出控制文件的重要性和在重建控制文件之前应该考虑的问题。
问题解决的步骤:
在重建控制文件之前:
控制文件对数据库来说是非常重要的,一些信息只存储在控制文件中,而不存储在数据字典中。
元数据包括闪回日志,块变化跟踪,Rman备份和数据文件的位置。
经常有变通方案或解决方案,并且控制文件根本不用重建。
如果你必须重建控制文件,或者Oracle指示你这么做,考虑如下的事情:
1. 不可访问的/offlined 的datafile
如果一开始所有的datafile不在disk上,你将不能recreate controlfile。
如果datafiles在disk上,务必保证没有offlined的datafile
select distinct(status) from v$datafile where status not in ('ONLINE','SYSTEM');select name, ts#, online$, contents$ from ts$ where online$ =2;否则,一旦控制文件以resetlogs的方式重建之后,所有的offlined 的datafile不能添加回database。
你会遇到下列错误:
RMAN> sql 'alter database datafile 6 online';sql statement: alter database datafile 6 onlineRMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03009: failure of sql command on default channel at 07/29/2012 11:07:07RMAN-11003: failure during parse/execution of SQL statement: alter database datafile 6 onlineORA-01190: control file or data file 6 is from before the last RESETLOGSORA-01110: data file 6: '/opt/app/oracle/oradata/ORA112/leng_ts.dbf'
2.闪回 database
当一个控制文件被重建之后,所有的闪回信息--normal restore point, guaranteed restore point, and flashback database都将会被关闭,即使用NORESETLOGS方式去建立
所有的disk上的闪回日志不能被catelog回 控制文件 中。如果你尝试catalog flashback log,你将会遇到下面的错误:
File Name: /opt/app/oracle/fra/ORA112/flashback/o1_mf_85zttw61_.flb RMAN-07529: Reason: catalog is not supported for this file type你将会不得不重新启用flashback database.所有旧的闪回日志将不再有用,需要手工从disk上remove掉。
3.闪回区(Flash Recovery Area)使用率
一旦控制文件被重建,v$flash_recovery_area_usage视图可能不会反馈实际的使用率。因此,你需要运行下面的命令来把所有东西catalog回控制文件中。
RMAN> catalog recovery area;
4.备份元数据
如果你没有使用rman的恢复目录,你需要将所有的backuppiece catalog到控制文件中。进一步来说,在9i之前,我们不能catalog backuppiece
控制文件对于备份和恢复是极为重要的。catalog 所有的backuppiece 到控制文件中固然没错,但是你必须首先有一个控制文件。
如果你丢失了所有的syatem,并且只有backuppiece可用,你必须至少有一个controlfile 来catalog backuppiece。
进一步来说,disk上没有任何datafile的话,你不能重建controlfile
备份Current controlfile
RMAN> backup current controlfile;SYS> alter database backup controlfile to '/tmp/control01.bk';在重建控制文件之前,你至少做一个当前控制文件的备份。
在open/mounted模式时:
当数据库已经关闭时,请使用操作系统命令做备份,举例如下:
SYS@ORA112.SQL> show parameter control_filesNAME TYPE VALUE------------------------------------ -------------------- ------------------------------control_files string /opt/app/oracle/oradata/ORA112 /control1.ctl, /opt/app/oracle /oradata/ORA112/control2.ctl$ cp /opt/app/oracle/oradata/ORA112/control1.ctl /opt/app/oracle/oradata/ORA112/control1.ctl.old$ cp /opt/app/oracle/oradata/ORA112/control2.ctl /opt/app/oracle/oradata/ORA112/control2.ctl.old
请注意:二进制备份与ASCII备份是不同的!
SQL> alter database backup controlfile to trace;上面的命令会生成一个ASCII命令,用该ASCII命令可以重建controlfile。该命令实际不是current controlfile的备份。
*******************************添加开始*****************************************
译者注:下面的这一点是译者自己加的:
5. 数据库级别的补充日志信息在重建控制文件之后会丢失
详细见:
Missed Database Supplemental Log Information After Recreate Controlfile In 10g Database. (文档 ID 1474952.1)
或者:
http://blog.csdn.net/msdnchina/article/details/38360055
*******************************添加结束*****************************************
推荐:
1)在不同的存储上复用控制文件
至少需要在两个不同的存储上有两个控制文件的copies。如果media 被损坏,你至少还有另外一个copy还可用。
因此,数据库参数文件至少有两个控制文件位置:
control_files='location1/file1','location2/file2'2)打开控制文件的autobackup
这将会确保在每次backup的最后会有一个controlfile的备份
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;如果需要,使用如下命令来修改autobackup的位置:
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
1 0
- 【翻译自mos文章】在重建控制文件之前应该考虑的事情
- 【翻译自mos中文文章】重建控制文件的方法
- 【翻译自mos文章】在重建控制文件之后,丢失了数据库补充日志信息(Missed Database Supplemental Log Information)
- 【翻译自mos文章】重新创建物理standby database 的 控制文件的方法
- [翻译自MOS文章]怎么在OGG 12c版本中把replicat进程重新定位到之前的trail文件位置上?
- 【翻译自mos文章】当控制文件的备份丢失时,怎么restore database
- 【翻译自mos文章】recover.bsq文件在数据库软件安装光盘的哪个位置?
- 【翻译自mos文章】在/tmp/.oracle目录下的文件是什么?
- [翻译自MOS文章]在OGG的trail文件中始终包括lob类型记录的方法
- 【翻译自mos文章】控制OGG Director 中Repository Table 保留几天记录的参数
- 【翻译自mos文章】 在Oracle software 被安装时, /dev/null0文件被创建。
- [翻译自mos文章]不完全恢复之后,open resetlogs之前,怎么快速的检查数据库是否处于一致性的状态?
- 【翻译自mos文章】OUI 的log文件和trace文件的位置
- 【翻译自mos文章】 asmcmd cp命令不能拷贝大于2GB的文件。
- 【翻译自mos文章】在一次失败的 'Shutdown Immediate'之后,数据库job 不能运行。
- 【翻译自mos文章】ABMR:在asm 环境中测试Automatic Block Recover 特性的方法
- 【翻译自mos文章】在Oracle GoldenGate中循环使用ggserr.log的方法
- 【翻译自mos文章】在dg环境中flashback primary database的方法
- Beautifulsoup 小用
- STL之map
- putty提示Network error:Software caused connection abort
- Editplus配置成python开发环境
- ADO.NET之command录入数据-视图同步更新
- 【翻译自mos文章】在重建控制文件之前应该考虑的事情
- hdu 1936 Emoticons :-)
- Leetcode: Longest Increasing Path in a Matrix
- javaweb导出Excel数据与图片
- 单词替换
- 字符串去特定字符
- 魅族再次助推陌陌商业化,不遗余力为其洗白
- C#中IDispose接口的实现方法以及为什么这么实现?
- 魅族春晚广告耗尽预算?继续约陌陌