配置歸檔位置和檔案格式

531968912發表於2016-09-19

當資料庫處於archivelog模式時,如果進行日誌切換,後臺程式將自動生成歸檔日誌。歸檔日誌的預設位置為%oracle_home%\rdbms,oracle database 10g中,歸檔日誌的預設檔名格式為arc%s_%r.%t。為了改變歸檔日誌的位置和名稱格式,必須改變相應的初始化引數。

1、  配置歸檔檔案格式

初始化引數log_archive_format用於指定歸檔日誌的檔名格式,設定該初始化引數時,可以指定以下匹配符:

l         %s:日誌序列號

l         %S:日誌序列號(帶有前導0)。

l         %t: 重做執行緒編號。

l         %T: 重做執行緒編號(帶有前導0

l         %a:活動ID

l         %d:資料庫ID

l         %r:RESETLOGS的值。

需要注意,從oracle database 10g開始,配置歸檔日誌檔案格式時,必須帶有%s%t%r匹配符,而其他匹配符號可有可無。配置了歸檔檔案格式後,必須重啟資料庫。

SQL> alter system set log_archive_format='%s_%t_%r.arc' scope=spfile;

 

系統已更改。

SQL> shutdown immediate;

資料庫已經關閉。

已經解除安裝資料庫。

ORACLE 例程已經關閉。

SQL> startup

ORACLE 例程已經啟動。

 

Total System Global Area  251658240 bytes

Fixed Size                  1248356 bytes

Variable Size             113247132 bytes

Database Buffers          130023424 bytes

Redo Buffers                7139328 bytes

資料庫裝載完畢。

資料庫已經開啟。

修改了初始化引數log_archive_format並重啟資料庫後,初始化引數配置將會生效。進行日誌切換時,會生成該格式的歸檔日誌(如22_1_522517960.arc,其中22是日誌序列號,1是重做執行緒號,522517960.arcRESETLOGS的編號)。

2、  使用log_archive_dest配置歸檔位置

如果不適用備份資料庫,只需要將歸檔日誌放到本地目錄。配置本地歸檔位置可以使用初始化引數log_archive_destlog_archive_duplex_dest,其中,第一個引數用於指定第一個歸檔位置,第二個引數用於指定第二個歸檔位置。

SQL> alter system set log_archive_dest='d:\bak' scope=spfile;

 

System altered

SQL> alter system set log_archive_duplex_dest='e:\bak' scope=spfile;

 

System altered

配置了初始化引數log_archive_destlog_archive_duplex_dest後,當後臺程式lgwr執行日誌切換時,後臺程式arch會生成兩份完全相同的歸檔日誌,並分別存放到d:\bake:\bak目錄中。

3、  使用log_archive_dest_n配置多個歸檔位置

初始化引數log_archive_dest_n用於指定多個歸檔位置,該引數最多可以指定10個歸檔位置。透過使用初始化引數log_archive_dest_n,不僅可以配置本地歸檔位置,還可以遠端配置歸檔位置。

如果既要在主節點(主資料庫所在機器)上生成歸檔日誌,又要將歸檔日誌傳遞到備用節點(備用資料庫所在機器),那麼必須使用引數log_archive_dest_n。該初始化引數與log_archive_dest具有以下區別:

l         初始化引數log_archive_dest_n可以配置本地歸檔位置和遠端歸檔位置,而初始化引數log_archive_destlog_archive_duplex_dest只能配置本地歸檔位置。

l         初始化引數log_archive_dest_n可以配置多達10個歸檔位置,而初始化引數log_archive_destlog_archive_duplex_dest最多隻能配置兩個歸檔位置。

l         初始化引數log_archive_dest_n不能與初始化引數log_archive_destlog_archive_duplex_dest同時使用。

需要注意,因為初始化引數log_archive_dest_n不能與初始化引數log_archive_destlog_archive_duplex_dest同時使用,使用必須禁用初始化引數log_archive_destlog_archive_duplex_dest。當使用初始化引數log_archive_dest_n配置本地歸檔位置時,需要制定location選項;當配置遠端歸檔位置時,需要制定server選項。

SQL> alter system set log_archive_dest_3='location=c:\bak' scope=spfile;

 

System altered

 

SQL> alter system set log_archive_dest_1='location=d:\bak' scope=spfile;

 

System altered

 

SQL> alter system set log_archive_dest_2='location=e:\bak' scope=spfile;

 

System altered

SQL> alter system set log_archive_dest_4='service=orcl' scope=spfile;

 

System altered

執行以上語句後,配置了3個本地歸檔位置(location選項)和一個宣稱歸檔位置(service選項)。配置遠端歸檔位置時,service選項需要指定遠端資料庫的網路伺服器名(在tnsname.ora檔案中配置)。這樣,當執行日誌切換時,會在伺服器上生成3份完全相同的歸檔日誌,並會傳遞一份歸檔日誌到備用資料庫。

4、  使用log_archive_dest_n選項

使用初始化引數log_archive_dest_n配置歸檔位置時,可以在歸檔位置上指定optionalmandatory選項。指定mandatory選項時,可以設定reopen屬性。

作用如下:

l         Optional:該選項是預設選項。使用該選項時,無論歸檔是否成功,都可以覆蓋重做日誌。

l         Mandatory:該選項用於強制歸檔。使用該選項時,只有在歸檔成功之後,重做日誌才能被覆蓋。

l         Reopen:該屬性用於指定重新歸檔的事件間隔,預設值為300秒。需要注意,reopen屬性必須跟在mandaroty選項後。

為了強制歸檔到特定位置,必須制定mandatroy選項。下面以強制歸檔到目錄d:bake:\bak為例子,說明mandatroyoptional選項的使用方法。

SQL> alter system set log_archive_dest_4='service=orcl' scope=spfile;

 

System altered

 

SQL> alter system set log_archive_dest_1='location=:d:\bak mandatory' scope=spfile;

 

System altered

 

SQL> alter system set log_archive_dest_2='location=:e:\bak mandatory reopen=500' scope=spfile;

 

System altered

 

SQL> alter system set log_archive_dest_3='location=c:\bak optional' scope=spfile;

 

System altered

5、  控制本地歸檔成功的最小個數

使用初始化引數log_archive_dest_n配置歸檔位置時,DBA可以使用初始化引數log_archive_mix_succeed_dest控制本地歸檔成功的最小成功個數。

SQL> alter system set log_archive_min_succeed_dest=2 ;

 

System altered

執行以上語句後,如果成功的歸檔日誌少於兩份,重做日誌將不能被覆蓋。

6、  控制歸檔位置

使用初始化引數log_archive_dest_n配置歸檔位置,DBA可以使用初始化引數log_archive_dest_state_n控制歸檔位置的可用性。設定該引數為enable(預設值),表示會啟用相應的歸檔位置;設定該引數為defer,表示會禁用相應的歸檔位置。當歸檔日誌所在的磁碟損壞或填滿時,DBA需要暫時禁止該歸檔位置。

SQL> alter system set log_archive_dest_state_3=defer;

 

System altered

執行以上語句後,會禁用初始化引數log_archive_dest_state_3所對應的歸檔位置。為了重新啟用該歸檔位置,可以執行以下語句:

SQL> alter system set log_archive_dest_state_3=enable;

 

System altered

頂 0 踩

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

相關文章