乳尖春药H糙汉共妻,国产成人无码精品亚洲,少妇肉欲系列1000篇,免费永久看黄神器

技術學堂

Oracle重做日志和日志挖掘

作者:admin 日期:2023-10-17 瀏覽:

Oracle重做日志和日志挖掘

內存中數據修改后,不必立即更新到磁盤---效率由日志完成數據的保護目的---效率其他副產品數據恢復(備份集+歸檔日志)數據同步(DG,streams,goldengate)日志挖掘

重做日志包含所有數據產生的歷史改變記錄。

重做日志文件通常用于恢復日志挖掘流數據庫產生的每個改動寫入數據塊緩沖之前,先寫入redo log buffer --內存寫入數據文件之前先寫入日志文件 --數據文件當提交后,redo log buffer被刷入redo log files

v$log從控制文件中顯示日志文件的信息??蓞⒖脊倬W資料[v$log]( https://docs.oracle.com/datab...

東臺數據恢復

日志文件的六種狀態UNUSED,CURRENT,ACTIVE,CLEARING,CLEARING_CURRENT,INACTIVE代表的意思分別如下所述:UNUSED - Online redo log has never been written to. This is the state of a redo log that was just added, or just after a RESETLOGS , when it is not the current redo log.CURRENT - Current redo log. This implies that the redo log is active. The redo log could be open or closed.ACTIVE - Log is active but is not the current log. It is needed for crash recovery. It may be in use for block recovery. It may or may not be archived.CLEARING - Log is being re-created as an empty log after an ALTER DATABASE CLEAR LOGFILE statement. After the log is cleared, the status changes to UNUSED .CLEARING_CURRENT - Current log is being cleared of a closed thread. The log can stay in this status if there is some failure in the switch such as an I/O error writing the new log header.INACTIVE - Log is no longer needed for instance recovery. It may be in use for media recovery. It may or may not be archived.

上圖就是Oracle LGWR進程向redo log files中寫入redo記錄的過程,可見,Oracle數據庫每次只是用一個redo log file來存儲redo log buffer中的redo記錄。LGWR正在寫入的那個redo log file就是current redo log file。

可用于實例恢復的redo log files就是active redo log files。

不再用于實例恢復的redo log files就是inactive redo log files。

如果數據庫當前是Archivelog模式,那么直到有一個后臺歸檔進程ARCn已經歸檔成功,數據庫才能重用或者覆蓋active online log file。

如果數據庫當前是NoArchivelog模式,當最后一個redo log file寫滿的時候,LGWR會繼續按順序覆蓋下一個inactive redo log file。

有代碼可知當前所用的日志文件組數為3組,其中第一組是curren狀態,第二三組是inactive狀態。

揚州數據恢復

我們也可以使用以下命令手動切換當前LGWR操作的redo log file。

可見當前LGWR操作的redo log file已經由之前的第一組修改為第二組了,并且第一組的redo log file變成了Active,也就是說可以用于實例恢復。

過了一會之后再次查詢redo log file狀態出現的結果如下:

此時會發現后臺進程會自動將第一個處于active的redo log file變成inactive。這是為什么呢?原來是后臺歸檔進程ARCn將active redo log file歸檔成歸檔日志文件,相應的狀態就由active變成了inactive。宿遷數據恢復此時group1就不再用于實例恢復了。這個過程用下圖來解釋:

Oracle數據庫允許多路復用重做日志,也就是說,重做日志的兩個或多個相同的拷貝可以自動保持在不同的地點。為了最大效益,存儲的位置應在分開的磁盤。即使重做日志的所有副本都在同一磁盤上,這種冗余措施也是可以防止I / O錯誤,文件損壞,等等。當使用復用重做日志時,LGWR會將相同的redo log信息同時寫入多個相同的重做日志文件,從而解決重做日志的單點故障問題。

圖中A_LOG1和B_LOG1是第1組的成員,A_LOG2和B_LOG2是第2組的兩個成員,等等。一組中的每個成員都必須是相同的大小,并且是狀態也是同步的(active or inactive)。

Oracle中的SCN(system change number)和我們的北京時間的意義是相同的, SCN是Oracle中的時間號 。

為什么Oracle不用時間來界定呢?

我在北京時間8:00的時候執行一條DML語句,然后修改機器上的時間為7:00,再執行一條DML語句。如果用機器上的時間區分的話,那Oracle根本區分不出來這兩條DML語句的執行順序——而這一點對于Oracle是很重要的。所以它 采用自己產生的SCN來區分所有操作的先后順序。

關于SCN的具體講解可以參見: http://blog.chinaunix.net/uid-18974058-id-3068592.html

日志文件使用操作系統塊大小通常是512bytes格式依賴于操作系統Oracle版本

Redo日志組成數據頭redo record

一個redo record記錄包括Redo記錄臺一個或多個改變向量

每個redo record包含每個原子改變的undo和redo

某些改動不需要undo(臨時表,直接加載...)redo log是Oracle中極其重要的組件,它的目的在于保證數據的安全性redo log的丟失可能導致數據庫中數據的丟失應該講Oracle至于歸檔模式下

參考:

Oracle官網-Using LogMiner to Analyze Redo Log Files

cnblogs-LogMiner配置使用手冊

用途對Oracle在線redo和歸檔日志進行分析

  電話咨詢

<abbr id="ehohq"><form id="ehohq"><small id="ehohq"></small></form></abbr>
  • <menu id="ehohq"><dl id="ehohq"></dl></menu>

    1. <bdo id="ehohq"><span id="ehohq"></span></bdo>
        主站蜘蛛池模板: 米泉市| 镇坪县| 岳阳县| 开封县| 吴江市| 清水河县| 洛扎县| 湘潭县| 宣化县| 鹿泉市| 石城县| 利津县| 上蔡县| 湖口县| 文成县| 东乌| 社旗县| 乌拉特中旗| 手游| 顺平县| 郯城县| 丘北县| 滦南县| 东港市| 邹平县| 金秀| 新源县| 高青县| 桓仁| 南漳县| 海兴县| 广水市| 腾冲县| 景德镇市| 临西县| 隆昌县| 博客| 冷水江市| 新河县| 乐至县| 宁南县|