oracle 歸檔設定

csbwolf10發表於2010-02-12
一、檢視資料庫執行模式  
可以用超級使用者(INTERNAL)在SQLPLUS中使用命令ARCHIVE LOG LIST檢視  
SQL> archive log list  
Database log mode       No Archive Mode  
Automatic archival      Disabled  
Archive destination      /export/home/oracle/product/8.1.7/dbs/arch  
Oldest online log sequence   28613  
Current log sequence     28615  
或者用:  
SQL> SELECT NAME,LOG_MODE FROM V$DATABASE;  
  
NAME    LOG_MODE  
--------  ------------  
BIGSUN   NOARCHIVELOG  
如看到如上情況,則證明是非歸檔(NOARCHIVELOG)模式。  
  
二、關閉資料庫  
通知相關人員後,釋出如下命令關閉資料庫:  
SQL> shutdown immediate  
  
三、設定相應的初始化引數  
引數檔案一般存放在$ORACLE_HOME/dbs目錄下,格式為:initSID.ora,其中SID為資料庫名。可以使用VI命令進行編輯。  
1、設定歸檔路徑  
a)LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST引數  
這兩個引數指明瞭歸檔日誌存放的兩個路徑,如果只設定第一個,則歸檔日誌只存放到一個路徑。  
例:  
log_archive_dest=/disk1/archive  
log_archive_duplex_dest=/disk2/archive  
  
b)LOG_ARCHIVE_DEST_n引數  
其中n為1-5的整數,必需從低到高設定,下面舉例說明:  
log_archive_dest_1="LOCATION=/archive MANDATORY REOPEN"  
log_archive_dest_2="SERVICE=standby_db1 MANDATORY REOPEN=600"  
log_archive_dest_3="LOCATION=/archive2 OPTIONAL"  
  
LOCATION關鍵字說明是本機的一個目錄,而SERVICE關鍵字說明是已經在Net8中進行了配置的其他資料庫主機的別名。  
  
MANDATORY關鍵字說明聯機日誌檔案必須要成功歸檔到這個目錄後才能被覆寫(聯機日誌檔案是重複使用的檔案)。預設為可選(OPTIONAL),即即使歸檔不成功也可以覆寫。在設定時應該至少有一個本地(LOCATION)強制(MANDATORY)歸檔目錄。  
  
REOPEN關鍵字說明如果歸檔不成功時系統要重新嘗試歸檔,預設每300秒嘗試一次直到成功。可以通過=n來指定嘗試的時間間隔,如log_archive_dest_2中的時間間隔為600秒,而log_archive_dest_1中的時間間隔為300秒。  
  
a)和b)兩種方式是排斥的,即只能設定其中的一種,a)和b)的不同之處在於:  
a)最多隻能設定2個歸檔路徑,而b)最多可設定5個。  
a)中只能指定本地目錄,b)中可指定遠端服務目錄。  
如果使用a)方式,則log_archive_dest是強制(MANDATORY)歸檔目錄,而log_archive_duplex_dest為可選(OPTIONAL)目錄。  
a)中不能使用REOPEN關鍵字。  
所以推薦使用b)方式。  
  
2、設定歸檔日誌檔名格式  
例:  
log_archive_format=arch%S.arc  
其中%S為日誌序列號,則生成的歸檔日誌檔名為arch001.arc、arch002.arc等。  
  
3、設定最小歸檔成功數  
例:  
log_archive_min_succeed_dest=2  
此引數說明至少有2個歸檔路徑歸檔成功後才能覆寫聯機日誌檔案,此引數和歸檔路徑引數聯用。  
如歸檔路徑引數設定為:  
log_archive_dest_1="LOCATION=/archive MANDATORY REOPEN"  
log_archive_dest_2="SERVICE=standby_db1 OPTIONAL"  
log_archive_dest_3="LOCATION=/archive2 OPTIONAL"  
則log_archive_dest_1必須歸檔成功(MANDATORY),log_archive_dest_2、 log_archive_dest_3中必須有一個歸檔成功(log_archive_min_succeed_dest=2)後才能覆寫聯機日誌檔案。同樣,如果log_archive_dest_n中的MANDATORY關鍵字個數大於log_archive_min_succeed_dest,則 log_archive_min_succeed_dest的設定不起作用。  
  
4、控制歸檔路徑是否可用  
例:  
log_archive_dest_state_1=DEFER  
log_archive_dest_state_2=ENABLE  
此引數和log_archive_dest_n引數配對使用,預設值為ENABLE,如果想停止使用一個歸檔目錄,只需將其對應的log_archive_dest_state_n引數值設定為DEFER。  
  
5、實現自動歸檔(可選)  
log_archive_start=true  
log_archive_max_processes=2  
在ORACLE中,自動歸檔的程式名為ARC0、ARC1等,log_archive_start引數說明是否採用自動歸檔,值為true表示採用,為 false時必須採用命令來手工備份。log_archive_max_processes表示在log_archive_start為true時執行幾個歸檔程式來完成歸檔工作,取值範圍為1-10。  
補充說明:(
        設定系統自動歸檔
                 1.archive log start.
        臨時把自動歸檔開啟,如果要永久自動歸檔,需要設定引數 log_archive_start

        alter system set log_archive_start=true.
        無法修改指定的初始化引數,因為log_archive_start是個靜態引數.
        正確的方法
        alter system set log_archive_start=true scope=spfile;
        先在例項引數檔案中改,然後當例項重新載入引數檔案的時候生效。>

        多歸檔程式
        增加或者減少歸檔程式,修改引數:log_archive_max_processes
        Alter system set log_archive_max_processes=2

        例項啟動後啟用自動歸檔
        Alter system archive log start.這是個sql命令,遵循oracle sql標準的命令,可以在oracle的一切環境下使用,如JDBC。
        在sqlplus中直接使用 archive log start. 叫做sqlplus命令,在sqlplus工具下使用的。

        手動歸檔:
        Alter system archive log current.
  
四、更改資料庫執行模式  
在SQLPLUS中執行命令:  
SQL> startup mount  
SQL> alter database archivelog;  
SQL> alter database open;  
  
至此,模式轉化工作已經大功告成。但需要注意的是,由於更改了資料庫結構,如有資料庫安全方面的需要,必須關閉資料庫並完全備份。

 
 
====補充10g中設定自動歸檔模式
在pfile中增加
*.log_archive_dest_1="LOCATION=D:\oracle\product\10.1.0\arc1" 
*.log_archive_dest_2="LOCATION=D:\oracle\product\10.1.0\arc2" 
*.log_archive_max_processes=
 
startup mount的時候
alter database archivelog;
 
如果是oracle9i,還需要更改如下引數:
alter system set log_archive_start=true scope=spfile;

但是如果在10g中也更改這些引數,資料庫重啟時會有如下提示:
ORA-32004: obsolete and/or deprecated parameter(s) specified
alter system set log_archive_format='%t_%s.dbf' scope=spfile;
但是如果在10g中也更改這些引數,資料庫會不能啟動,如下提示:
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORA-19905: log_archive_format must contain %s, %t and %r
 
10g不用增加log_archive_start=true
 

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

相關文章