oracle archive log 歸檔日誌

xiayulai發表於2008-04-05

檢視和歸檔相關的引數:

SQL> show parameter archive

NAME TYPE VALUE

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

archive_lag_target integer 0

log_archive_dest string

log_archive_dest_1 string LOCATION=D:oracleoradataarc

log_archive_dest_10 string

log_archive_dest_2 string

log_archive_dest_3 string

log_archive_dest_4 string

log_archive_dest_5 string

log_archive_dest_6 string

log_archive_dest_7 string

log_archive_dest_8 string

NAME TYPE VALUE

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

log_archive_dest_9 string

log_archive_dest_state_1 string enable

log_archive_dest_state_10 string enable

log_archive_dest_state_2 string enable

log_archive_dest_state_3 string enable

log_archive_dest_state_4 string enable

log_archive_dest_state_5 string enable

log_archive_dest_state_6 string enable

log_archive_dest_state_7 string enable

log_archive_dest_state_8 string enable

log_archive_dest_state_9 string enable

NAME TYPE VALUE

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

log_archive_duplex_dest string

log_archive_format string arch_%S.arc

log_archive_max_processes integer 2

log_archive_min_succeed_dest integer 1

log_archive_start boolean TRUE

log_archive_trace integer 0

remote_archive_enable string true

standby_archive_dest string %ORACLE_HOME%RDBMS

SQL>

log_archive_dest,log_archive_dest_n 這兩個引數是不能同時設定的,在企業版或者9i的版本里面基本上都啟用log_archive_dest_n這個引數,它指明瞭歸檔的位置,為了能夠更安全的保證資料的不丟失,一般採用儲存兩份以上的檔案作為備份用。

比如一個設定在本地:

log_archive_log_dest_1=’LOCATION=d:oracleoradatearch’

另一個設定在遠端的災備系統中:

log_archive_log_dest_2=’service=backup_db’

service這個引數是透過oraclenet service進行連線服務的,backup_dbtnsmane.ora中配置的遠端的資料庫服務名,此時一般是standby資料庫,對應的資料庫的控制檔案應該和主庫一致,資料檔案的路徑如果不同需要在初始化引數檔案中指定轉化的路徑。

可以根據需要設定歸檔路徑是否必須要歸檔成功,設定如下:

Alter system set log_archive_log_dest_1=’location=d: oracleoradatearch mandatory reopen=100’ scope=spfile;

其中mandatory 是必須要歸檔成功的,不成功會報錯,預設是optional,optional的意思是已經歸檔成功的路徑大於等於log_archive_min_succeed_dest的值時,設定為optional的歸檔路徑歸檔失敗時不會出錯,即可以允許出現此路徑的歸檔不成功。Reopen是指arcn程式最小多長時間(單位:秒)去重新開啟對應的歸檔路徑當失敗的時候。Reopen引數如果設定為零則是說要關閉reopen的操作,也就是說當發生錯誤後不再嘗試去開啟歸檔的路徑。這時出現錯誤,歸檔日誌丟失,需要手工的處理。

採用net service這樣的設定時,系統會(remote file server RFS程式)自動地將日誌傳輸到歸檔目的,但是有時候也會出現錯誤需要手工將日誌複製到對應的歸檔目標路徑。

SQL> select DEST_NAME,STATUS,SCHEDULE,DESTINATION,LOG_SEQUENCE,REOPEN_SECS from v$archive_dest;

DEST_NAME STATUS SCHEDULE DESTINATION LOG_SEQUENCE REOPEN_SECS

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

LOG_ARCHIVE_DEST_1 VALID ACTIVE D:oracleoradataarc 3 300

LOG_ARCHIVE_DEST_2 INACTIVE INACTIVE 0 0

LOG_ARCHIVE_DEST_3 INACTIVE INACTIVE 0 0

LOG_ARCHIVE_DEST_4 INACTIVE INACTIVE 0 0

LOG_ARCHIVE_DEST_5 INACTIVE INACTIVE 0 0

LOG_ARCHIVE_DEST_6 INACTIVE INACTIVE 0 0

LOG_ARCHIVE_DEST_7 INACTIVE INACTIVE 0 0

LOG_ARCHIVE_DEST_8 INACTIVE INACTIVE 0 0

LOG_ARCHIVE_DEST_9 INACTIVE INACTIVE 0 0

LOG_ARCHIVE_DEST_10 INACTIVE INACTIVE 0 0

已選擇10行。

Statusvalid表示已經被設定使用了,其狀態有多種如圖表1DESTINATION歸檔路徑,LOG_SEQUENCE是最後歸檔的日誌的序列號,REOPEN_SECS失敗後多少秒重新歸檔。

STATUS

Valid

Enabled

Active

Meaning

VALID

True

True

True

The user has properly initialized the destination, which is available for archiving.

INACTIVE

False

n/a

n/a

The user has not provided or has deleted the destination information.

ERROR

True

True

False

An error occurred creating or writing to the destination file; refer to error data.

FULL

True

True

False

Destination is full (no disk space).

DEFERRED

True

False

True

The user manually and temporarily disabled the destination.

DISABLED

True

False

False

The user manually and temporarily disabled the destination following an error; refer to error data.

BAD PARAM

n/a

n/a

n/a

A parameter error occurred; refer to error data. Usually this state is only seen when the LOG_ARCHIVE_START initialization parameter is not set.

圖表1

log_archive_destlog_archive_duplex_dest 這是一組的,但是此時只能備份到本地的目錄。

Log_archive_dest=’ d:oracleoradatearch’

Log_archive_duplex_dest=’ e:oracleoradatearch’

log_archive_dest_state_1表示該歸檔的路徑是否使用,此引數可以動態的將歸檔位置置為可用和非可用。

Alter system set log_archive_dest_state_1=defer;

此時就將暫時停止向log_archive_dest_1這個歸檔位置歸檔日誌,這個命令執行有個前提條件是滿足可用的歸檔路進要大於等於log_archive_min_succeed_dest的值。當值執行如下命令讓其可以再使用時,必須將缺失的命令補全,否則會有日誌丟失。Alter system set log_archive_dest_state_1=enable;log_archive_dest_state_1引數的值有ENABLE,DEFER ALTERNATE.alternate引數其預設狀態是defered,當一切正常時和defer的作用一樣,當其他的歸檔的路徑有問題時就會變為enable狀態。

log_archive_format此引數是說明歸檔日誌的命名的格式,此格式很重要的,好的命名格式可以方便的查詢需要的日誌,例如:log_archive_format=arch_%S.arc,此時歸檔日誌會以redo日誌的序列號命名。rac環境,可以使用log_archive_format=arch_%t_%S.arc這樣會好一些,可以知道那個程式產生的。

資料庫設定歸檔的步驟:

SQL> shutdown immediate

資料庫已經關閉。

已經解除安裝資料庫。

ORACLE 例程已經關閉。

SQL> create pfile from spfile;

檔案已建立。

SQL> startup mount;

ORACLE 例程已經啟動。

Total System Global Area 319888364 bytes

Fixed Size 453612 bytes

Variable Size 285212672 bytes

Database Buffers 33554432 bytes

Redo Buffers 667648 bytes

資料庫裝載完畢。

SQL> alter database archivelog;

資料庫已更改。

SQL> alter database open;

資料庫已更改。

SQL> alter system set log_archive_start=true scope=spfile;

系統已更改。

SQL> alter system set log_archive_dest_1=’location= D:oracleoradataarc ‘ scope=spfile;

系統已更改。

SQL> shutdown immediate

資料庫已經關閉。

已經解除安裝資料庫。

ORACLE 例程已經關閉。

SQL> startup;

ORACLE 例程已經啟動。

SQL> archive log list;

資料庫日誌模式 存檔模式

自動存檔 啟用

存檔終點 D:oracleoradataarc

最早的概要日誌序列 30

下一個存檔日誌序列 32

當前日誌序列 32

SQL>

[@more@]

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

相關文章