ORACLE備份&恢復案例(2)

jss001發表於2009-02-14

第三章. 瞭解與恢復相關的資訊

1、理解報警日誌檔案

報警日誌檔案一般記載了資料庫的啟動/關閉資訊,歸檔資訊,備份資訊,恢復資訊,常見錯誤資訊,部分資料庫修改記錄等。一般令名規則為Alrt.logAlrt.log,如我的測試資料庫的報警日誌檔案的名稱為testalrt.log

報警日誌檔案的路徑是根據初始化引數background_dump_dest來決定的,如在我的機器上,該引數值為 D:Oracleadmintestbdump,那麼,你就可以在該路徑下找到該檔案

2、後臺程式跟蹤檔案

後臺程式跟蹤檔案的路徑與報警日誌檔案的路徑一致,在某些情況下,你可以透過後臺跟蹤檔案的資訊瞭解更多的需要恢復的資訊。如在資料庫需要恢復的時候,報警日誌檔案中常有這樣的語句:

Errors in file D:OracleadmintestbdumptestDBW0.TRC:

ORA-01157: cannot identify/lock data file 1 - see DBWR trace file

透過提示的DBWR跟蹤檔案,可以查詢到更詳細的資訊。

3v$recover_filev$recovery_log

這是兩個動態效能檢視,可以在mount下檢視,透過這兩個檢視,你可以瞭解詳細的需要恢復的資料檔案與需要使用到的歸檔日誌。

第四章. 資料庫恢復案例

4.1非歸檔模式下的備份與恢復

備份方案:採用OS冷備份

1.連線資料庫並建立測試表

SQL*Plus: Release 8.1.6.0.0 - Production on Tue May 6 13:46:32 2003

(c) Copyright 1999 Oracle Corporation. All rights reserved.

SQL> connect internal/password as sysdba;

Connected.

SQL> create table test(a int);

Table created

SQL> insert into test values(1);

1 row inserted

SQL> commit;

Commit complete

2.備份資料庫

SQL> @coldbak.sql 或在DOS svrmgrl @coldbak.sql

3.再插入記錄

SQL> insert into test values(2);

1 row inserted

SQL> commit;

Commit complete

SQL> select * from test;

A

---------------------------------------

1

2

4.關閉資料庫

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

5.毀壞一個或多個資料檔案,如刪除user01.dbf

C:>del D:ORACLEORADATATESTUSERS01.DBF

模擬媒體毀壞

6.重新啟動資料庫,會發現如下錯誤

SQL> startup

ORACLE instance started.

Total System Global Area 102020364 bytes

Fixed Size 70924 bytes

Variable Size 85487616 bytes

Database Buffers 16384000 bytes

Redo Buffers 77824 bytes

Database mounted.

ORA-01157: cannot identify/lock data file 3 - see DBWR trace file

ORA-01110: data file 3: 'D:ORACLEORADATATESTUSERS01.DBF'

在報警檔案中,會有更詳細的資訊

Errors in file D:OracleadmintestbdumptestDBW0.TRC:

ORA-01157: cannot identify/lock data file 3 - see DBWR trace file

ORA-01110: data file 3: 'D:ORACLEORADATATESTUSERS01.DBF'

ORA-27041: unable to open file

OSD-04002: unable to open file

O/S-Error: (OS 2) 系統找不到指定的檔案。

7.複製備份復原到原來位置(restore過程)

C:>xcopy d:database*.* d:oracleoradatatest/H/R/S

8.開啟資料庫,檢查資料

SQL> alter database open;

Database altered.

SQL> select * from test;

A

---------------------------------------

1

這裡可以發現,資料庫恢復成功,但在備份之後與崩潰之前的資料丟失了。

說明:

1、非歸檔模式下的恢復方案可選性很小,一般情況下只能有一種恢復方式,就是資料庫的冷備份的完全恢復,僅僅需要複製原來的備份就可以(restore),不需要recover

2、這種情況下的恢復,可以完全恢復到備份的點上,但是可能是丟失資料的,在備份之後與崩潰之前的資料將全部丟失。

3、不管毀壞了多少資料檔案或是聯機日誌或是控制檔案,都可以透過這個辦法恢復,因為這個恢復過程是Restore所有的冷備份檔案,而這個備份點上的所有檔案是一致的,與最新的資料庫沒有關係,就好比把資料庫又放到了一個以前的“點”上。

4、對於非歸檔模式下,最好的辦法就是採用OS的冷備份,建議不要用RMAN來作冷備份,效果不好,因為RMAN不備份聯機日誌,restore不能根本解決問題。

5、如果沒有備份聯機日誌,如RMAN的備份,就需要利用不完全恢復(until cancel)的方法來重新建立聯機日誌檔案

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18921899/viewspace-1017351/,如需轉載,請註明出處,否則將追究法律責任。

相關文章