昨天測試把DB遷移到ASM。遷移的過程很簡單,不說了。過程中遇到一個問題。
遷移控制文件采用兩種方式:
1. 打開數據庫到mount狀態(tài),備份控制文件,然后shutdown。更改control_files路徑。
進入nomount,用RMAN方式restore剛才備份控制文件,然后mount,open。這時提示需要resetlogs打開。
2.更改control_files路徑,進入nomount,用RMAN方式restore原路徑下的控制文件,然后mount,open。一切正常,沒有提示需要resetlogs打開。
那么oracle是如何斷定這個控制文件是從備份中恢復的呢。根據eygle的深入解析上所說的。
檢查控制文件頭與數據文件頭的SCN是否匹配,來判斷控制文件是否從備份中恢復。在這里可能不行。因為數據庫從未打開過,SCN不會變化的,通過我導出文件頭信息也證明了這一點。
eygle也提到用Control seq來判斷。我發(fā)現數據庫到MOUNT狀態(tài),然后關閉,再到MOUNT。
Control seq一直遞增。這也不是以上兩種方式的差異。一番測試后又有所發(fā)現:
1. 用備份的控制文件restore之前的控制文件dump:
DUMP OF CONTROL FILES, Seq # 447 = 0x1bf
V10 STYLE FILE HEADER:
Compatibility Vsn = 169870080=0xa200300
Db ID=2480234890=0x93d5618a, Db Name='SMART4A3'
Activation ID=0=0x0
Control Seq=447=0x1bf, File size=430=0x1ae
File Number=0, Blksiz=16384, File Type=1 CONTROL
2. 用備份的控制文件restore之后的控制文件dump:
DUMP OF CONTROL FILES, Seq # 450 = 0x1c2
V10 STYLE FILE HEADER:
Compatibility Vsn = 169870080=0xa200300
Db ID=2480234890=0x93d5618a, Db Name='SMART4A3'
Activation ID=0=0x0
Control Seq=450=0x1c2, File size=430=0x1ae
File Number=0, Blksiz=16384, File Type=4 BACKUP CONTROL
可以看Control Seq是一直增長的。但后者標識File Type=4 BACKUP CONTROL. 這也許就是ORACLE來判斷控制文件是否從備份中恢復的。不知是否準確,請高手指點一二。
關鍵詞標簽:備份,恢復
相關閱讀
熱門文章 Oracle中使用alter table來增加,刪除,修改列oracle中使用SQL語句修改字段類型-oracle修使用低權限Oracle數據庫賬戶得到管理員權限Oracle對user的訪問控制
人氣排行 ORACLE SQL 判斷字符串是否為數字的語句Oracle中使用alter table來增加,刪除,修改列的語法ORACLE和SQL語法區(qū)別歸納(1)oracle grant 授權語句如何加速Oracle大批量數據處理Oracle刪除表的幾種方法ORACLE修改IP地址后如何能夠使用Oracle 10g創(chuàng)建表空間和用戶并指定權限