通過警報日誌瞭解oracle斷電後重新啟動的恢復過程

jane_pop發表於2014-09-06
首先了解oracle的警報日誌檔案
警報日誌是oracle資料庫執行產生的日誌資訊,主要包含資料庫的啟動和關閉,資料庫內部執行的操作,資料庫報錯等資訊,主要用於DBA對資料庫的日常診斷。
當資料庫出現問題時,警報日誌會指出問題所在,比如說表不能增加儲存空間,回滾段問題等等都包含在警報日誌中,正因如此,每天都要檢查警報日誌,看看資料庫有沒有什麼異常。
可通過background_dump_dest引數檢視警報日誌的路徑:
SYS@orcl 05-SEP-14>show parameter background_dump_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
background_dump_dest                 string      /u01/app/oracle/diag/rdbms/orc
                                                 l/orcl/trace

由於警報日誌是持續性寫入的,可以使用tail -f 檢視警報日誌檔案的內容,通過這個命令可以捕捉日誌的變化。
[oracle@localhost trace]$ tail -f alert_orcl.log 
  Current log# 2 seq# 14 mem# 0: /u01/app/oracle/oradata/orcl/redo02.log
Thread 1 advanced to log sequence 15 (LGWR switch)
  Current log# 3 seq# 15 mem# 0: /u01/app/oracle/oradata/orcl/redo03.log
Fri Sep 05 18:57:26 2014
Archived Log entry 111 added for thread 1 sequence 14 ID 0x52835472 dest 1:
Archived Log entry 112 added for thread 1 sequence 14 ID 0x52835472 dest 2:
Fri Sep 05 19:01:46 2014
Starting background process SMCO
Fri Sep 05 19:01:46 2014
SMCO started with pid=37, OS id=19485 

下面用shutdown abort關閉資料庫:
SYS@orcl 05-SEP-14>shutdown abort
ORACLE instance shut down.

再用tail -f檢視警報日誌的資訊:
Shutting down instance (abort)
License high water mark = 13 
USER (ospid: 18818): terminating the instance
Instance terminated by USER, pid = 18818
Fri Sep 05 19:37:48 2014
Instance shutdown complete

再開啟資料庫:
SYS@orcl 05-SEP-14>startup
ORACLE instance started.

Total System Global Area  849530880 bytes
Fixed Size                  1339824 bytes
Variable Size             587206224 bytes
Database Buffers          255852544 bytes
Redo Buffers                5132288 bytes
Database mounted.
Database opened.
在警報日誌檔案中可以看到如下恢復資訊:
Fri Sep 05 19:39:29 2014
ALTER DATABASE OPEN
Beginning crash recovery of 1 threads
Started redo scan
Completed redo scan
 read 639 KB redo, 183 data blocks need recovery
Started redo application at
 Thread 1: logseq 15, block 10756
Recovery of Online Redo Log: Thread 1 Group 3 Seq 15 Reading mem 0
  Mem# 0: /u01/app/oracle/oradata/orcl/redo03.log
Completed redo application of 0.33MB
Completed crash recovery at
 Thread 1: logseq 15, block 12034, scn 1089266
 183 data blocks read, 183 data blocks written, 639 redo k-bytes read



如果以shutdown abort方式關閉資料庫,資料庫不會進行檢查點操作,buffer cache中的髒資料沒有寫回到資料檔案中,資料庫不一致,重新啟動的時候需要進行資料庫恢復,恢復依賴於重做日誌檔案。

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

相關文章