standby庫歸檔日誌路徑小節

賀子_DBA時代發表於2015-03-25
我的dg庫
快速恢復區是:
SYS@JLPROJCT3> show parameter recover 


NAME                                 TYPE        VALUE

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

db_recovery_file_dest                string      /backup/

db_recovery_file_dest_size           big integer 500G
SQL> show parameter log_archive_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest                     string
log_archive_dest_1                   string      location=/backup/
                                                   VALID_FOR=(ALL_LOGFILES,ALL_
                                                 ROLES)
                                                   DB_UNIQUE_NAME=JLPROJCT           
歸檔路徑怎麼會是:
SYS@JLPROJCT3> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            $ORACLE_HOME/dbs/arch
Oldest online log sequence     594
Next log sequence to archive   0
我知道預設歸檔是在閃回恢復區 ,這是怎麼回事呢?   原來我的log_archive_dest_1引數中 DB_UNIQUE_NAME設定錯了, DB_UNIQUE_NAME應該為備庫的唯一名,而我寫的是主庫的唯一名,導致它失效,而standby庫的歸檔位置和這三個位置有關  :standby_archive_dest,log_archive_dest_1,standby_archive_dest預設值(?/dbs/arch) ,因為我的log_archive_dest_1失效,又沒有設定standby_archive_dest,所以歸檔變成了standby_archive_dest的預設位置,也就是:?/dbs/arch,
SYS@JLPROJCT3> show parameter  standby_archive_dest       

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
standby_archive_dest                 string     $ORACLE_HOME/dbs/arch
一般oracle資料庫歸檔路徑小結:
預設歸檔是在閃回恢復區:   就是說 如果沒有設定log_archive_dest_1這個引數(就是說這個引數值為“ ”,即沒有值)  那麼歸檔就會在閃回恢復區,如果同時設定了  log_archive_dest_1和db_recovery_file_dest   那麼恢復區 應該在  log_archive_dest_1指定的路徑,

更改log_archive_dest_1引數可更改歸檔日誌目錄(pfile/spfile中引數db_recovery_file_dest指定的目錄將無效)

SQL> alter system set log_archive_dest_1='location=/data/oracle/log1/archive_log';     

Linux:alter system set log_archive_dest_1='location=/u01/oracle/log/archive_log';

System altered.

 

SQL> archive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            /data/oracle/log1/archive_log

Oldest online log sequence     26

Next log sequence to archive   28

log_archive_log設定為預設值時,歸檔目錄將會變為?/dbs/arch

SQL> alter system set log_archive_dest_1='';

 

System altered.

SQL> archive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination           ?/dbs/arch

Oldest online log sequence     33

Next log sequence to archive   35

Current log sequence           35

SQL> shutdown immediate;

重啟資料庫後,歸檔目錄變回為閃回恢復區:db_recovery_file_dest指定的目錄。

startup mount;

SQL> archive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination              /backup/

Oldest online log sequence     33

Next log sequence to archive   35

Current log sequence           35


總結:歸檔路徑和這三個路徑有關係: log_archive_dest_1 >db_recovery_file_dest_1  >$ORACLE_HOME/dbs/arch

優先順序如上所示,原來你設定了log_archive_dest_1,然後你又把log_archive_dest_1設定成了預設值,那麼歸檔位置就變成了?/dbs/arch 

,但是重啟後又會變成db_recovery_file_dest指定的路徑。值得注意的是dg的standby庫:他的歸檔路徑
實際上  standby_archive_dest優先順序>log_archive_dest_1的優先順序>standby_archive_dest預設值(?/dbs/arch)      但是在11g,已經不建議使用STANDBY_ARCHIVE_DEST,也就是說建議配置dg的時候儘量使用standby redo logfile,原理層面:主庫的LOG_ARCHIVE_DEST_n='service'預設的arch傳輸方式,primary會遠端將archived log傳輸到standby_archive_dest下(沒有設定就會放到LOG_ARCHIVE_DEST_n),如果備庫利用standby redo log在備庫端自動歸檔,也就是說傳的是redo,那麼歸檔日誌將會被放置到LOG_ARCHIVE_DEST_n(沒有設定的話,就會放到STANDBY_ARCHIVE_DEST)。










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

相關文章