Oracle DBA1 ---- 資料庫恢復
Oracle DBA ---- 資料庫恢復
資料庫備份很重要,使用rman基本上說,備份的使用有歸屬,有家了。
既然備份有靠,那恢復,就顯得重要了。
1:完全介質恢復
ORA-01110: data file 1: 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSTEM01.DBF'
資料檔案丟失時:
丟失的是系統檔案,所以必須在mount的狀態下,把備份檔案複製過來,然後
Recover datafile 1
非system 表空間資料檔案情況下:
SYS AS SYSDBA on 20-MAR-08 at ORCL>@find_error;
FILE# NAME ERROR
---------- ---------------------------------------- --------------------
4 D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\US FILE NOT FOUND
ERS01.DBF
SYS AS SYSDBA on 20-MAR-08 at ORCL>alter database datafile 4 offline;
Database altered.
SYS AS SYSDBA on 20-MAR-08 at ORCL>alter database open;
Database altered.
1: 首先,將資料檔案offline,再開啟資料庫。
Alter database datafile ‘全檔名稱’ offline;
2: 然後,恢復資料檔案
Recover datafile ‘全檔名稱’;
3: 將資料檔案恢復後,再修改online即可。
Alter database datafile ‘全檔名稱’ online;
如下:
SYS AS SYSDBA on 20-MAR-08 at ORCL>alter database datafile 'D:\oracle\product\10.1.0\oradata\o
rcl\users01.dbf' online;
alter database datafile 'D:\oracle\product\10.1.0\oradata\orcl\users01.dbf' online
*
ERROR at line 1:
ORA-01113: file 4 needs media recovery
ORA-01110: data file 4: 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\USERS01.DBF'
SYS AS SYSDBA on 20-MAR-08 at ORCL>recover datafile users01.dbf;
ORA-02236: invalid file name
SYS AS SYSDBA on 20-MAR-08 at ORCL>recover datafile 'D:\oracle\product\10.1.0\oradata\orcl\use
rs01.dbf';
Media recovery complete.
SYS AS SYSDBA on 20-MAR-08 at ORCL>alter database datafile 'D:\oracle\product\10.1.0\oradata\o
rcl\users01.dbf' online;
Database altered.
控制檔案介質失敗的恢復:
控制檔案的丟失,會導致資料庫啟動失敗,控制檔案記錄了資料庫的結構資訊, 如資料檔案和重做日誌檔案的位置。
如果單個控制檔案介質失敗,而其他控制檔案完好,這種情況下,如果介質失敗的磁碟沒有損壞,可以將其它完好的控制檔案映象複製過來,並更名為介質失敗的控制檔名稱。
如:control02.ctl 去掉了,可以把control01.ctl,或者control03.ctl 複製,把名稱修改成control02.ctl 就可以了。
如果是磁碟損壞,則應該修改spfile 初始化引數檔案,使用alter system 命令
首先,檢視所處於的狀態:
SYS AS SYSDBA on 20-MAR-08 at ORCL>select instance_name,status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
orcl STARTED
started: 表示處於未裝載的nomount狀態,mounted表示處於已裝載的狀態,open 表示已開啟的狀態。
最好的方法是,在pfile 中配置好,然後:
Create spfile from pfile
重做日誌檔案的恢復
首先檢視失敗的日誌詳細資訊如:
SYS AS SYSDBA on 2008-03-20 15:38:11 at ORCL>select group#,sequence#,archived,status from v$lo
g;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 4 YES INACTIVE
2 5 NO CURRENT
3 3 YES INACTIVE
日誌組2是當前日誌,,沒有歸檔,而日誌1已經歸檔,可以直接清除。
使用如下命令,重建該日誌檔案組:
SYS AS SYSDBA on 2008-03-20 15:38:30 at ORCL>alter database clear logfile group 1;
Database altered.
SYS AS SYSDBA on 2008-03-20 15:41:25 at ORCL>select group#,sequence#,archived,status from v$lo
g;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 0 YES UNUSED
2 5 NO CURRENT
3 3 YES INACTIVE
如果還沒有歸檔,可以使用如下命令:
SYS AS SYSDBA on 2008-03-20 15:42:42 at ORCL>alter database clear unarchived logfile group 1;
Database altered.
如果是當前正在使用的日誌檔案組2,則在資料庫不能啟動的情況下,
採用基於scn,或者基於取消的方法恢復資料庫。
Database mounted.
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1:
'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\REDO02.LOG'
ORA-27041: unable to open file
OSD-04002: unable to open file
O/S-Error: (OS 2) ???????????
SYS AS SYSDBA on 20-MAR-08 at ORCL>select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 0 YES UNUSED
2 5 NO CURRENT
3 0 YES UNUSED
SYS AS SYSDBA on 20-MAR-08 at ORCL>alter database clear unarchived logfile group 2;
alter database clear unarchived logfile group 2
*
ERROR at line 1:
ORA-01624: log 2 needed for crash recovery of instance orcl (thread 1)
ORA-00312: online log 2 thread 1:
'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\REDO02.LOG'
可以發現,重建日誌組,使用clear 命令也不行。
Recover database until cancel;
2次使用基於取消的方法恢復資料庫。
第一次使用auto
第二次使用cancel;
盡量恢復可以利用的歸檔日誌。
我在恢復時,發生如下情況:
SYS AS SYSDBA on 20-MAR-08 at ORCL>alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSTEM01.DBF'
使用該命令後,又發生如下情況:
SYS AS SYSDBA on 20-MAR-08 at ORCL>recover datafile 'D:\oracle\product\10.1.0\oradata\orcl\sys
tem01.dbf';
ORA-00283: recovery session canceled due to errors
ORA-00264: no recovery required
於是:
SYS AS SYSDBA on 20-MAR-08 at ORCL>alter database datafile 1 offline;
Database altered.
SYS AS SYSDBA on 20-MAR-08 at ORCL>recover datafile 2;
Media recovery complete.
SYS AS SYSDBA on 20-MAR-08 at ORCL>alter database datafile 1 online;
SYS AS SYSDBA on 20-MAR-08 at ORCL>alter database datafile 1 online;
Database altered.
就可以開啟資料庫了。
恢復臨時檔案:
儅臨時檔案出錯,不能開啟資料庫,恢復比較簡單
Offline
Open
Online
即可,同時臨時文具檔案是非重要檔案,不儲存資料,可以隨時刪除重建,不影響資料庫的資料安全。
資料庫的不完全恢復:
基於時間(time)的恢復
基於取消(cancel)的恢復
基於SCN(change)的恢復
基於備份控制檔案(Using backup controlfile)的恢復
Until time(‘yyyy-mm-dd hh24:mi:ss’)
Until until cancel
Until change 13079858
Impdp and imp區別:
Imp 可以在伺服器端和客戶端使用
Impdp 只可以在伺服器端使用
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/701141/viewspace-214894/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【資料庫資料恢復】如何恢復Oracle資料庫truncate表的資料資料庫資料恢復Oracle
- 【資料庫資料恢復】Oracle資料庫誤truncate table的資料恢復案例資料庫資料恢復Oracle
- 【資料庫資料恢復】oracle資料庫誤truncate table怎麼恢復資料?資料庫資料恢復Oracle
- 【資料庫資料恢復】誤truncate table的Oracle資料庫資料恢復方案資料庫資料恢復Oracle
- 【資料庫資料恢復】Oracle資料庫ASM磁碟組掉線如何恢復資料?資料庫資料恢復OracleASM
- Oracle異地資料庫恢復Oracle資料庫
- Oracle資料庫終極恢復Oracle資料庫
- nbu恢復oracle資料庫案例Oracle資料庫
- oracle之rman恢復資料庫Oracle資料庫
- ORACLE資料庫恢復技術Oracle資料庫
- 【資料庫資料恢復】ASM磁碟組掉線的Oracle資料庫資料恢復案例資料庫資料恢復ASMOracle
- 【資料庫資料恢復】SAP資料庫資料恢復案例資料庫資料恢復
- oracle 資料庫全庫恢復實驗Oracle資料庫
- 資料庫資料恢復-oracle資料庫報錯無法開啟的如何恢復資料?資料庫資料恢復Oracle
- 【資料庫資料恢復】ASM例項不能掛載的Oracle資料庫資料恢復案例資料庫資料恢復ASMOracle
- 寶塔資料庫恢復 mysql資料庫丟失恢復 mysql資料庫刪除庫恢復 寶塔mysql資料庫恢復資料庫MySql
- 【資料庫資料恢復】斷電導致Oracle資料庫資料丟失的資料恢復案例資料庫資料恢復Oracle
- 【資料庫資料恢復】Sql Server資料庫資料恢復案例資料庫資料恢復SQLServer
- Oracle資料庫恢復之resetlogsOracle資料庫
- Oracle資料庫冷備和恢復Oracle資料庫
- Oracle & MySQL & PostgreSQL資料庫恢復支援OracleMySql資料庫
- oracle資料庫不完全恢復Oracle資料庫
- Oracle資料庫Redo故障的恢復Oracle資料庫
- Oracle資料庫的非常規恢復Oracle資料庫
- 【資料庫資料恢復】LINUX環境下ORACLE資料庫誤刪除的資料恢復資料庫資料恢復LinuxOracle
- 【資料庫資料恢復】ORACLE常見資料災難&資料恢復可能性資料庫資料恢復Oracle
- 資料庫修復資料恢復資料庫資料恢復
- 恢復資料庫資料庫
- 【資料庫資料恢復】HP-UX系統ORACLE資料庫被誤刪除的資料恢復資料庫資料恢復UXOracle
- 【資料庫資料恢復】Oracle資料庫檔案出現壞塊報錯的資料恢復案例資料庫資料恢復Oracle
- 【oracle資料庫資料恢復】誤操作導致的資料庫誤刪除的資料恢復案例Oracle資料庫資料恢復
- 【資料庫資料恢復】透過恢復NDF檔案修復資料庫的資料恢復過程資料庫資料恢復
- Oracle資料庫資料恢復、效能優化 ASKMACLEANOracle資料庫資料恢復優化Mac
- ORACLE資料恢復Oracle資料恢復
- Oracle資料庫故障恢復資料庫系統故障恢復效能優化指南大全Oracle資料庫優化
- [Oracle]Oracle資料庫資料被修改或者刪除恢復資料Oracle資料庫
- 【資料庫資料恢復】windows server下SqlServer資料庫的資料恢復資料庫資料恢復WindowsServerSQL
- 【資料庫資料恢復】Oracle ASM例項無法掛載的資料恢復案例資料庫資料恢復OracleASM