在重建控制文件之前应该考虑的事情



来源于:

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 online
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of sql command on default channel at 07/29/2012 11:07:07
RMAN-11003: failure during parse/execution of SQL statement: alter database datafile 6 online
ORA-01190: control file or data file 6 is from before the last RESETLOGS
ORA-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_files
NAME 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

【翻译自mos文章】在重建控制文件之前应该考虑的事情的更多相关文章

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

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

  2. 【翻译自mos文章】对于每个文件的 file.id and file.incarnation number,重命名文件别名

    对于每个文件的 file.id and file.incarnation number,重命名文件别名 參考原文: Rename Alias of Datafile as Per file.id an ...

  3. Oracle 重建控制文件一例

    环境:OEL 5.7 + Oracle 10.2.0.5 背景:在Oracle的运维过程中,时常会遇到一些场景是需要重建控制文件才可以解决的.本文的场景可以通过复制控制文件到新路径,运行一段时间后,再 ...

  4. 【练习】trace文本重建控制文件

    这个小练习是针对控制文件全部丢失后怎么能快速的重建一个控制文件,快速的起库 1.备份控制文件到trace下 SQL> alter database backup controlfile to t ...

  5. Oracle 重建控制文件

    前些天在做Oracle数据库恢复测试时,因为一些异常操作导致控制文件出了问题,数据库无法正常使用,这里记录一下重建控制文件的操作 一.使用sysdba用户登入数据库 此时普通用户已无法链接数据库 二. ...

  6. 重建控制文件ORA-12720

    重建过程出错:ORA-01503: CREATE CONTROLFILE failedORA-12720: operation requires database is in EXCLUSIVE mo ...

  7. oracle之 利用 controlfile trace文件重建控制文件

    一. 11g RAC 重建控制文件 1. --"create controlfile"命令生成到追踪文件中:alter database backup controlfile to ...

  8. 【翻译自mos文章】11.2.0.4及更高版本号的asm实例中MEMORY_TARGET 和 MEMORY_MAX_TARGET的默认值和最小值

    [翻译自mos文章]11.2.0.4及更高版本号的asm实例中MEMORY_TARGET 和 MEMORY_MAX_TARGET的默认值和最小值 来源于: Default and Minimum ME ...

  9. Oracle控制文件多路复用以及Oracle备份重建控制文件

    控制文件中记录了oracle数据库的物理结构,也就是记录了数据库数据文件和日志文件的位置,控制文件中还记录了多种SCN,用这些SCN来确定数据文件和日志文件是否是正确的.如果不正确那么数据库就需要恢复 ...

随机推荐

  1. 怎样优雅的研究 RGSS3 (四) 使窗体从画面边缘弹出

    在非常多游戏中,窗体能够从游戏画面的边缘弹出. 而在 RGSS3 的默认脚本中时没有这样的功能的,当在地图上按下取消键时.游戏菜单会突然出现. 如今我们能够为主菜单加入动画效果,使其在屏幕边缘弹出. ...

  2. Intellij idea远程debug连接tomcat,实现单步调试

    转载:http://blog.csdn.net/boling_cavalry/article/details/73384036 web项目部署到tomcat上之后,有时需要打断点单步调试,如果用的是I ...

  3. Windows虚拟内存如何设置

    当我们在运行一些大型的软件,或者是刚刚退出游戏的时候经常会提示"你的虚拟内存过低"的提示,出现这种情况一般是:一:你的物理内存比较小,运行大的软件比较吃力:二:你运行了许多窗口或者 ...

  4. iOS开发 最近开发了蓝牙模块,在此记录总结一下(转载)

    1.基本概念 <1>中心者模式:常用的(其实99.99%)就是使用中心者模式作为开发,就是我们手机作为主机,连接蓝牙外设.由于开发只用到了中心者模式,所以我也只介绍中心者模式. <2 ...

  5. hbuilder - wap to app

    官方文档: http://www.dcloud.io/wap2app.html 新建Wap2App,示例网址:www.baidu.com 随后,我们可以在 最后,我们可以 打包完成以后,下载即可

  6. javascript中keyCode与charCode属性

    好记性不如烂笔头啊,最近总是忘记这两个属性的区别.想了想,从别人博客上转一遍过来吧,时常看下 键盘事件拥有两个属性,keyCode和CharCode,他们之间有一些不一样之处.keyCode表示用户按 ...

  7. 工作总结 sql 中过滤条件 中的 (where中的) and

    总结: 在where 后面做过滤的时候 如果  有 字段1 必须满足某种值   字段2 要满足 某种或某值的时候  直接   and 字段1 = ‘a’   and    字段2 = ‘b’ or 字 ...

  8. Linux下基于命令行的抓包方法

    大家可能都已经对著名的抓包工具Ethereal比较熟悉了,这里再介绍一种基于命令行的抓包工具tcpdump. 举例:抓本机1813端口上的数据,并将抓包结果保存在test.cap文件中 然后在本地可以 ...

  9. 高盛CEO致大学毕业生:要与有野心的人为伍

    我认为讲的非常棒.年轻人就要这样. 高盛集团首席运行官(CEO)劳尔德-贝兰克梵(Lloyd Blankfein)周四在曼哈顿贾维茨中心參加了拉瓜迪亚社区大学的第41届毕业典礼并发表演讲.在面向约10 ...

  10. win7-vs2012下安装.net frame work 的过程

    第一,  vs和.net的对应关系大致如下 vs2010----.net framework 4.0 vs2012----.net framework 4.5 vs2015----.net frame ...