所有控制檔案損壞的恢復--resetlogs方式
此方式和 所有控制檔案損壞的恢復--noresetlogs方式恢復時的前五個步驟是一樣的。
1)先備份控制檔案
SQL> alter database backup controlfile to 'f:\lib\control.ctl' reuse;
已更改。
2)生成跟蹤檔案。
SQL> alter database backup controlfile to trace;
資料庫已更改。
SQL> @f:\sql\gettrace.sql---一個指令碼,稍後會給出。
TRACE_FILE__NAME
--------------------------------------------------------------------------------
f:\app\yang\diag\rdbms\oracl\oracl\trace/oracl_ora_2572.trc
3)關閉資料庫,模擬控制檔案全部損壞。
SQL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
4)啟動資料庫。
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 535662592 bytes
Fixed Size 1334380 bytes
Variable Size 134218644 bytes
Database Buffers 394264576 bytes
Redo Buffers 5844992 bytes
ORA-00205: ORA-00205 error in identifying controlfile, check alert log for more info
alert 檔案顯示:
ALTER DATABASE MOUNT
ORA-00210: cannot open the specified control file
ORA-00202: control file: 'F:\APP\YANG\ORADATA\ORACL\CONTROL03.CTL'
ORA-27041: unable to open file
OSD-04002: 無法開啟檔案
O/S-Error: (OS 2) 系統找不到指定的檔案。
ORA-00210: cannot open the specified control file
ORA-00202: control file: 'F:\APP\YANG\ORADATA\ORACL\CONTROL02.CTL'
ORA-27041: unable to open file
OSD-04002: 無法開啟檔案
O/S-Error: (OS 2) 系統找不到指定的檔案。
ORA-00210: cannot open the specified control file
ORA-00202: control file: 'F:\APP\YANG\ORADATA\ORACL\CONTROL01.CTL'
ORA-27041: unable to open file
OSD-04002: 無法開啟檔案
O/S-Error: (OS 2) 系統找不到指定的檔案。
5)啟動到nomount狀態。
SQL> startup nomount
6)執行建立控制檔案的指令碼
SQL> @f:\createctlreset.sql
控制檔案已建立。
7)恢復資料庫
SQL> recover database;
ORA-00283: 恢復會話因錯誤而取消
ORA-01610: 使用 BACKUP CONTROLFILE 選項的恢復必須已完成
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 3230396 (在 05/28/2010 20:15:05 生成) 對於執行緒 1 是必需的
ORA-00289: 建議: F:\APP\YANG\ARCHIVE2\18_1_719709206.LOG
ORA-00280: 更改 3230396 (用於執行緒 1) 在序列 #18 中
指定日誌: {
auto
ORA-00308: 無法開啟歸檔日誌 'F:\APP\YANG\ARCHIVE2\18_1_719709206.LOG'
ORA-27041: 無法開啟檔案
OSD-04002: 無法開啟檔案
O/S-Error: (OS 2) 系統找不到指定的檔案。
ORA-00308: 無法開啟歸檔日誌 'F:\APP\YANG\ARCHIVE2\18_1_719709206.LOG'
ORA-27041: 無法開啟檔案
OSD-04002: 無法開啟檔案
O/S-Error: (OS 2) 系統找不到指定的檔案。
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 將出現如下錯誤
ORA-01194: 檔案 1 需要更多的恢復來保持一致性
ORA-01110: 資料檔案 1: 'F:\APP\YANG\ORADATA\ORACL\SYSTEM01.DBF'
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 3230396 (在 05/28/2010 20:15:05 生成) 對於執行緒 1 是必需的
ORA-00289: 建議: F:\APP\YANG\ARCHIVE2\18_1_719709206.LOG
ORA-00280: 更改 3230396 (用於執行緒 1) 在序列 #18 中
指定日誌: {
cancel
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 將出現如下錯誤
ORA-01194: 檔案 1 需要更多的恢復來保持一致性
ORA-01110: 資料檔案 1: 'F:\APP\YANG\ORADATA\ORACL\SYSTEM01.DBF'
ORA-01112: 未啟動介質恢復
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 3230396 (在 05/28/2010 20:15:05 生成) 對於執行緒 1 是必需的
ORA-00289: 建議: F:\APP\YANG\ARCHIVE2\18_1_719709206.LOG
ORA-00280: 更改 3230396 (用於執行緒 1) 在序列 #18 中
指定日誌: {
f:\app\yang\oradata\oracl\redo01.log
ORA-00310: 歸檔日誌包含序列 16; 要求序列 18
ORA-00334: 歸檔日誌: 'F:\APP\YANG\ORADATA\ORACL\REDO01.LOG'
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 將出現如下錯誤
ORA-01194: 檔案 1 需要更多的恢復來保持一致性
ORA-01110: 資料檔案 1: 'F:\APP\YANG\ORADATA\ORACL\SYSTEM01.DBF'
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 3230396 (在 05/28/2010 20:15:05 生成) 對於執行緒 1 是必需的
ORA-00289: 建議: F:\APP\YANG\ARCHIVE2\18_1_719709206.LOG
ORA-00280: 更改 3230396 (用於執行緒 1) 在序列 #18 中
指定日誌: {
f:\app\yang\oradate\oracl\redo02.log
ORA-00308: 無法開啟歸檔日誌 'f:\app\yang\oradate\oracl\redo02.log'
ORA-27041: 無法開啟檔案
OSD-04002: 無法開啟檔案
O/S-Error: (OS 3) 系統找不到指定的路徑。
指定日誌: {
f:\app\yang\oradata\oracl\redo02.log
ORA-00310: 歸檔日誌包含序列 17; 要求序列 18
ORA-00334: 歸檔日誌: 'F:\APP\YANG\ORADATA\ORACL\REDO02.LOG'
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 將出現如下錯誤
ORA-01194: 檔案 1 需要更多的恢復來保持一致性
ORA-01110: 資料檔案 1: 'F:\APP\YANG\ORADATA\ORACL\SYSTEM01.DBF'
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 3230396 (在 05/28/2010 20:15:05 生成) 對於執行緒 1 是必需的
ORA-00289: 建議: F:\APP\YANG\ARCHIVE2\18_1_719709206.LOG
ORA-00280: 更改 3230396 (用於執行緒 1) 在序列 #18 中
指定日誌: {
f:\app\yang\oradata\oracl\redo03.log
已應用的日誌。
完成介質恢復。
SQL> select status from v$instance;
STATUS
------------
MOUNTED
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
0
SQL> alter database open;
alter database open
*
第 1 行出現錯誤:
ORA-01589: 要開啟資料庫則必須使用 RESETLOGS 或 NORESETLOGS 選項
SQL> alter database open resetlogs;
資料庫已更改。
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
3231396
SQL> select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
3231397
附:
透過查詢跟蹤檔案的指令碼可以查詢到相關的詳細資訊
SQL> SELECT a.VALUE||b.symbol||c.instance_name||'_ora_'||d.spid||'.trc' TRACE_FILE_NAME
2 FROM (SELECT VALUE FROM v$parameter WHERE NAME='user_dump_dest') a,
3 (SELECT SUBSTR(VALUE,-6,1) symbol FROM v$parameter WHERE NAME='user_dump_dest') b,
4 (SELECT instance_name FROM v$instance) c,
5 (SELECT spid FROM v$session s,v$process p,v$mystat m
6 WHERE s.paddr=p.addr AND s.SID=m.SID AND m.statistic#=0) d
7 /
createctlreset.sql指令碼:
CREATE CONTROLFILE REUSE DATABASE "ORACL" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 'F:\APP\YANG\ORADATA\ORACL\REDO01.LOG' SIZE 50M,
GROUP 2 'F:\APP\YANG\ORADATA\ORACL\REDO02.LOG' SIZE 50M,
GROUP 3 'F:\APP\YANG\ORADATA\ORACL\REDO03.LOG' SIZE 50M
-- STANDBY LOGFILE
DATAFILE
'F:\APP\YANG\ORADATA\ORACL\SYSTEM01.DBF',
'F:\APP\YANG\ORADATA\ORACL\SYSAUX01.DBF',
'F:\APP\YANG\ORADATA\ORACL\UNDOTBS01.DBF',
'F:\APP\YANG\ORADATA\ORACL\USERS01.DBF',
'F:\APP\YANG\ORADATA\ORACL\EXAMPLE01.DBF',
'F:\APP\YANG\ORADATA\ORACL\TEST.DBF'
CHARACTER SET ZHS16GBK
;
小結:
要弄清楚resetlogs與noresetlogs的區別
norestlogs,控制檔案的scn是來自當前日誌的high scn,而resetlogs控制檔案的scn是來自資料檔案。
所有online redolog沒有丟失,以noresetlogs選項開啟資料庫的情況下使用的。第二段則是在丟失了online redolog需要resetlogs的情況下使用。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-663963/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 所有控制檔案損壞的恢復--noresetlogs方式
- 損壞控制檔案的恢復方法
- 單個控制檔案損壞的恢復
- 【RMAN】如果控制檔案損壞那麼如何恢復?恢復控制檔案的方式有哪幾種?
- 某個控制檔案損壞的恢復案例
- 一次控制檔案損壞的恢復
- 恢復之單個控制檔案損壞
- 備份與恢復--重建控制檔案後資料檔案損壞的恢復
- 備份&恢復之十三:損壞全部控制檔案
- 【恢復】使用控制檔案的trace備份恢復因異常斷電導致所有控制檔案損壞的資料庫故障資料庫
- 一次控制檔案損壞後的恢復經歷
- 控制檔案損壞恢復(20100402)
- 備份&恢復之十二:損壞單個控制檔案
- oracle用備份的控制檔案恢復後不用resetlogs開啟方式的恢復Oracle
- SQL Server ldf 檔案損壞恢復SQLServer
- oracle控制檔案的損壞或完全丟失的恢復辦法Oracle
- 【BBED】 SYSTEM檔案頭損壞的恢復(4)
- 資料檔案丟失損壞的恢復--
- REDO檔案丟失或者損壞的恢復
- UNDO 表空間檔案損壞的恢復
- 恢復控制檔案避免使用resetlogs選項
- 線上日誌檔案損壞恢復方法
- cp方式恢復控制檔案
- u盤檔案損壞怎麼恢復資料 u盤恢復損壞資料的有效方法
- Oracle不同檔案丟失/損壞的恢復方法Oracle
- 使用RESETLOGS重建控制檔案恢復資料庫資料庫
- system表空間檔案損壞----完全恢復
- 【備份與恢復】恢復受損的複用控制檔案
- rman 恢復---歸檔丟失and資料檔案損壞
- 一次日誌檔案損壞的恢復
- 使用RESETLOGS重建控制檔案恢復資料庫(二)資料庫
- 磁碟損壞造成RMAN備份檔案有壞塊的恢復案例
- 某個資料檔案損壞完全恢復(三)
- 一個控制檔案損壞
- index損壞恢復Index
- 陣列櫃故障造成控制檔案損壞,資料檔案損壞陣列
- inactive狀態日誌組檔案損壞的恢復
- 磁碟損壞導致資料檔案丟失的恢復