開啟歸檔模式及其相關引數

還不算暈發表於2013-10-27

涉及以下幾個引數:log_archive_min_succeed_dest動態引數   log_archive_dest_state_ 引數

log_archive_format   log_archive_dest_1

1.開啟歸檔模式

SQL> show user

USER 為 "SYS"

SQL> archive loglist

資料庫日誌模式             非存檔模式

自動存檔             禁用

存檔終點            USE_DB_RECOVERY_FILE_DEST

最早的聯機日誌序列     32

當前日誌序列           36

SQL> shutdown immediate;


SQL> startup mount;     開啟歸檔模式 需要在MOUNT狀態下進行。

ORACLE 例程已經啟動。

Total System Global Area  431038464 bytes

Fixed Size                  1375088 bytes

Variable Size             327156880 bytes

Database Buffers           96468992 bytes

Redo Buffers                6037504 bytes

資料庫裝載完畢。

SQL> alter database archivelog;

資料庫已更改。

SQL> alter database open;

資料庫已更改。

SQL> archive loglist;

資料庫日誌模式            存檔模式

自動存檔             啟用

存檔終點            USE_DB_RECOVERY_FILE_DEST   ---開啟歸檔後預設歸檔位置是閃回區

最早的聯機日誌序列     32

下一個存檔日誌序列   36

當前日誌序列           36

SQL> show parameter log_archive_max_process

NAME                                 TYPE        VALUE

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

log_archive_max_processes            integer     4

SQL> show parameter log_archive_dest_

NAME                                 TYPE        VALUE

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

log_archive_dest_1                   string

log_archive_dest_10                  string

log_archive_dest_state_13            string      enable

2.指定歸檔日誌存放目錄

SQL> alter  system set  log_archive_dest_1="location=d:\disk1\offlinelog\  mandatory";      這裡如果是RAC的話,可以指定為閃回區並具體到例項alter system set  log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST' sid='*'

系統已更改。

SQL> show parameter log_archive_dest_1

NAME                                 TYPE        VALUE

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

log_archive_dest_1                   string      location=d:\disk1\offlinelog\  mandatory


SQL> alter system set  log_archive_dest_2="location=d:\disk2\offlinelog\ ";

系統已更改。

SQL> show parameter log_archive_dest_2

NAME                                 TYPE        VALUE

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

log_archive_dest_2                   string      location=d:\disk2\offlinelog\

SQL> alter system set log_archive_dest_3="location=d:\disk3\offlinelog\ optional";

系統已更改。

SQL> alter system setlog_archive_dest_4="location=d:\disk4\offlinelog\ optional";

系統已更改。

SQL> alter system setlog_archive_dest_5="location=d:\disk5\offlinelog\ mandatory";

系統已更改。

設定歸檔目錄時的幾個引數:

optional該目錄下的歸檔日誌檔案是可選的。mandatory強制性的必須歸檔,ORACLE預設未指明即是OPTIONAL 。 

SQL> showparameter log_archive_dest_

NAME                                 TYPE        VALUE

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

log_archive_dest_1                   string      location=d:\disk1\offlinelog\        mandatory

log_archive_dest_2                   string      location=d:\disk2\offlinelog\

log_archive_dest_3                   string      location=d:\disk3\offlinelog\       optional

log_archive_dest_4                   string      location=d:\disk4\offlinelog\       optional

log_archive_dest_5                   string      location=d:\disk5\offlinelog\       mandatory

log_archive_dest_6                   string

 

SQL> col destination for a30

SQL> select  destination,binding,target,status from  v$archive_dest;

DESTINATION                    BINDING   TARGET STATUS

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

d:\disk1\offlinelog\           MANDATORY PRIMARY VALID

d:\disk2\offlinelog\           OPTIONAL  PRIMARY VALID          設定引數時未指定OPTIONAL,ORACLE預設即是此引數值。

d:\disk3\offlinelog\           OPTIONAL  PRIMARY VALID

d:\disk4\offlinelog\           OPTIONAL  PRIMARY VALID

d:\disk5\offlinelog\           MANDATORY PRIMARY VALID

                               OPTIONAL  PRIMARY INACTIVE

                               OPTIONAL  PRIMARY INACTIVE

查詢已經產生的歸檔日誌名--系統預設的命令格式

SQL> select name,blocks from v$archived_log;

NAME                                                                                BLOCKS

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

/u01/app/oracle/flash_recovery_area/BYS001/archivelog/2013_06_08/o1_mf_1_12_8v63        762

########################################################################################

3.修改生成的歸檔日誌名格式

初始化引數LOG_ARCHIVE_FORMAT用於指定歸檔日誌的檔名格式,設定該初始化引數時,可以指定以下匹配符:
%s: 日誌序列號   %S: 日誌序列號(帶有前導0)    %t: 重做執行緒編號.%T: 重做執行緒編號(帶有前導0)   %a: 活動ID   %d: 資料庫ID號   %r RESETLOGS的值.

比如arch_%s_%r

注意:

未設定 log_archive_dest_ 引數,只設定LOG_ARCHIVE_FORMAT引數時,生成的歸檔日誌名並不是LOG_ARCHIVE_FORMAT中指定的檔名,而仍是原來的系統命令。
log_archive_format的引數只對log_archive_dest和log_archive_dest_n生效。

SQL> alter system set log_archive_format='arch_%s_%t_%r.arc' scope=both;     因為此引數是靜態引數--從報錯中也能看出,不能用scope=both;

alter system setlog_archive_format='arch_%s_%t_%r.arc' scope=both

ORA-02095: specified initializationparameter cannot be modified

 

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

System altered

 

手動切換日誌檢視是否生成歸檔日誌

SQL> archive log list

資料庫日誌模式            存檔模式

自動存檔             啟用

存檔終點            d:\disk5\offlinelog\

最早的聯機日誌序列     33

下一個存檔日誌序列   37

當前日誌序列           37

SQL> alter system switch logfile;

系統已更改。

 

SQL> host

Microsoft Windows XP [版本 5.1.2600]

(C) 版權所有1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator\桌面>dir d:\disk5\offlinelog

 驅動器 D 中的卷是新加捲

 卷的序列號是 D089-4E9A

 d:\disk5\offlinelog 的目錄

 

2013-01-27 16:12    <DIR>          .

2013-01-27 16:12    <DIR>          ..

2013-01-27 16:12         3,437,568 ARC0000000037_0802131748.0001

               1 個檔案      3,437,568 位元組

               2 個目錄    475,342,848 可用位元組

C:\Documents and Settings\Administrator\桌面>dir d:\disk1\offlinelog

 驅動器 D 中的卷是新加捲

 卷的序列號是 D089-4E9A

 d:\disk1\offlinelog 的目錄、

2013-01-27 16:12    <DIR>          .

2013-01-27 16:12    <DIR>          ..

2013-01-27 16:12         3,437,568ARC0000000037_0802131748.0001

               1 個檔案      3,437,568 位元組

               2 個目錄    475,342,848 可用位元組

 注:'arch_%s_%t_%r.arc'格式生成的日誌名不應該是上面ARC0000000037_0802131748.0001這種,不過這實驗是很久前在WIN下做的。

後來在LINUX下是正常的,如此種格式:/u01/app/oracle/archbys001/arch_14_1_817472254.arc

##########################################################################################

4. log_archive_min_succeed_dest動態引數,限定ORACLE系統必須保證成功的歸檔日誌檔案組數的最低要求。 

如此此數值小於等於設定歸檔目錄時指定的mandatory的個數,對系統沒有影響 。

如果此數值大於mandatory的個數,ORACLE除了保證mandatory選項對應的日誌成功外,成功的歸檔日誌檔案數至少不能低於這一值。

在我的這個實驗中,上面只設定了兩個mandatory,現在設定 log_archive_min_succeed_dest為3,則ORACLE會保證最少成功3個歸檔日誌檔案。

SQL> show parameterlog_archive_min_succeed_dest

NAME                                 TYPE        VALUE

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

log_archive_min_succeed_dest         integer     1

SQL> alter system setlog_archive_min_succeed_dest = 3;

系統已更改。

SQL> show parameterlog_archive_min_succeed_dest

NAME                                 TYPE        VALUE

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

log_archive_min_succeed_dest         integer     3

#########################################################################################

5.log_archive_dest_state_ 引數為系統維護提供方便,

歸檔日誌物理路徑狀態被設定為DEFER時,ORACLE不會對這路徑進行歸檔操作。

可以在某一歸檔日誌目錄出錯時使用此引數,正常後再修改,可以不影響資料庫系統的正常執行。

如以後路徑狀態改為ENABLE,所丟失的歸檔檔案必須手工恢復。

 

SQL> show parameterlog_archive_dest_state_

NAME                                 TYPE        VALUE

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

log_archive_dest_state_1             string      enable

 

SQL> select   destination,binding,target,status from v$archive_dest;

DESTINATION                    BINDING   TARGET STATUS

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

d:\disk1\offlinelog\           MANDATORY PRIMARY VALID

d:\disk2\offlinelog\           OPTIONAL  PRIMARY VALID

d:\disk3\offlinelog\           OPTIONAL  PRIMARY VALID

d:\disk4\offlinelog\           OPTIONAL  PRIMARY VALID

d:\disk5\offlinelog\           MANDATORY PRIMARY VALID

                               OPTIONAL  PRIMARY INACTIVE

           

SQL> alter system  set  log_archive_dest_state_1 = defer;

系統已更改。

 

SQL> select  destination,binding,target,status  from v$archive_dest;

DESTINATION                    BINDING   TARGET STATUS

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

d:\disk1\offlinelog\           MANDATORY PRIMARY DEFERRED

d:\disk2\offlinelog\           OPTIONAL  PRIMARY VALID

d:\disk3\offlinelog\           OPTIONAL  PRIMARY VALID

d:\disk4\offlinelog\           OPTIONAL  PRIMARY VALID

d:\disk5\offlinelog\           MANDATORY PRIMARY VALID

                               OPTIONAL  PRIMARY INACTIVE

SQL> alter  system set  log_archive_dest_state_1 = enable;

系統已更改。

SQL> show parameter  log_archive_dest_state_1

NAME                                 TYPE        VALUE

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

log_archive_dest_state_1             string      ENABLE


SQL> select  destination,binding,target,status from v$archive_dest;

DESTINATION                    BINDING   TARGET STATUS

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

d:\disk1\offlinelog\           MANDATORY PRIMARY VALID

d:\disk2\offlinelog\           OPTIONAL  PRIMARY VALID

d:\disk3\offlinelog\           OPTIONAL  PRIMARY VALID

d:\disk4\offlinelog\           OPTIONAL  PRIMARY VALID

d:\disk5\offlinelog\           MANDATORY PRIMARY VALID

                               OPTIONAL  PRIMARY INACTIVE


相關文章