天天看點

RAC 開啟歸檔模式及設定歸檔路徑

(1)将所有節點的執行個體都關閉

[root@rac1 ~]# srvctl stop database -d oradb

[root@rac1 ~]# srvctl status database -d oradb

Instance oradb1 is not running on node rac1

Instance oradb2 is not running on node rac2

(2)将所有執行個體啟動到mount狀态

[root@rac1 ~]# srvctl start database -d oradb -o mount

(3)開啟歸檔需要設定兩個參數,一個是歸檔路徑log_archive_dest_1,另外一個是歸檔的格式log_archive_format,預設是%t_%s_%r.dbf,要設定為%t_%s_%r.arc

設定歸檔格式  需要重新開機資料庫生效

SQL> alter system set log_archive_format='%t_%s_%r.arc' scope=spfile; --這個參數不支援記憶體修改生效,要使用scope=spfile

System altered.

設定歸檔路徑 不需要重新開機生效

如果所有節點歸檔路徑在一個目錄下面使用

SQL> alter system set log_archive_dest_1='LOCATION=+ARCHIVE' scope=both sid=’*’;

這樣在配置檔案裡面是*. log_archive_dest_1=

如果每個節點都有自己的歸檔目錄使用

SQL> alter system set log_archive_dest_1='LOCATION=+ARCHIVE' scope=both sid=’oradb1’

SQL> alter system set log_archive_dest_1='LOCATION=+DATA' scope=both sid=’oradb2’

這樣在配置檔案裡面是oradb1. log_archive_dest_1=  oradb2. log_archive_dest_1=

修改完可以檢視該參數

SQL> show parameter log_archive_dest_1;

NAME      TYPE  VALUE

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

log_archive_dest_1      string  LOCATION=+ARCHIVE

在RAC環境下,歸檔路徑的選擇是值得斟酌的,如果使用共享的歸檔目錄作為歸檔路徑,則可以減少備份時的複雜性。如果使用獨立的目錄,則備份時需要進行特殊處理。

(4)因為log_archive_format需要重新開機才能生效是以需要重新開機

[root@rac1 ~]# srvctl stop database -d oradb

[root@rac1 ~]# srvctl start database -d oradb -o mount  --所有執行個體啟動到mount狀态

(5)開啟歸檔模式,開啟歸檔的指令在任一節點執行都可以

SQL> alter database archivelog;

Database altered.

SQL> archive log list;  --在其餘節點檢視一下

Database log mode        Archive Mode

Automatic archival        Enabled

Archive destination        +ARCHIVE

Oldest online log sequence     38

Next log sequence to archive   40

Current log sequence        40

SQL> show parameter log_archive_format;

NAME      TYPE  VALUE

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

log_archive_format      string  %t_%s_%r.arc

歸檔已經開啟,歸檔路徑和格式已經設定好了,最後别忘記将執行個體啟動到open狀态。

SQL> alter system switch logfile;  --節點1上切換日志,産生歸檔

System altered.

SQL> select NAME,THREAD# from v$archived_log;  --可以看到修改的log_archive_format格式并不生效,asm采用自己的命名規則

NAME                                                      THREAD#

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

+ARCHIVE/oradb/archivelog/2020_03_03/thread_1_seq_40.270.1034098609      1

最後說一下,歸檔路徑如果沒有設定,預設和db_recovery_file_dest有關,需要設定db_recovery_file_dest_size參數的大小,建議不要設定這個值,假如設定10G,如果歸檔達到這個值就滿了,産生不了歸檔,還是使用log_archive_dest_1來設定歸檔路徑,這樣歸檔最大值就是磁盤組容量最大值

SQL> show parameter db_r;

NAME      TYPE  VALUE

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