所有控制檔案損壞的恢復--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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【RMAN】如果控制檔案損壞那麼如何恢復?恢復控制檔案的方式有哪幾種?
- oracle控制檔案的損壞或完全丟失的恢復辦法Oracle
- u盤檔案損壞怎麼恢復資料 u盤恢復損壞資料的有效方法
- 控制檔案損壞處理
- Oracle為什麼使用備份的控制檔案恢復後一定要resetlogsOracle
- u盤檔案損壞怎麼恢復資料 u盤損壞無法讀取怎麼恢復資料
- 【資料庫資料恢復】MongoDB資料庫檔案損壞的資料恢復案例資料庫資料恢復MongoDB
- Oracle 控制檔案損壞解決方案Oracle
- PostgreSQL DBA(30) - Backup&Recovery#3(資料檔案損壞恢復)SQL
- ibdata1檔案損壞時恢復InnoDB單表測試
- 【儲存資料恢復】IBM儲存檔案NTFS系統損壞的資料恢復案例資料恢復IBM
- 2.7.10 恢復丟失或損壞的伺服器引數檔案(SPFILE)伺服器
- Controlfile 重建控制檔案 noresetlogs, resetlogs..
- 【伺服器資料恢復】伺服器reiserfs檔案系統損壞的資料恢復案例伺服器資料恢復
- system資料檔案頭損壞修復
- linux檔案系統損壞如何修復Linux
- InterBase資料庫檔案損壞的修復方法資料庫
- Vsan分散式檔案系統邏輯架構損壞恢復過程分散式架構
- 記一次Oracle RAC for aix 儲存雙控鎖盤導致ASM控制檔案損壞恢復OracleAIASM
- 【北亞伺服器資料恢復】伺服器reiserfs檔案系統損壞的資料恢復案例伺服器資料恢復
- 與控制檔案有關的恢復
- 【北亞資料恢復】伺服器raid陣列癱瘓導致ZFS檔案系統元檔案損壞的資料恢復資料恢復伺服器AI陣列
- Oracle asm磁碟損壞異常恢復OracleASM
- Oracle單個資料檔案損壞,在Rman命令裡設定表空間、資料檔案offline方式來恢復最方便Oracle
- 學習這篇Oracle資料庫檔案壞塊損壞的恢復方法,擴充你的知識面Oracle資料庫
- 資料底層損壞的恢復方法—拼碎片恢復資料
- SQL Anywhere db檔案損壞修復 DB檔案修復 DB資料庫修復SQL資料庫
- 與控制檔案有關的恢復(二)
- 修復損壞的gzip壓縮檔案之原理篇
- Oracle資料庫恢復之resetlogsOracle資料庫
- win10登錄檔損壞了怎麼恢復 win10一鍵恢復登錄檔教程Win10
- 【伺服器資料恢復】某品牌ProLiant伺服器raid癱瘓資料庫檔案損壞的資料恢復伺服器資料恢復AI資料庫
- [20210225]控制檔案序列號滿的恢復.txt
- 資料恢復工具Recoverit使用教程:如何修復損壞的影片資料恢復
- 隨身碟顆粒損壞資料恢復資料恢復
- WPS文件損壞如何修復?WPS文件損壞的修復方法
- u盤檔案變成快捷方式怎麼恢復,恢復U盤檔案的五種方法
- rman恢復控制檔案的一個小錯誤
- Win10系統損壞的cbs.log檔案如何修復Win10