淺談Oracle歸檔日志

什么是歸檔日志

歸檔日志(Archive Log)是非活動(dòng)的重做日志備份.通過(guò)使用歸檔日志,可以保留所有重做歷史記錄,當(dāng)數(shù)據(jù)庫(kù)處于ARCHIVELOG模式并進(jìn)行日志切換式,后臺(tái)進(jìn)程ARCH會(huì)將重做日志的內(nèi)容保存到歸檔日志中.當(dāng)數(shù)據(jù)庫(kù)出現(xiàn)介質(zhì)失敗時(shí),使用數(shù)據(jù)文件備份,歸檔日志和重做日志可以完全恢復(fù)數(shù)據(jù)庫(kù)。


如何開(kāi)啟歸檔模式

  • 查詢(xún)是否開(kāi)啟歸檔
[oracle@osc ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Mon Nov 12 17:36:13 2018

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> archive log list; 
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     1124
Current log sequence           1126

由上可見(jiàn)每币,數(shù)據(jù)庫(kù)未開(kāi)啟歸檔

  • 開(kāi)啟歸檔模式
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>  startup mount;
ORACLE instance started.

Total System Global Area 2421825536 bytes
Fixed Size                  2255632 bytes
Variable Size             620758256 bytes
Database Buffers         1778384896 bytes
Redo Buffers               20426752 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            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     1124
Next log sequence to archive   1126
Current log sequence           1126

歸檔已經(jīng)開(kāi)啟


經(jīng)常會(huì)遇到的問(wèn)題

錯(cuò)誤代碼:ORA-00257

在項(xiàng)目中可能經(jīng)常會(huì)遇到ORA-00257歸檔寫(xiě)滿這種情況,先看一下官方描述:

[oracle@osc ~]$ oerr ORA 00257
00257, 00000, "archiver error. Connect internal only, until freed."
// *Cause:  The archiver process received an error while trying to archive
//       a redo log.  If the problem is not resolved soon, the database
//       will stop executing transactions. The most likely cause of this
//       message is the destination device is out of space to store the
//       redo log file.
// *Action:  Check archiver trace file for a detailed description
//        of the problem. Also verify that the
//       device specified in the initialization parameter
//       ARCHIVE_LOG_DEST is set up properly for archiving.

也就是說(shuō)當(dāng)空間問(wèn)題導(dǎo)致歸檔日志無(wú)法繼續(xù)寫(xiě)入的時(shí)候會(huì)報(bào)錯(cuò)誤翔脱,當(dāng)前也只能允許內(nèi)部鏈接。
這種情況下也只能最快速的清理歸檔日志谆甜。

清理歸檔日志

[oracle@osc ~]$ rman target /

Recovery Manager: Release 11.2.0.4.0 - Production on Mon Nov 12 17:48:41 2018

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: ORCL (DBID=1511487649)
RMAN> crosscheck archivelog all; 
RMAN> delete archivelog until time 'sysdate-1';
RMAN> delete expired archivelog all;

分別看一下這三句話的意思

crosscheck archivelog all

驗(yàn)證的是DB的歸檔日志即log_archive_dest參數(shù)指定位置的文件启上,當(dāng)手工刪除了歸檔日志以后,Rman備份會(huì)檢測(cè)到日志缺失店印,從而無(wú)法進(jìn)一步繼續(xù)執(zhí)行冈在。
所以此時(shí)需要手工執(zhí)行crosscheck過(guò)程,之后Rman備份可以恢復(fù)正常按摘。
也就是說(shuō)當(dāng)無(wú)法進(jìn)入rman的時(shí)候包券,可以直接刪除歸檔日志文件,然后再執(zhí)行這條語(yǔ)句炫贤!

delete archivelog until time 'sysdate-1'

這句話是刪除當(dāng)前時(shí)間-1天的歸檔日志

-3就表示保留3天歸檔日志

delete expired archivelog all

刪除過(guò)期或無(wú)效的歸檔日志
強(qiáng)烈建議:在刪除歸檔日志后做一次物理備份


為什么會(huì)產(chǎn)生上面的問(wèn)題

當(dāng)歸檔日志每天都有大量的生成的時(shí)候溅固,說(shuō)明數(shù)據(jù)庫(kù)存在了大量DML語(yǔ)句,而歸檔日志就是記錄這些操作,所以我們要考慮能不能避免這些操作兰珍,如:

  • 是不是數(shù)據(jù)庫(kù)設(shè)計(jì)不合理侍郭,需要不要進(jìn)行頻繁操作
  • 大量的操作有可能是日志類(lèi)(日志、操作記錄等)的數(shù)據(jù)掠河,那么是不是考慮把日志表放入非關(guān)系數(shù)據(jù)庫(kù)中

DML語(yǔ)句:SQL語(yǔ)言中亮元,負(fù)責(zé)對(duì)數(shù)據(jù)庫(kù)對(duì)象運(yùn)行數(shù)據(jù)訪問(wèn)工作的指令集,以INSERT唠摹、UPDATE爆捞、DELETE三種指令為核心
非關(guān)系數(shù)據(jù)庫(kù)如文檔型文數(shù)據(jù)MongoDB、鍵值數(shù)據(jù)庫(kù)Redis等

<b style="color:red">在了解了歸檔日志的副作用后勾拉,是否覺(jué)得不開(kāi)啟歸檔模式煮甥,更省心一些呢?</b>

下面我們看一看歸檔模式的優(yōu)缺點(diǎn)(摘自網(wǎng)絡(luò))


歸檔模式和非歸檔模式的優(yōu)缺點(diǎn)

歸檔模式的優(yōu)點(diǎn)
  • 可以進(jìn)行完全藕赞、不完全恢復(fù):由于對(duì)數(shù)據(jù)庫(kù)所做的全部改動(dòng)都記錄在日志文件中成肘,如果發(fā)生硬盤(pán)故 障等導(dǎo)致數(shù)據(jù)文件丟失的話,則可以利用物理備份和歸檔日志完全恢復(fù)數(shù)據(jù)庫(kù)斧蜕,不會(huì)丟失任何數(shù)據(jù)双霍。
  • 可以進(jìn)行聯(lián)機(jī)熱備:所謂聯(lián)機(jī)熱備,就是在數(shù)據(jù)庫(kù)運(yùn)行狀態(tài)下,對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份店煞。備份時(shí)用戶對(duì) 數(shù)據(jù)庫(kù)的使用不受任何影響蟹演。
  • 可以實(shí)施 Data Guard:可以部署 1 個(gè)或多個(gè)備用數(shù)據(jù)庫(kù),從而最大限度地提供災(zāi)難保護(hù)手段顷蟀。
  • 可以實(shí)施 Stream:利用 Stream 技術(shù)酒请,可以實(shí)現(xiàn)最簡(jiǎn)單的單向復(fù)制到復(fù)雜的雙向復(fù)制、多向復(fù)制鸣个, 提供更加靈活的數(shù)據(jù)冗余方案羞反。
  • 表空間可以脫機(jī):可以備份部分?jǐn)?shù)據(jù)庫(kù),比如重要的表空間囤萤。
  • 能夠增量備份:只需做一次完全備份昼窗,以后只備份發(fā)生改變的數(shù)據(jù),可以提高備份速度涛舍。
  • 更多的優(yōu)化選項(xiàng):隨著 Oracle 版本升級(jí)澄惊,在聯(lián)機(jī)熱備方面不斷有新的優(yōu)化策略出現(xiàn)。
歸檔模式的缺點(diǎn)
  • 需要更多的磁盤(pán)空間保存歸檔日志富雅;
  • DBA 會(huì)有更多的管理工作掸驱,包括維護(hù)歸檔空間、備份歸檔日志没佑。
非歸檔模式的缺點(diǎn)
  • 只能進(jìn)行脫機(jī)備份毕贼,也就是所謂的“ 冷備份”,和聯(lián)機(jī)備份的“ 熱備份” 相對(duì)應(yīng)蛤奢,數(shù)據(jù)庫(kù)必須完全 關(guān)閉后備份鬼癣,在備份過(guò)程中數(shù)據(jù)庫(kù)不可用;
  • 必須備份整個(gè)數(shù)據(jù)庫(kù)啤贩,不能只備份部分?jǐn)?shù)據(jù)庫(kù)待秃;
  • 不能增量備份,對(duì)于 TB 級(jí)數(shù)據(jù)庫(kù)(VLDB) 瓜晤,這是一個(gè)非常大的缺點(diǎn)锥余;
  • 只能部分恢復(fù),如果數(shù)據(jù)文件丟失需要恢復(fù)痢掠,DBA 只能恢復(fù)最后一次的完全備份,而之后的所有 數(shù)據(jù)庫(kù)改變?nèi)縼G失嘲恍。
非歸檔模式的優(yōu)點(diǎn)
  • DBA 的管理工作減少足画,因?yàn)榉菤w檔模式不產(chǎn)生歸檔日志,因此 DBA 不用考慮對(duì)歸檔的管理佃牛;
  • 性能會(huì)有提升淹辞。

非歸檔模式不生成歸檔日志,從數(shù)據(jù)安全角度來(lái)說(shuō)俘侠,這種模式缺點(diǎn)是主要的象缀,而優(yōu)點(diǎn)可以忽略不計(jì)蔬将。


在了解了歸檔模式和非歸檔模式的優(yōu)缺點(diǎn)后,選擇哪種模式各位心里也有點(diǎn)譜央星,在工作中都應(yīng)該考慮實(shí)際情況去做出合適的選擇霞怀。最后也請(qǐng)大家一起總結(jié)、歸納
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末莉给,一起剝皮案震驚了整個(gè)濱河市毙石,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌颓遏,老刑警劉巖徐矩,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異叁幢,居然都是意外死亡滤灯,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)曼玩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)鳞骤,“玉大人,你說(shuō)我怎么就攤上這事演训〉苊希” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵样悟,是天一觀的道長(zhǎng)拂募。 經(jīng)常有香客問(wèn)我,道長(zhǎng)窟她,這世上最難降的妖魔是什么陈症? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮震糖,結(jié)果婚禮上录肯,老公的妹妹穿的比我還像新娘。我一直安慰自己吊说,他們只是感情好论咏,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著颁井,像睡著了一般厅贪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上雅宾,一...
    開(kāi)封第一講書(shū)人閱讀 51,370評(píng)論 1 302
  • 那天养涮,我揣著相機(jī)與錄音,去河邊找鬼。 笑死贯吓,一個(gè)胖子當(dāng)著我的面吹牛懈凹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播悄谐,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼介评,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了尊沸?” 一聲冷哼從身側(cè)響起威沫,我...
    開(kāi)封第一講書(shū)人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎洼专,沒(méi)想到半個(gè)月后棒掠,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡屁商,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年烟很,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蜡镶。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡雾袱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出官还,到底是詐尸還是另有隱情芹橡,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布望伦,位于F島的核電站林说,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏屯伞。R本人自食惡果不足惜腿箩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望劣摇。 院中可真熱鬧珠移,春花似錦、人聲如沸末融。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)勾习。三九已至垢乙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間语卤,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留粹舵,地道東北人钮孵。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像眼滤,于是被迫代替她去往敵國(guó)和親巴席。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

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