
1. 簡介
Oracle引入重做日志的目的:數(shù)據(jù)庫的恢復(fù)。
Oracle相關(guān)進(jìn)程:重做日志寫進(jìn)程(LGWR)。
重做日志性質(zhì):聯(lián)機(jī)日志文件,oracle服務(wù)器運(yùn)行時需要管理它們。
相關(guān)數(shù)據(jù)字典:v$log ; v$logfile 。
操作者權(quán)限:具有sys用戶或system用戶權(quán)限。
重做日志文件:
日志文件的數(shù)據(jù)文件類型:在線日志文件(又叫聯(lián)機(jī)日志)與歸檔日志文件(在線日志文件的歷史備份), 每個重做日志組中有一個或多個重做日志文件。每個勢力至少要有兩個重做日志組。
日志運(yùn)行的模式:歸檔模式、非歸檔模式(是否自動歸檔)
日志的運(yùn)行流程:寫文件是依靠LGWR后臺進(jìn)程
日志按照有序循環(huán)的方式被使用,即當(dāng)一組日志文件被填滿后,循環(huán)覆蓋下一組日志文件,不斷循環(huán)。
重做日志文件的目的:1. 記錄數(shù)據(jù)的改變 2. 提供數(shù)據(jù)恢復(fù) 3. 維護(hù)數(shù)據(jù)庫完整性。
2. 什么是 Oracle 歸檔模式?
Oracle數(shù)據(jù)庫有聯(lián)機(jī)重做日志,這個日志是記錄對數(shù)據(jù)庫所做的修改,比如插入,刪除,更新數(shù)據(jù)等,對這些操作都會記錄在聯(lián)機(jī)重做日志里。一 般數(shù)據(jù)庫至少要有2個聯(lián)機(jī)重做日志組。當(dāng)一個聯(lián)機(jī)重做日志組被寫滿的時候,就會發(fā)生日志切換,這時聯(lián)機(jī)重做日志組2成為當(dāng)前使用的日志,并且把這些文件分 布在不同的物理磁盤,當(dāng)聯(lián)機(jī)重做日志組2寫滿的時候,又會發(fā)生日志切換,去寫聯(lián)機(jī)重做日志組1,就這樣反復(fù)進(jìn)行。
,當(dāng)前在使用聯(lián)機(jī)重做日志如果數(shù)據(jù)庫處于非歸檔模式,聯(lián)機(jī)日志在切換時就會丟棄. 而在歸檔模式下,當(dāng)發(fā)生日志切換的時候,被切換的日志會進(jìn)行歸檔。比如1,當(dāng)1寫滿的時候,發(fā)生日志切換,開始寫聯(lián)機(jī)重做日志 2,這時聯(lián)機(jī)重做日志1的內(nèi)容會被拷貝到另外一個指定的目錄下。這個目錄叫做歸檔目錄,拷貝的文件叫歸檔重做日志。 數(shù)據(jù)庫使用歸檔方式運(yùn)行時才可以進(jìn)行災(zāi)難性恢復(fù)。
歸檔日志模式和非歸檔日志模式的區(qū)別: 非歸檔模式只能做冷備份,并且恢復(fù)時只能做完全備份.最近一次完全備份到系統(tǒng)出錯期間的數(shù)據(jù)不能恢復(fù). 歸檔模式可以做熱備份,并且可以做增量備份,可以做部分恢復(fù). 用ARCHIVE LOG LIST 可以查看期模式狀態(tài)時歸檔模式還是非歸檔模式.
3. 重做日志工作原理
后臺進(jìn)程 LGWR 負(fù)責(zé)把重做日志緩沖區(qū)中的日志條目寫到重做日志文件 中。當(dāng)用戶提交一個事務(wù)時,LGWR把這個事務(wù)的重做條目寫入到重做日志文件,并賦予一個標(biāo)識符(System change number SCN),SCN用于標(biāo)識事務(wù)的重做日志條目。只有當(dāng)事務(wù)的“重做日志條目”被成功寫入到磁盤上的重做日志文件中,事務(wù)的提交才算完成。
以下情況LGWR會自動把重做日志緩沖區(qū)的日志條目寫入到重做日志文件中:
》每隔3秒鐘
》一個用戶提交一個事務(wù)
》日志緩沖區(qū)(Redo Log Buffer)被填滿三分之一
》日志緩沖區(qū)將有1MB的日志數(shù)據(jù)
》發(fā)生校驗點checkpoint
以下情況發(fā)生check point:
a.每次日志切換時
b.實例通過normal,transactional,immediate選項關(guān)閉時
c.通過設(shè)置初始化參數(shù)FAST_START_MTTR_TARGET強(qiáng)制發(fā)生
d.數(shù)據(jù)庫管理員手工設(shè)置ALTER SYSTEM CHECKPOINT、alter tablespace ,datafile offline
e.使用alter tablespace[OFFLINE NORMAL|READ ONLY|BEGIN BACKUP] 語句導(dǎo)致指定數(shù)據(jù)文件發(fā)生檢查點
注:如果參數(shù)LOG_CHECKPOINTS_TO_ALERT 設(shè)置為true,則每次檢查點信息將記錄在alert_SID.log文件中.
4. 重做日志狀態(tài)
Current 表示正在LGWR寫的重做日志組
Active 表示重做日志組記錄的改變還沒有寫入到數(shù)據(jù)文件中,實例恢復(fù)時需要用到Active的重做日志組;
Inactive表示實例恢復(fù)時不需要狀態(tài)為inactive的重做日志組;
Unused表示該重做日志組是新建的,還未被使用;
5. 實例恢復(fù)
如果數(shù)據(jù)庫突然斷電,對數(shù)據(jù)庫的改變沒有真正寫入到數(shù)據(jù)庫文件中,但是Oracle保證對數(shù)據(jù)庫的改變已經(jīng)記錄到重做日志文件中。例程失敗類似于執(zhí)行 SHUTDOWN ABORT命令關(guān)閉數(shù)據(jù)庫,解決了硬件問題和電源斷電等問題之后,DBA只需要執(zhí)行STARTUP命令啟動例程就可以了,而不需要執(zhí)行任何恢復(fù)命令。 當(dāng)執(zhí)行 STARTUP 命令啟動例程并裝載了數(shù)據(jù)庫之后,后臺進(jìn)程 SMON 會自動執(zhí)行例程恢復(fù),最終使數(shù)據(jù)庫所有文件(數(shù)據(jù)文件、控制文件、重做日志)完全同步。實例恢復(fù)會自動把記錄在重做日志文件中的改變應(yīng)用到數(shù)據(jù)文件中,就不會有數(shù)據(jù)的丟失 。
6. 重做日志組操作
1. 查看oracle數(shù)據(jù)庫是否為歸檔模式:
SQL> select name,log_mode from v$database;
NAME LOG_MODE
--------- ------------
PTLDB NOARCHIVELOG
2.查看數(shù)據(jù)庫中的重做日志組
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
1 1 1558 315392000 1 NO INACTIVE 459785223 20-JUL-14
2 1 1559 315392000 1 NO CURRENT 460781485 21-JUL-14
3 1 1557 315392000 1 NO INACTIVE 458700182 19-JUL-14
3.查看數(shù)據(jù)庫中的重做日志文件
知道有哪些重做日志文件,以及每個重做日志文件屬于哪一組。
SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER IS_
3 ONLINE /opt/oracle/oradata/ptldb/redo03.log NO
2 ONLINE /opt/oracle/oradata/ptldb/redo02.log NO
1 ONLINE /opt/oracle/oradata/ptldb/redo01.log NO
4.創(chuàng)建重做日志組
ALTER DATABASE ADD LOGFILE GROUP 4 ('/dev/rlv_vgdb9_data22','/dev/rlv_vgdb9_data23','/dev/rlv_vgdb9_data24') SIZE 8191m; --這樣,就最增一個日志組,且這個日志組里有3個成員每個成員8191MB大小。
5:給某個日志組新增一個成員
ALTER DATABASE ADD LOGFILE MEMBER '/dev/rlv_vgdb9_data25' TO GROUP 4;
--注意,這里不需要指定日志組成員的大小。
6:刪除日志組
ALTER DATABASE DROP LOGFILE GROUP 4;
--注意:當(dāng)前日志組不能刪,活動的日志組不能刪,沒有歸檔的日志組不能刪。
7:刪除日志組成員
ALTER DATABASE DROP LOGFILE MEMBER '/dev/rlv_vgdb9_data25';
--注意:每個組至少要保留一個成員;
8.改變重做日志組的狀態(tài)
Alter system switch logfile;
從Active狀態(tài)變?yōu)镮nactive狀態(tài)
Alter system checkpoint;
配置數(shù)據(jù)庫的歸檔模式
改變非歸檔模式到歸檔模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE ARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;
5)SQL>做一次完全備份,因為非歸檔日志模式下產(chǎn)生的備份日志對于歸檔模式已經(jīng)不可用了.這一步非非常重要!
改變歸檔模式到非歸檔模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE NOARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;
3.啟用自動歸檔: LOG_ARCHIVE_START=TRUE
歸檔模式下,日志文件組不允許被覆蓋(重寫),當(dāng)日志文件寫滿之后,如果沒有進(jìn)行手動歸檔,那么系統(tǒng)將掛起,知道歸檔完成為止.
這時只能讀而不能寫.
運(yùn)行過程中關(guān)閉和重啟歸檔日志進(jìn)程
SQL>ARCHIVE LOG STOP
SQL>ARCHIVE LOG START
4.手動歸檔: LOG_ARCHIVE_START=FALSE
歸檔當(dāng)前日志文件
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;
歸檔序號為052的日志文件
SQL>ALTER SYSTEM ARCHIVE LOG SEQUENCE 052;
歸檔所有日志文件
SQL>ALTER SYSTEM ARCHIVE LOG ALL;
改變歸檔日志目標(biāo)
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT TO '&PATH';
ALTER SYSTEM SWITCH LOGFILE;
--所謂日志切換就是停止寫當(dāng)前組,轉(zhuǎn)而寫一個新組,系統(tǒng)可以自動發(fā)生,也可以手工完成。
--當(dāng)發(fā)生SWITCH LOGFILE時,系統(tǒng)會在后臺完成CHECKPOINT的操作
--手動切換日志組
--日志組A:當(dāng)前正在寫。
--日志組B:可寫。
--CHECKPOINT保證控制文件,數(shù)據(jù)文件頭,日志文件頭的SCN一致是數(shù)據(jù)庫保持?jǐn)?shù)據(jù)完整性的一個重要機(jī)制
--手動切換日志組后,ORACLE開始往日志組B寫日志,并進(jìn)行一次CHECKPOINT,把日志組A里沒有經(jīng)過CHECKPOINT的那部分日志對應(yīng)的DIRTY BUFFER從BUFFER CACHE里寫到
--數(shù)據(jù)文件里。CHECKPOING完成后
--日志組A:可寫。
--日志組B:當(dāng)前正在寫。
--另外,ALTER TABLESPACE USER BEGIN BACKUP,DROP TABLE,TRUNCATE TABLE都會引發(fā)CHECKPOINT操作
--除了以上所手動,及自動CHECKPOINT之外,還可以通過一些參數(shù)來控制CHECKPOINT
--FAST_START_MTTR_TARGET(MTTR:數(shù)據(jù)恢復(fù)的時間間隔)
--checkpoints用來同步,同步頻率越高,發(fā)生系統(tǒng)錯誤時所需RECOVERY時間越短
--同步相關(guān)的參數(shù):FAST_START_MTTR_TARGET(數(shù)據(jù)庫通過它來改變后面3個參數(shù)),fast_start_io_target,log_checkpoint_interval,log_checkpoint_timeout
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03