4_1_Oracle邏輯結(jié)構(gòu)篇之重做日志和歸檔日志管理-如何打開歸檔

如何打開歸檔

Oracle 數(shù)據(jù)庫可運(yùn)行在兩種模式下: ARCHIVELOG 模式和NOARCHIVELOG 模式讳侨。
NOARCHIVELOG 模式只能用于保護(hù)實(shí)例失敗跨跨,而不能用于保護(hù)介質(zhì)失敗囱皿。為了避免數(shù)據(jù)庫物理文件損壞所引起的數(shù)據(jù)丟失,數(shù)據(jù)庫可運(yùn)行在ARCHIVELOG 模式耕渴。后者就是所謂的歸檔模式橱脸。
Oracle 能夠?qū)⒁呀?jīng)寫滿的重做日志文件在被覆蓋之前保存到指定位置上愧驱,被保存的重做日志文件的集合稱為“歸檔重做日志”,這個操作過程稱為“歸檔”,根據(jù)是否進(jìn)行歸檔糟红,數(shù)據(jù)庫可以運(yùn)行在歸檔模式(ARCHIVELOG)和非歸檔模式(NOARCHIVELOG)下盆偿,歸檔操作可
由ARCH 后臺進(jìn)程自動完成准浴,也可由DBA 手工完成。

在NOARCHIVELOG 模式下求橄,每次聯(lián)機(jī)重做日志文件已滿并發(fā)生日志切換時罐农,都要覆蓋原來聯(lián)機(jī)重做日志文件涵亏。直到對重做日志文件組的檢查點(diǎn)操作完成后,LGWR 才覆蓋該重做日志文件組拆内。
如果數(shù)據(jù)庫配置為在ARCHIVELOG 模式運(yùn)行下麸恍,那么必須將已滿的聯(lián)機(jī)重做日志文件的不活動(INACTIVE)組歸檔光稼。因?yàn)閷?shù)據(jù)庫所做的所有更改都記錄在聯(lián)機(jī)重做日志文件內(nèi),數(shù)據(jù)庫管理員可以使用數(shù)據(jù)庫物理備份和歸檔的聯(lián)機(jī)重做日志文件恢復(fù)數(shù)據(jù)庫采够,而不
會丟失任何已提交數(shù)據(jù)蹬癌。
數(shù)據(jù)庫創(chuàng)建時逝薪,缺省為NOARCHIVELOG 模式蝴罪。
使用歸檔日志有兩個好處:
? 恢復(fù):數(shù)據(jù)庫物理備份連同聯(lián)機(jī)重做日志文件和歸檔重做日志文件可共同確币牛恢復(fù)所有已提交的事務(wù)處理欢搜。
? 備份:可在數(shù)據(jù)庫打開時執(zhí)行備份。

1.查詢當(dāng)前數(shù)據(jù)的日志模式

SQL> select log_mode from v$database;

LOG_MODE
------------
NOARCHIVELOG

2.設(shè)置歸檔路徑

SQL> show parameter archi

SQL> alter system set log_archive_dest_1='location=/u01/app/oracle/arch/orcl';    

System altered.

另啟一個會話設(shè)置保存路徑

[oracle@ocm oracle]$ mkdir -p arch/orcl
[oracle@ocm oracle]$ cd arch/orcl/
[oracle@ocm orcl]$ pwd
/u01/app/oracle/arch/orcl

3.關(guān)閉數(shù)據(jù)庫并打開到mount狀態(tài)

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area  368263168 bytes
Fixed Size                  1345016 bytes
Variable Size             247466504 bytes
Database Buffers          113246208 bytes
Redo Buffers                6205440 bytes
Database mounted.

4.配置數(shù)據(jù)庫為歸檔

SQL> alter database archivelog;

Database altered.

SQL> select log_mode from v$database;

LOG_MODE
------------
ARCHIVELOG

SQL> alter database open;

Database altered.

注意:修改了日志操作模式之后,必須重新備份數(shù)據(jù)庫疮装。
如果關(guān)閉歸檔模式,命令為:
ALTER DATABASE NOARCHIVELOG胯杭;

此時在歸檔日志目錄受啥,可以看到當(dāng)前還沒有歸檔日志

[oracle@ocm orcl]$ pwd
/u01/app/oracle/arch/orcl
[oracle@ocm orcl]$ ll
total 0

我們進(jìn)行日志切換,就會有歸檔日志產(chǎn)生

SQL> set linesize 500
SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
         1          1         19   20971520        512          1 YES INACTIVE                883967 24-JUL-17       894057 24-JUL-17
         2          1         21   20971520        512          1 NO  CURRENT                 896741 24-JUL-17   2.8147E+14
         3          1         18   20971520        512          1 YES INACTIVE                883961 24-JUL-17       883967 24-JUL-17
         4          1         20    8388608        512          1 YES INACTIVE                894057 24-JUL-17       896741 24-JUL-17

SQL> alter system switch logfile;

System altered.

SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
         1          1         19   20971520        512          1 YES INACTIVE                883967 24-JUL-17       894057 24-JUL-17
         2          1         21   20971520        512          1 YES ACTIVE                  896741 24-JUL-17       901128 24-JUL-17
         3          1         22   20971520        512          1 NO  CURRENT                 901128 24-JUL-17   2.8147E+14
         4          1         20    8388608        512          1 YES INACTIVE                894057 24-JUL-17       896741 24-JUL-17

SQL> 

上面可以看到日志CURRENT由21變成了22,確實(shí)發(fā)生了日志切換太闺。
此時在歸檔日志目錄省骂,可以看到當(dāng)前備份的歸檔日志

[oracle@ocm orcl]$ ll
total 3328
-rw-r----- 1 oracle oinstall 3400704 Jul 24 14:04 1_21_950125053.dbf
SQL> set linesize 500
SQL> col member for a50
SQL> select * from v$logfile;

    GROUP# STATUS  TYPE    MEMBER                                             IS_
---------- ------- ------- -------------------------------------------------- ---
         3         ONLINE  /u01/app/oracle/oradata/orcl/redo03.log            NO
         2         ONLINE  /u01/app/oracle/oradata/orcl/redo02.log            NO
         1         ONLINE  /u01/app/oracle/oradata/orcl/redo01.log            NO
         4         ONLINE  /u01/app/oracle/oradata/orcl/redo04.log            NO
SQL> alter database orcl add logfile (  '/u01/app/oracle/oradata/orcl/redo05a.log','/u01/app/oracle/oradata/orcl/redo05b.log') size 8M;                        

Database altered.
SQL> select * from v$logfile;

    GROUP# STATUS  TYPE    MEMBER                                             IS_
---------- ------- ------- -------------------------------------------------- ---
         3         ONLINE  /u01/app/oracle/oradata/orcl/redo03.log            NO
         2         ONLINE  /u01/app/oracle/oradata/orcl/redo02.log            NO
         1         ONLINE  /u01/app/oracle/oradata/orcl/redo01.log            NO
         4         ONLINE  /u01/app/oracle/oradata/orcl/redo04.log            NO
         5         ONLINE  /u01/app/oracle/oradata/orcl/redo05a.log           NO
         5         ONLINE  /u01/app/oracle/oradata/orcl/redo05b.log           NO

6 rows selected.

SQL> alter database orcl add logfile group 6 (  '/u01/app/oracle/oradata/orcl/redo06a.log','/u01/app/oracle/oradata/orcl/redo06b.log') size 8M;                        

Database altered.

SQL> select * from v$logfile;

    GROUP# STATUS  TYPE    MEMBER                                             IS_
---------- ------- ------- -------------------------------------------------- ---
         3         ONLINE  /u01/app/oracle/oradata/orcl/redo03.log            NO
         2         ONLINE  /u01/app/oracle/oradata/orcl/redo02.log            NO
         1         ONLINE  /u01/app/oracle/oradata/orcl/redo01.log            NO
         4         ONLINE  /u01/app/oracle/oradata/orcl/redo04.log            NO
         5         ONLINE  /u01/app/oracle/oradata/orcl/redo05a.log           NO
         5         ONLINE  /u01/app/oracle/oradata/orcl/redo05b.log           NO
         6         ONLINE  /u01/app/oracle/oradata/orcl/redo06a.log           NO
         6         ONLINE  /u01/app/oracle/oradata/orcl/redo06b.log           NO

8 rows selected.

設(shè)置日志歸檔

當(dāng)數(shù)據(jù)庫處于ARCHIVELOG 模式時,在進(jìn)行了日志切換后必須要?dú)w檔重做日志轧粟。因?yàn)槿罩窘M只有在歸檔后才能被覆蓋兰吟,所以如果不歸檔該日志組,那么當(dāng)下次切換到該日志組時將會導(dǎo)致LGWR 處于等待狀態(tài)履腋。為了避免出現(xiàn)這種情況府树,必須要及時歸檔重做日志料按,歸檔重做日志有手工歸檔和自動歸檔兩種方法载矿。

1.自動歸檔

DBA 可以選擇在實(shí)例啟動前或?qū)嵗龁雍髥⒂米詣託w檔功能闷盔。
如果要在實(shí)例啟動前啟用自動歸檔功能逢勾, 需要將初始化參數(shù)文件中參數(shù)LOG_ARCHIVE_START 的值改為TRUE藐吮。步驟如下:
1)以管理員身份登錄數(shù)據(jù)庫
CONN / AS SYSDBA
2)修改服務(wù)器端初始化參數(shù)
ALTER SYSTEM SET LOG_ARCHIVE_START=TRUE SCOPE=SPFILE;
3)重新啟動數(shù)據(jù)庫,使參數(shù)生效
SHUTDOWN;
STARTUP;
如果實(shí)例啟動時沒啟用自動歸檔沐扳,不必關(guān)閉實(shí)例再對初始化參數(shù)行修改句占,可以直接使用
如下語句啟用自動歸檔功能:
ALTER SYSTEM ARCHIVE LOG START;
執(zhí)行上述語句后纱烘,無須重新啟動實(shí)例,即可立即啟用自動歸檔功能哄陶,但是實(shí)例在下一次啟動時啤它,自動歸檔功能仍然FALSE变骡。

2.手工歸檔

一旦禁用自動歸檔功能离赫,DBA 必須手動執(zhí)行一條命令,對所有或特定的聯(lián)機(jī)重做日志文件進(jìn)行手動歸檔渊胸。在歸檔模式下翎猛,如果禁用自動歸檔模式,但是又沒有及時進(jìn)行手工歸檔接剩,
LGWR 進(jìn)程無法寫入下一個已經(jīng)寫滿的可用重做日志組切厘,這時數(shù)據(jù)庫將被掛起,直到完成對重做日志組的歸檔為止懊缺。
可以使用下面語句對日志文件進(jìn)行歸檔:
ALTER SYSTEM ARCHIVE LOG ALL;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末疫稿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子鹃两,更是在濱河造成了極大的恐慌遗座,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件俊扳,死亡現(xiàn)場離奇詭異途蒋,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)馋记,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來奸晴,“玉大人,你說我怎么就攤上這事∫野铮” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵晨缴,是天一觀的道長。 經(jīng)常有香客問我阁吝,道長殊者,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上矾削,老公的妹妹穿的比我還像新娘断部。我一直安慰自己,他們只是感情好蔑祟,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布装蓬。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蹂随。 梳的紋絲不亂的頭發(fā)上激率,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死蜕衡,一個胖子當(dāng)著我的面吹牛镰吆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼惩系,長吁一口氣:“原來是場噩夢啊……” “哼抒抬!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎涨薪,沒想到半個月后侠姑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體醉蚁,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡罗捎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年谊路,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖舷暮,靈堂內(nèi)的尸體忽然破棺而出耗啦,到底是詐尸還是另有隱情获黔,我是刑警寧澤预茄,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布来破,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏换薄。R本人自食惡果不足惜赢底,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一流码、第九天 我趴在偏房一處隱蔽的房頂上張望普泡。 院中可真熱鬧权烧,春花似錦、人聲如沸板祝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽虏等。三九已至,卻和暖如春麸俘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留苛茂,地道東北人已烤。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像妓羊,于是被迫代替她去往敵國和親胯究。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容