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

Oracle數據庫中為什么會產生回滾與前退

數據庫 Oracle
Oracle數據庫操作中經常會遇到一些故障問題,遇到問題時就要自己盡量解決,有時Oracle數據庫中會出現回滾與前退的問題,下面就為大家分析為什么Oracle數據庫中會出現回滾與前退的問題呢。

導讀:Oracle數據庫概念問題,假如數據沒有提交,但是卻被dbwn進程寫入了數據文件,會怎么樣呢?下文中將通過案例分析,詳細的為大家解析問題。

案例分析:

  首先說明的是dbwn寫臟數據跟commit提交沒有關系!

  在一個transaction發生的過程中,online redo log首先記錄transaction中修改的數據塊相關信息,修改的數據塊會被緩存在database buffer cache中。由于database buffer cache寫滿或者checkpoint等等條件觸發dbwn進程,會導致這些緩存的數據塊寫入數據文件,但此時可能該transaction仍然還沒有提交。所以在數據文件中,可能會有commited 和 uncommited 的數據塊。而原有的數據塊鏡像會存放在undo segment。

  IXDBA.NET社區論壇

  然而,dbwn寫臟數據時不管這個要寫的transaction是否提交,

  也沒有必要去管。

  這樣就發生了所謂的已經提交的數據,但是還沒有寫入數據文件的現象。

  還有一種情況,數據沒有提交,但是已經被寫入數據文件,此時發生回退,撤銷沒有提交的數據。

  那么,引發Oracle前滾與回退的根本原因就是什么呢?

  根本原因是commit后寫redo buffer和觸發lgwr寫 redo buffer的區別。

  事務在執行完畢后,隨即會被寫入redo buffer和undo中,同時在redo buffer和undo中對該事務都有一個是否提交的標記。兩者的默認狀態都是active的,即沒有提交時刻處于激活狀態。

  commit操作執行時刻把此前的所有事務操作全部寫入redo log file,commit成功后,redo buffer信息全部寫入redo file,同時修改兩者中的事務提交標識為inactive,表示此前事務已經遞交。

  oracle的前滾和回退根據就是依據事務是否提交而進行的。

  在觸發lgwr進程后,oracle同樣把此前的redo buffer信息寫入redo file,但是與commit觸發寫日志不同的是,redo file本身對lgwr寫日志操作不記錄任何信息標識,lgwr寫到那里就是那里,就算此時掉電也無妨,redo file就記錄到掉電時刻的信息。

  lgwr是一個Oracle后臺執行的進程,具體的日志寫操作都有oracle去控制,這對于oracle來說是透明的,因此不用在redo file中寫入任何標記信息,這也是正常的。

  commit操作是唯一一個可以前臺操作與oracle后臺通信的指令,因此當加入這個操作以后,oracle本身必須要了解各個事務的讀寫狀況,那么怎么了解整個狀況:在redo以及undo中加入是否遞交的標識,對于已經提交的操作,但是還沒有寫入數據文件,那么就要前滾,相反,對于沒有提交,執行回退!

  于是,Oracle崩潰恢復步驟如下:

  首先rolling forward 前滾:由于oracle failure,sga中的內存信息丟失了,但是online redo log中還是存儲了transaction信息,包括commited or uncommited data。可能這些修改信息并沒有被oracle正確的來處理,包含兩種情況:已經提交的還沒有寫入數據文件,或者沒有提交的卻被寫入了數據文件。針對已經提交的還沒有寫入數據文件就要發生前滾,在前滾過程中,smon會根據online redo log中的記錄來完成對datafile的修改。保證已經提交的數據已經寫入數據文件。

  接下來,前滾結束后,數據庫正常open,此時用戶可以正常連接,可以訪問已經recover的commited data,但是對于那些屬于unrecoverable transaction的uncommited data,會被oracle 加鎖,是不可以訪問的。

  rolling back:假如有進程訪問這些加鎖的data,此時smon會對這些數據塊做rollback回滾,從數據文件中撤銷沒有提交卻被寫入數據文件的數據。
 

既然知道了Oracle數據庫中出現回滾與前退的原因,那么接下來我們就可以對癥下藥,有針對性的去解決問題,一保證我們的工作正常運行。

【編輯推薦】

  1. Oracle數據庫共享連接和專用連接方式比較
  2. 入侵Oracle數據庫常用操作命令
  3. 輕松解決Oracle數據庫的服務啟動問題
責任編輯:迎迎 來源: 天極網
相關推薦

2011-07-29 16:21:21

Oracle數據庫回滾段

2020-03-27 16:05:49

數據庫數據MySQL

2017-11-24 11:59:18

數據庫OracleMySQL

2009-11-16 17:15:12

Oracle減少回滾段

2011-03-23 09:10:09

游標數據檢索

2009-11-16 13:41:18

Oracle分離回滾段

2010-04-15 12:43:06

Oracle數據庫

2010-04-15 11:33:39

Oracle數據庫

2025-04-08 06:00:00

2022-01-18 06:59:50

HashMap循環底層

2024-07-16 08:03:43

2011-08-09 13:14:37

Oracle 10g數據庫閃回

2025-01-09 09:10:39

2010-05-13 09:59:50

MySQL數據庫

2011-05-26 13:36:40

Oracle數據庫時間處理

2010-04-16 17:31:22

ORACLE回滾段

2016-02-25 14:33:38

華為華為企業業務

2010-05-05 14:44:50

Oracle數據庫

2011-08-23 15:16:54

OracleMySQL

2020-11-18 08:32:07

數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品亚洲精品国产欧美 | 亚洲精品一区二区三区免 | 高清黄色毛片 | 高清免费av| 99久久久久久久 | 亚洲精品久久久久久久久久久久久 | 国产精品一区视频 | 欧美一区二区三区电影 | 亚洲日韩中文字幕一区 | 永久av| 婷婷久| av在线天天 | 精品一区二区久久久久久久网站 | 日韩av一区二区在线观看 | 一级片成人 | 久久久精彩视频 | 超碰精品在线观看 | 国产精品不卡一区 | 91视频网 | 精品一区二区三区中文字幕 | 亚洲精品一区二三区不卡 | 区一区二区三在线观看 | 一区二区三区在线观看视频 | 成在线人视频免费视频 | 国产精品日韩欧美一区二区三区 | a在线视频| 狠狠伊人 | 亚洲免费观看视频 | www.xxxx欧美 | 亚洲国产高清高潮精品美女 | 很黄很污的网站 | 亚洲精品一区二三区不卡 | 色性av| 久久夜色精品国产 | 国产一级片精品 | 日韩一级免费观看 | 欧美精品乱码久久久久久按摩 | 欧美精品在线一区二区三区 | 欧美亚洲国产成人 | 成人在线免费 | 日韩在线一区二区三区 |