程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 【翻譯自mos文章】在重建控制文件之前應該考慮的事情

【翻譯自mos文章】在重建控制文件之前應該考慮的事情

編輯:Oracle教程

【翻譯自mos文章】在重建控制文件之前應該考慮的事情


在重建控制文件之前應該考慮的事情

來源於:
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模式時:


當數據庫已經關閉時,請使用操作系統命令做備份,舉例如下:
[email protected]> 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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved