
1. 簡介
Oracle引入重做日志的目的:數據庫的恢復。
Oracle相關進程:重做日志寫進程(LGWR)。
重做日志性質:聯機日志文件,oracle服務器運行時需要管理它們。
相關數據字典:v$log ; v$logfile 。
操作者權限:具有sys用戶或system用戶權限。
重做日志文件:
日志文件的數據文件類型:在線日志文件(又叫聯機日志)與歸檔日志文件(在線日志文件的歷史備份), 每個重做日志組中有一個或多個重做日志文件。每個勢力至少要有兩個重做日志組。
日志運行的模式:歸檔模式、非歸檔模式(是否自動歸檔)
日志的運行流程:寫文件是依靠LGWR后臺進程
日志按照有序循環的方式被使用,即當一組日志文件被填滿后,循環覆蓋下一組日志文件,不斷循環。
重做日志文件的目的:1. 記錄數據的改變 2. 提供數據恢復 3. 維護數據庫完整性。
2. 什么是 Oracle 歸檔模式?
Oracle數據庫有聯機重做日志,這個日志是記錄對數據庫所做的修改,比如插入,刪除,更新數據等,對這些操作都會記錄在聯機重做日志里。一 般數據庫至少要有2個聯機重做日志組。當一個聯機重做日志組被寫滿的時候,就會發生日志切換,這時聯機重做日志組2成為當前使用的日志,并且把這些文件分 布在不同的物理磁盤,當聯機重做日志組2寫滿的時候,又會發生日志切換,去寫聯機重做日志組1,就這樣反復進行。
,當前在使用聯機重做日志如果數據庫處于非歸檔模式,聯機日志在切換時就會丟棄. 而在歸檔模式下,當發生日志切換的時候,被切換的日志會進行歸檔。比如1,當1寫滿的時候,發生日志切換,開始寫聯機重做日志 2,這時聯機重做日志1的內容會被拷貝到另外一個指定的目錄下。這個目錄叫做歸檔目錄,拷貝的文件叫歸檔重做日志。 數據庫使用歸檔方式運行時才可以進行災難性恢復。
歸檔日志模式和非歸檔日志模式的區別: 非歸檔模式只能做冷備份,并且恢復時只能做完全備份.最近一次完全備份到系統出錯期間的數據不能恢復. 歸檔模式可以做熱備份,并且可以做增量備份,可以做部分恢復. 用ARCHIVE LOG LIST 可以查看期模式狀態時歸檔模式還是非歸檔模式.
3. 重做日志工作原理
后臺進程 LGWR 負責把重做日志緩沖區中的日志條目寫到重做日志文件 中。當用戶提交一個事務時,LGWR把這個事務的重做條目寫入到重做日志文件,并賦予一個標識符(System change number SCN),SCN用于標識事務的重做日志條目。只有當事務的“重做日志條目”被成功寫入到磁盤上的重做日志文件中,事務的提交才算完成。
以下情況LGWR會自動把重做日志緩沖區的日志條目寫入到重做日志文件中:
》每隔3秒鐘
》一個用戶提交一個事務
》日志緩沖區(Redo Log Buffer)被填滿三分之一
》日志緩沖區將有1MB的日志數據
》發生校驗點checkpoint
以下情況發生check point:
a.每次日志切換時
b.實例通過normal,transactional,immediate選項關閉時
c.通過設置初始化參數FAST_START_MTTR_TARGET強制發生
d.數據庫管理員手工設置ALTER SYSTEM CHECKPOINT、alter tablespace ,datafile offline
e.使用alter tablespace[OFFLINE NORMAL|READ ONLY|BEGIN BACKUP] 語句導致指定數據文件發生檢查點
注:如果參數LOG_CHECKPOINTS_TO_ALERT 設置為true,則每次檢查點信息將記錄在alert_SID.log文件中.
4. 重做日志狀態
Current 表示正在LGWR寫的重做日志組
Active 表示重做日志組記錄的改變還沒有寫入到數據文件中,實例恢復時需要用到Active的重做日志組;
Inactive表示實例恢復時不需要狀態為inactive的重做日志組;
Unused表示該重做日志組是新建的,還未被使用;
5. 實例恢復
如果數據庫突然斷電,對數據庫的改變沒有真正寫入到數據庫文件中,但是Oracle保證對數據庫的改變已經記錄到重做日志文件中。例程失敗類似于執行 SHUTDOWN ABORT命令關閉數據庫,解決了硬件問題和電源斷電等問題之后,DBA只需要執行STARTUP命令啟動例程就可以了,而不需要執行任何恢復命令。 當執行 STARTUP 命令啟動例程并裝載了數據庫之后,后臺進程 SMON 會自動執行例程恢復,最終使數據庫所有文件(數據文件、控制文件、重做日志)完全同步。實例恢復會自動把記錄在重做日志文件中的改變應用到數據文件中,就不會有數據的丟失 。
6. 重做日志組操作
1. 查看oracle數據庫是否為歸檔模式:
SQL> select name,log_mode from v$database;
NAME LOG_MODE
--------- ------------
PTLDB NOARCHIVELOG
2.查看數據庫中的重做日志組
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.查看數據庫中的重做日志文件
知道有哪些重做日志文件,以及每個重做日志文件屬于哪一組。
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.創建重做日志組
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;
--注意:當前日志組不能刪,活動的日志組不能刪,沒有歸檔的日志組不能刪。
7:刪除日志組成員
ALTER DATABASE DROP LOGFILE MEMBER '/dev/rlv_vgdb9_data25';
--注意:每個組至少要保留一個成員;
8.改變重做日志組的狀態
Alter system switch logfile;
從Active狀態變為Inactive狀態
Alter system checkpoint;
配置數據庫的歸檔模式
改變非歸檔模式到歸檔模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE ARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;
5)SQL>做一次完全備份,因為非歸檔日志模式下產生的備份日志對于歸檔模式已經不可用了.這一步非非常重要!
改變歸檔模式到非歸檔模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE NOARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;
3.啟用自動歸檔: LOG_ARCHIVE_START=TRUE
歸檔模式下,日志文件組不允許被覆蓋(重寫),當日志文件寫滿之后,如果沒有進行手動歸檔,那么系統將掛起,知道歸檔完成為止.
這時只能讀而不能寫.
運行過程中關閉和重啟歸檔日志進程
SQL>ARCHIVE LOG STOP
SQL>ARCHIVE LOG START
4.手動歸檔: LOG_ARCHIVE_START=FALSE
歸檔當前日志文件
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;
歸檔序號為052的日志文件
SQL>ALTER SYSTEM ARCHIVE LOG SEQUENCE 052;
歸檔所有日志文件
SQL>ALTER SYSTEM ARCHIVE LOG ALL;
改變歸檔日志目標
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT TO '&PATH';
ALTER SYSTEM SWITCH LOGFILE;
--所謂日志切換就是停止寫當前組,轉而寫一個新組,系統可以自動發生,也可以手工完成。
--當發生SWITCH LOGFILE時,系統會在后臺完成CHECKPOINT的操作
--手動切換日志組
--日志組A:當前正在寫。
--日志組B:可寫。
--CHECKPOINT保證控制文件,數據文件頭,日志文件頭的SCN一致是數據庫保持數據完整性的一個重要機制
--手動切換日志組后,ORACLE開始往日志組B寫日志,并進行一次CHECKPOINT,把日志組A里沒有經過CHECKPOINT的那部分日志對應的DIRTY BUFFER從BUFFER CACHE里寫到
--數據文件里。CHECKPOING完成后
--日志組A:可寫。
--日志組B:當前正在寫。
--另外,ALTER TABLESPACE USER BEGIN BACKUP,DROP TABLE,TRUNCATE TABLE都會引發CHECKPOINT操作
--除了以上所手動,及自動CHECKPOINT之外,還可以通過一些參數來控制CHECKPOINT
--FAST_START_MTTR_TARGET(MTTR:數據恢復的時間間隔)
--checkpoints用來同步,同步頻率越高,發生系統錯誤時所需RECOVERY時間越短
--同步相關的參數:FAST_START_MTTR_TARGET(數據庫通過它來改變后面3個參數),fast_start_io_target,log_checkpoint_interval,log_checkpoint_timeout
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25