成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談在Oracle中如何利用REDO實現故障恢復 

數據庫 Oracle 數據庫運維
Oracle通過Redo來保證數據庫的事務可以被重演,從而使得在故障之后,數據可以被恢復。Redo對于Oracle數據庫來說至關重要。

在數據庫中,Redo的功能主要通過3個組件來實現:Redo Log Buffer、LGWR后臺進程和Redo Log File(在歸檔模式下,Redo Log File最終會寫出為歸檔日志文件)。

在Oracle的SGA中,存在一塊共享內存,稱為Redo Log Buffer,如圖1所示。

oracle重要概念REDO - kele_lipeng - kele_lipeng的博客

圖1 Oracle Instance

Redo Log Buffer位于SGA之中,是一塊循環使用的內存區域,其中保存數據庫變更的相關信息。這些信息以重做條目(Redo Entries)形式存儲(Redo Entries也經常被稱為Redo Records)。Redo Entries包含重構、重做數據庫變更的重要信息,這些變更包括INSERT、UPDATE、DELETE、CREATE、ALTER或者DROP等。在必要的時候Redo Entries被用于數據庫恢復。

Redo Entries的內容被Oracle數據庫進程從用戶的內存空間復制到SGA中的Redo Log Buffer之中。Redo Entries在內存中占用連續的順序空間,由于Redo Log Buffer是循環使用的,Oracle通過一個后臺進程LGWR不斷地把Redo Log Buffer的內容寫出到Redo Log File中。

當用戶在Buffer Cache中修改數據時,Oracle并不會立即將修改數據寫出到數據文件上,因為那樣做效率會很低,到目前為止,計算機系統中最繁忙的部分是磁盤的I/O操作,Oracle這樣做的目的是為了減少IO的次數,當修改過的數據達到一定數量之后,可以進行高效地批量寫出。

大部分傳統數據庫(當然包括Oracle)在處理數據修改時都遵循no-force-at-commit策略。也就是說,在提交時并不強制寫。那么為了保證數據在數據庫發生故障時(例如斷電)可以恢復,Oracle引入了Redo機制,通過連續的、順序的日志條目的寫出將隨機的、分散的數據塊的寫出推延。這個推延使得數據的寫出可以獲得批量效應的性能提升。

同Redo Log Buffer類似,Redo Log File也是循環使用的,Oracle允許使用最少兩個日志組。缺省情況下,數據庫創建時會建立3個日志組。

SQL> select group#,members,status from v$log; 

GROUP# MEMBERS STATUS

---------- ---------- ----------------

1 1 INACTIVE

2 1 CURRENT

3 1 INACTIVE

當一個日志文件寫滿之后,會切換到另外一個日志文件,這個切換過程稱為Log Switch。Log Switch會觸發一個檢查點,促使DBWR進程將寫滿的日志文件保護的變更數據寫回到數據庫。在檢查點完成之前,日志文件是不能夠被重用的。

由于Redo機制對于數據的保護,當數據庫發生故障時,Oracle就可以通過Redo重演進行數據恢復。那么一個非常重要的問題是,恢復應該從何處開始呢?

如果讀取的Redo過多,那么必然導致恢復的時間過長,在生產環境中,我們必需保證恢復時間要盡量得短。Oracle通過檢查點(Checkpoint)來縮減恢復時間。回顧一下第1章中所提到的內容:檢查點只是一個數據庫事件,它存在的根本意義在于減少恢復時間。

當檢查點發生時(此時的SCN被稱為Checkpoint SCN)Oracle會通知DBWR進程,把修改過的數據,也就是此Checkpoint SCN之前的臟數據(Dirty Buffer)從Buffer Cache寫入磁盤,在檢查點完成后CKPT進程會相應地更新控制文件和數據文件頭,記錄檢查點信息,標識變更。

在檢查點完成之后,此檢查點之前修改過的數據都已經寫回磁盤,重做日志文件中的相應重做記錄對于崩潰/實例恢復不再有用。如果此后數據庫崩潰,那么恢復只需要從***一次完成的檢查點開始恢復即可。如果數據庫運行在歸檔模式(所有生產數據庫,都建議運行在歸檔模式),日志文件在重用之前必須寫出到歸檔日志文件,歸檔日志在介質恢復時可以用來恢復數據庫故障

一、UNDO的使用說明

二、Undo段

在一個進程修改數據庫過程中存放舊的數據,包括數據沒有修改之前的位置和值。Undo段的頭包含了一個事物處理表,表中存放了目前使用undo段事物處理的信息。一個系列的事物處理只使用一個undo段存放undo數據。多個并行事物處理可以同時寫入一個undo段。

三、Undo段的作用

1、事務處理rollback

當一個事物處理修改了表中的一行,舊數據的映像就會存放在undo段中。如果事物處理rollback,Oracle Server就使用undo段中值再寫回修改行。

2、事物處理恢復

當一個例程失敗而還有一些事物處理沒有完成,Oracle Server在數據庫再次打開的時候就需要將所有沒有提交的修改全部undo。這種rollback是事物處理恢復的一部分。由于undo段的修改也會被redo日志文件保護,因此恢復是能夠進行的。

3、讀取的一致性

當一個事物處理正在運行,其他的用戶是不能看到任何這個事物處理沒有提交的修改的。另外,在一個查詢執行期間的數據改變是不應該顯示在這個查詢結果當中的。在undo段中的舊的數據(Undo數據)也為用戶特定查詢提供一個一致的映像。

四、讀取的一致性

1、即使其他的事物處理修改了數據,Oracle Server也會保證一個查詢看到的數據是一致的。當Oracle Server開始執行一個select查詢,它將記錄目前系統更改編號(SCN)并且確保這個SCN以后的任何數據修改將不會影響到這個查詢結果。比如一個運行時間非常長的查詢語句在執行過程中有發生了幾個修改,如果一行數據在查詢聲明以前的修改沒有提交,Oracle Server將從undo段中提取沒有修改的以前的映像,并構建一個“讀取一致”的行映像。

2、事物處理讀取一致性

讀取的一致性通常是指SQL查詢語句。但是也可以通過在緊跟在事物處理聲明后使用一下命令來使事物處理的讀取也是一致的:

SET TRANSACTION READ ONLY;

或者可以在事物處理使用DML語句的時候在事物處理前面使用一下命令:

SET TRANSACTION ISOLATION LELVEL SERIALIZABLE;

使用上述兩種方法都可以保證事物處理在數據讀取時候的一致性,但是使用SERIALIZABLE參數將影響性能。

【編輯推薦】

  1. 優化數據庫大幅度提高Oracle的性能
  2. 淺談Oracle性能優化可能出現的問題
  3. Oracle與SQL Server數據庫鏡像對比
責任編輯:彭凡 來源: 網易博客
相關推薦

2011-05-26 09:36:07

Oracle數據庫Redo故障

2011-03-24 17:21:42

Oracle數據庫Redo故障

2010-04-12 14:25:04

Oracle備份

2025-01-08 09:48:34

2020-08-13 10:57:26

服務器故障服務器預防性維護

2009-06-15 15:17:32

JCOMExcel編程Java

2009-07-15 16:23:54

Java JDBC

2019-10-21 09:52:51

變異測試單元測試

2010-04-06 10:11:11

Oracle備份

2014-10-11 17:48:46

排名恢復

2011-03-21 15:40:31

Oracle

2010-03-31 10:39:40

RMANOracle

2009-10-13 09:43:43

Oracle數據庫備份

2009-06-10 09:58:32

Oracle sequHibernate

2009-04-09 15:40:01

JSONJavaScript枚舉

2011-06-13 11:23:33

javasocket

2011-06-13 12:11:06

javasocket

2009-05-06 11:09:10

Oracle物化視圖數據庫

2009-07-16 10:20:21

赫夫曼編碼

2009-06-26 15:23:19

JSTL
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产91av视频在线观看 | 永久看片| 一级黄色毛片免费 | 五月激情六月婷婷 | 久久久免费电影 | 一级全黄视频 | 日韩毛片免费看 | 蜜臀久久 | 免费观看黄 | 亚洲免费精品一区 | 99亚洲精品视频 | 亚洲欧美视频在线观看 | 一区二区三区四区在线 | 欧美日韩中文字幕在线 | 国产乱码精品1区2区3区 | 91精品国产91久久久久久吃药 | 国产精品久久久乱弄 | 成人亚洲视频 | 欧美激情国产精品 | 在线观看亚洲精品视频 | 国产日韩久久 | 欧美男人天堂 | 天天综合网7799精品 | 久久精品久久久久久 | 亚洲精品18 | 久久久www成人免费精品 | 激情三区 | 日日久| 精品小视频 | 欧美中文字幕 | 亚洲国产精品99久久久久久久久 | 国产目拍亚洲精品99久久精品 | 色婷婷久久久久swag精品 | 日韩在线成人 | 中文字幕在线观看视频网站 | 一区二区三区国产 | 老熟女毛片 | 欧美日韩综合 | 一道本不卡 | 日韩欧美亚洲 | 在线观看成人小视频 |