記一次簡單的資料庫恢復,控制檔案不一致導致的啟動失敗。
很可惜,我沒能儲存一開始的報錯資訊(alert檔案竟然沒記錄)。報錯在mount階段,報錯的意思是控制檔案2與控制檔案1不一致,2比1版本更高。資料庫的損壞是由於非法斷電導致的。
修改引數檔案pfile,只保留控制檔案2,啟動資料庫。
SQL> conn / as sysdba
已連線。
SQL> create pfile from spfile;
檔案已建立。
SQL> create spfile from pfile;
create spfile from pfile
*
ERROR 位於第 1 行:
ORA-32002: ??????????? SPFILE
可以猜到報錯為不能建立正在使用的SPFILE。當然可也修改nls_language設定語言。
SQL> shutdown immediate
ORA-01507: ??????
ORACLE 例程已經關閉。
SQL> create spfile from pfile;
檔案已建立。
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
ORA-01113: 檔案 1 需要介質恢復
ORA-01110: 資料檔案 1: 'D:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF'
SQL> select status from v$datafile;
STATUS
-------
SYSTEM
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
已選擇10行。
SQL> recover datafile 1;
完成介質恢復。
SQL> alter database open;
alter database open
*
ERROR 位於第 1 行:
ORA-01113: 檔案 2 需要介質恢復
ORA-01110: 資料檔案 2: 'D:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF'
SQL> recover database;
完成介質恢復。
注意這裡是完全恢復,恢復成功了,說明應用日誌完全了,不存在丟失。
SQL> alter database open;
alter database open
*
ERROR 位於第 1 行:
ORA-00314: 日誌 2 (執行緒 1),預計序號 與 不匹配
ORA-00312: 聯機日誌 2 執行緒 1: 'D:\ORACLE\ORADATA\ORCL\REDO02.LOG'
ORA-00314說明Cause: The online log is corrupted or is an old version.既然是完全恢復的,我們可以resetlogs,不會造成丟失。
SQL> select * from v$Log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIME
------------- ----------
1 1 320 104857600 1 NO INVALIDATED
47548236 06-7月 -10
2 1 318 104857600 1 NO INACTIVE
47366790 05-7月 -10
3 1 319 104857600 1 NO INACTIVE
47386928 05-7月 -10
SQL> recover database until cancel;
完成介質恢復。
SQL> alter database open resetlogs;
資料庫已更改。
SQL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL>
修改引數檔案pfile,只保留控制檔案2,啟動資料庫。
SQL> conn / as sysdba
已連線。
SQL> create pfile from spfile;
檔案已建立。
SQL> create spfile from pfile;
create spfile from pfile
*
ERROR 位於第 1 行:
ORA-32002: ??????????? SPFILE
可以猜到報錯為不能建立正在使用的SPFILE。當然可也修改nls_language設定語言。
SQL> shutdown immediate
ORA-01507: ??????
ORACLE 例程已經關閉。
SQL> create spfile from pfile;
檔案已建立。
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
ORA-01113: 檔案 1 需要介質恢復
ORA-01110: 資料檔案 1: 'D:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF'
SQL> select status from v$datafile;
STATUS
-------
SYSTEM
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
已選擇10行。
SQL> recover datafile 1;
完成介質恢復。
SQL> alter database open;
alter database open
*
ERROR 位於第 1 行:
ORA-01113: 檔案 2 需要介質恢復
ORA-01110: 資料檔案 2: 'D:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF'
SQL> recover database;
完成介質恢復。
注意這裡是完全恢復,恢復成功了,說明應用日誌完全了,不存在丟失。
SQL> alter database open;
alter database open
*
ERROR 位於第 1 行:
ORA-00314: 日誌 2 (執行緒 1),預計序號 與 不匹配
ORA-00312: 聯機日誌 2 執行緒 1: 'D:\ORACLE\ORADATA\ORCL\REDO02.LOG'
ORA-00314說明Cause: The online log is corrupted or is an old version.既然是完全恢復的,我們可以resetlogs,不會造成丟失。
SQL> select * from v$Log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIME
------------- ----------
1 1 320 104857600 1 NO INVALIDATED
47548236 06-7月 -10
2 1 318 104857600 1 NO INACTIVE
47366790 05-7月 -10
3 1 319 104857600 1 NO INACTIVE
47386928 05-7月 -10
SQL> recover database until cancel;
完成介質恢復。
SQL> alter database open resetlogs;
資料庫已更改。
SQL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22034023/viewspace-667413/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sock鎖檔案導致的MySQL啟動失敗MySql
- 【資料庫資料恢復】MongoDB資料庫服務啟動失敗的資料恢復案例資料庫資料恢復MongoDB
- 資料庫資料恢復—MongoDB資料庫檔案丟失,啟動報錯的資料恢復案例資料庫資料恢復MongoDB
- 儲存互斥失敗導致資料丟失的資料恢復成功案例資料恢復
- 【伺服器資料恢復】異常斷電導致虛擬機器檔案丟失不能啟動的資料恢復案例伺服器資料恢復虛擬機
- 【資料庫資料恢復】斷電導致Oracle資料庫資料丟失的資料恢復案例資料庫資料恢復Oracle
- DG修復:異常關庫導致的資料庫啟動失敗ORA-01110及GAP修復資料庫
- 【資料庫資料恢復】LINUX EXT3檔案系統下ORACLE資料庫誤操作導致資料丟失的資料恢復案例資料庫資料恢復LinuxOracle
- 【伺服器資料恢復】Raid5熱備盤同步失敗導致檔案系統不可用的資料恢復案例伺服器資料恢復AI
- 【資料庫資料恢復】Sql Server資料庫檔案丟失的資料恢復過程資料庫資料恢復SQLServer
- 伺服器資料恢復-誤操作導致mysql資料庫資料丟失的資料恢復案例伺服器資料恢復MySql資料庫
- 【raid資料恢復案例】raid擴容導致的資料丟失的資料恢復AI資料恢復
- 【伺服器資料恢復】SAN LUN對映出錯導致檔案系統資料丟失的資料恢復案例伺服器資料恢復
- Sql Server資料庫檔案丟失的恢復方法SQLServer資料庫
- 伺服器資料恢復—重灌系統導致XFS檔案系統分割槽丟失的資料恢復案例伺服器資料恢復
- 【Vsan資料恢復】斷電導致Vsan分散式儲存虛擬磁碟檔案丟失的資料恢復案例資料恢復分散式
- 【伺服器資料恢復】虛擬機器檔案丟失導致Hyper-V癱瘓的資料恢復伺服器資料恢復虛擬機
- 【北亞資料恢復】vmfs還原快照操作導致SqlServer資料庫資料丟失的資料恢復資料恢復SQLServer資料庫
- 【資料庫資料恢復】mdb_catalog.wt檔案丟失的MongoDB資料恢復案例資料庫資料恢復MongoDB
- 【北亞資料恢復】誤操作分割槽損壞導致SqlServer資料庫資料丟失的資料恢復資料恢復SQLServer資料庫
- 【北亞資料庫資料恢復】誤操作導致資料丟失的華為雲mysql資料恢復案例資料庫資料恢復MySql
- DATA GUARD主庫丟失資料檔案的恢復(3)
- DATA GUARD主庫丟失資料檔案的恢復(1)
- DATA GUARD主庫丟失資料檔案的恢復(2)
- 【oracle資料庫資料恢復】誤操作導致的資料庫誤刪除的資料恢復案例Oracle資料庫資料恢復
- 【伺服器資料恢復】RAID5崩潰後強制上線導致檔案丟失的資料恢復案例伺服器資料恢復AI
- 【儲存資料恢復】esx vmfs的互斥導致儲存資料丟失的資料恢復案例資料恢復
- PostgreSQL啟動恢復讀取checkpoint記錄失敗的條件SQL
- 【伺服器資料恢復】Hyper-V虛擬機器檔案丟失導致服務癱瘓的資料恢復案例伺服器資料恢復虛擬機
- 【資料庫資料恢復】透過恢復NDF檔案修復資料庫的資料恢復過程資料庫資料恢復
- 【vsan資料恢復】vsan資料重構失敗的資料恢復案例資料恢復
- 【資料庫資料恢復】MongoDB資料庫檔案損壞的資料恢復案例資料庫資料恢復MongoDB
- 【北亞資料恢復】異常斷電導致linux伺服器無法啟動,資料庫損壞的資料恢復資料恢復Linux伺服器資料庫
- 伺服器資料恢復-RAID資訊丟失導致伺服器作業系統無法啟動的資料恢復案例伺服器資料恢復AI作業系統
- 記一次Oracle RAC for aix 儲存雙控鎖盤導致ASM控制檔案損壞恢復OracleAIASM
- MongoDB資料庫報錯,資料庫檔案丟失資料恢復案例MongoDB資料庫資料恢復
- 【Vsan資料恢復】非正常關機導致vsan儲存架構中虛擬機器磁碟檔案丟失的資料恢復資料恢復架構虛擬機
- 【資料庫資料恢復】磁碟空間不足導致sql server錯誤的資料恢復資料庫資料恢復SQLServer
- 重灌系統導致分割槽丟失的資料恢復案例資料恢復