Oracle—歸檔模式

一.設置爲歸檔模式的步驟

1.正常關閉數據庫

2.把數據庫置於 mount狀態

3.把數據庫修改爲archivelog模式

4.打開數據庫

5.正常關閉數據庫,做一次全備份


sQL> conn /  as sysdba

Connected to an idle instance.

SQL> startup mount

ORACLE instance started.

Total System Global Area  146472960 bytes

Fixed Size                  1335080 bytes

Variable Size              92274904 bytes

Database Buffers           50331648 bytes

Redo Buffers                2531328 bytes

Database mounted.

SQL> alter database archivelog;

Database altered.

SQL> alter database open;

Database altered.

SQL> archive log list

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            /u01/admin/wilson/test

Oldest online log sequence     114

Next log sequence to archive   116

Current log sequence           116

接下來,乾淨的關掉數據庫,做個全備份。


二.在10g中,當數據庫處於歸檔模式下時,還要設置兩參數:log_archive_starlog_archive_max_processes

1.歸檔模式下,把online redo log複製到指定的位置有兩種方式,手動和自動。選擇哪種方式和參數log_archive_start有關,它爲ture,則爲自動;它爲false,則爲手動。推薦使用自動方式。

2.在自動歸檔模式中,有多少個ARC進程來參與,由參數log_archive_max_processes來確定。



三.實例運行狀態下,自動歸檔方式和手動歸檔方式的相互轉變。

1.可以用命令archive log  list 來查看歸檔的方式,

SQL> archive log list

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            /u01/admin/wilson/test

Oldest online log sequence     116

Next log sequence to archive   118

Current log sequence           118


2.如果開始在參數log_archive_star=false(手動方式)的情況下運行了數據庫,怎麼修改爲自動方式?

先建立個文件,來存放歸檔日誌,在/u01/admin/wilson/目錄下建立文件夾arcdest

然後

SQL> alter system archive log start to '/u01/admin/wilson/archdest';

System altered.

現在就是自動方式歸檔了,

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

System altered.

修改了初始化參數 log_archive_start=true ,下次重新啓動還是動方式歸檔。


3.把自動方式改爲手動方式,

SQL> alter system archive log stop;

System altered.

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

System altered.

在這裏要說明一下,在11g中,只要處於Archivelog模式中,那麼它的歸檔方式就爲自動方式,沒有了自動方式歸檔和手動方式的轉換。

在歸檔模式下,在一組online redo log 被覆蓋之前,必須先將其歸檔到指定的地方,不然數據庫會hang在那裏!!!



四.歸檔文件的路徑

1.在較早的版本中,位置由參數log_archive_destlog_archive_duplex_dest來指定,只能是兩個。在數據庫的標準版中,則必須使用它們。

2.現在使用參數log_archive_dest_n來指定,最多可以指定10個(n=1...10),只能在企業版數據庫中使用。

主要介紹log_archive_dest_n對於log_archive_dest_n,有

log_archive_dest_1=”location=/archive/  mandatory”

log_archive_dest_1=”location=/archive/  optional”

log_archive_dest_2=”service=standy_db1”


其中location是本地地址,service是網絡遠端地址,

 Mandatory表示在一個online redo log file 在被重寫之前,它必須先歸檔到這個地址,

Optional表示即使一個online redo log file沒有歸檔到這個地址,它也可以被重寫。


3.對於參數log_archive_min_succeed_dest,如

log_archive_min_succeed_dest=2,則表示在一個online redo log file 在被重寫之前,它必須先歸檔到2個地方。

   結合着參數log_archive_dest_n log_archive_min_succeed_dest來看,在一個online redo log file 在被重寫之前,它必須完成:

(1)全部成功寫入到帶mandatory參數的歸檔地址。

(2)成功歸檔的地址要大於或者等於log_archive_min_succeed_dest所規定的數值。

  也就是說如果(1)歸檔的地址數目大於(2)中的數值,則(2)中所規定的數值忽略,以(1)爲準。如果(2)中規定的數值大於(1)中的數值,首先(1)全部要歸檔成功,然後還要達到(2)中所歸檔的數值。


4.log_archive_dest_state_n可以動態的控制一個歸檔地址是否有效。

log_archive_dest_state_1=enable表示log_archive_dest_1的歸檔地址可以被使用。

log_archive_dest_state_2=defer表示log_archive_dest_2的歸檔地址不可以被使用

log_archive_dest_state_3=alternate 表示log_archive_dest_3的歸檔地址當前不可以被使用,但

是當有另一個地址失效時,它自動成爲可以使用地址。


5.歸檔文件名的格式

log_archive_dest_n規定了歸檔文件的地址目錄,但是真正的文件名格式由參數log_archive_format來設置。

例如 /u01/admin/wilson/test/ wilson_%t_%S_%r.arc

其中 /u01/admin/wilson/test由log_archive_dest_n規定,wilson_%t_%S_%r.arc由log_archive_format規定。

(1)%t:線程號,顯示爲V$instance視圖thread#列,在RAC數據庫有用,單實例中爲1

(2)%s或者%S:表示日誌切換序列號,這個變量能夠保證任何一個數據庫中的歸檔日誌都不會彼此重寫。%S的意思是每個序列號一樣長,10位,不夠長度,前面補零。

(3)%r:場景號,如果進行了不完全恢復,這個變量就十分重要。


11g中文件名的格式規定必須要上述三個:%s或者%S%t%r


舉個例子:

先在/u01/admin/wilson中建立個test的文件,

SQL> alter system set log_archive_dest_1="location=/u01/admin/wilson/archtest";

System altered.

SQL> archive log list

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            /u01/admin/wilson/archtest

Oldest online log sequence     116

Next log sequence to archive   118

Current log sequence           118

顯示Archive destination修改了。


SQL> alter system  set log_archive_format="sun_%t_%S_%r.arc"  scope=spfile;

System altered.

關閉重啓,


SQL> show parameter archive

log_archive_duplex_dest              string

log_archive_format                   string      sun_%t_%S_%r.arc

log_archive_local_first              boolean     TRUE

log_archive_max_processes            integer     4

log_archive_min_succeed_dest         integer     1

log_archive_start                    boolean     TRUE

log_archive_trace                    integer     0

standby_archive_dest                 string      ?/dbs/arch

可以看到log_archive_format 改變了。


SQL> alter system  switch logfile;

System altered.

SQL> !ls -l /u01/admin/wilson/archtest

total 7720

-rw-r----- 1 oracle oinstall 7624192 Aug 17 01:04 sun_1_0000000118_805499090.arc

-rw-r----- 1 oracle oinstall  241664 Aug 17 01:10 sun_1_0000000119_805499090.arc

-rw-r----- 1 oracle oinstall    5632 Aug 17 01:11 sun_1_0000000120_805499090.arc

可以看到歸檔文件的格式。

發佈了39 篇原創文章 · 獲贊 2 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章