歸檔模式

yeahokay發表於2008-06-03

在oracle資料庫的開發環境和測試環境中,資料庫的日誌模式和自動歸檔模式一般都是不設定的,這樣有利於系統應用的調整,也免的生成大量的歸檔日誌檔案將磁碟空間大量的消耗。但在系統上線,成為生產環境時,將其設定為日誌模式並自動歸檔就相當重要了,因為,這是保證系統的安全性,有效預防災難的重要措施。這樣,透過定時備份資料庫和在兩次備份間隔之間的日誌檔案,可以有效的恢復這段時間的任何時間點的資料,可以在很多時候挽回或最大可能的減少資料丟失。

一要使OARCLE資料庫進行日誌的自動歸檔,需要做兩方面的事情,一是資料庫日誌模式的設定(database log mode,可為Archive Mode和No Archive Mode),另外就是自動歸檔模式設定(Automatic archival,可為Enabled和Disabled)。

二如何檢視資料庫的現行日誌和自動歸檔模式的設定:可用archive log list命令來檢視。

[@more@]

自動歸檔模式設定(Automatic archival,可為Enabled和Disabled),在該模式下,資料庫啟動一個arch程式,專門負責將redo logs寫到系統歸檔裝置的相應目錄下。  

改變非歸檔模式到歸檔模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE ARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;

5)SQL>做一次完全備份,因為非歸檔日誌模式下產生的備份日誌對於歸檔模式已經不可用了.這一步非非常重要!

改變歸檔模式到非歸檔模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE NOARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;

啟用自動歸檔,在資料庫的引數檔案中設定引數(一般是在$ORACLE_HOME/dbs/init*.ora檔案中):
  
  LOG_ARCHIVE_START=TURE/FALSE
  
  LOG_ARCHIVE_DEST= ---歸檔路徑
  
  LOG_ARCHIVE_FORMAT= ---歸檔命名方式


幾種設定情況:

  (1) Database log mode       Archive Mode
  
  Automatic archival       Enabled
  
  這是在大部分生產環境中的ORACLE資料庫日誌及歸檔模式設定,這種情況下,做好資料庫的定期備份(有熱備和冷備)和歸檔日誌備份,可有效的將資料庫恢復到有歸檔日誌的全部時間點。
  
  (2) Database log mode       Archive Mode
  
  Automatic archival       Disabled
  
  這種情況下,資料庫不能自動歸檔,需要進行手工歸檔。如果所有線上日誌都寫滿了,又沒有的及時進行手工歸檔的話,由於LGWR沒有可用的線上日誌可寫,資料庫將會掛在這兒,只有進行手工歸檔後,有可用的線上日誌後才能繼續。在生產環境中應該避免這種情況。
  
  手工歸檔操作如下:
  
  SVRMGRL> ALTER SYSTEM ARCHIVE LOG ALL;
  
  資料庫將會把線上日誌進行歸檔處理
  
  (3) Database log mode       NO Archive Mode
  
  Automatic archival       Enabled
  
  有些相對欠缺經驗的管理員在進行設定時,只在資料庫引數檔案中設定了LOG_ARCHIVE_START=TRUE,然後在資料庫起來後檢視到ARCH歸檔程式已經起來了,可是儘管ORACLE已經作了幾次日誌切換,但還是沒有歸檔日誌,這時的設定就是這種情況,如果資料庫不是處在ARVHIVELOG模式,redolog 還是不會被歸檔。
  
  (4) Database log mode       NO Archive Mode
  
  Automatic archival       Disabled
  
  這種設定是剛安裝的oracle資料庫的預設設定,開發環境也大部分如此。即沒有進行歸檔。

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

相關文章