自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

DB2數(shù)據(jù)庫崩潰后用事務(wù)日志恢復(fù)操作的原理描述

數(shù)據(jù)庫
文章主要描述的是DB2數(shù)據(jù)庫崩潰后用事務(wù)日志恢復(fù)操作原理,以下就是對DB2數(shù)據(jù)庫崩潰后用事務(wù)日志恢復(fù)操作原理具體內(nèi)容的描述,希望在你今后的學(xué)習(xí)中會(huì)有所幫助。

文章主要描述的是DB2數(shù)據(jù)庫崩潰后用事務(wù)日志恢復(fù)操作原理,以下就是對DB2數(shù)據(jù)庫崩潰后用事務(wù)日志恢復(fù)操作原理具體內(nèi)容的描述,你如果對其有興趣的話你就可以點(diǎn)擊以下的文章進(jìn)行觀看了。

 

在系統(tǒng)DB2數(shù)據(jù)庫崩潰之后,使用DB2的事務(wù)日志恢復(fù)數(shù)據(jù)庫。 您曾多少次碰到過錯(cuò)誤消息“SQL0946C The transaction log for the database is full?”

 

在盡力解決該問題時(shí),您是否停下來思考如下兩個(gè)問題:1. 為何存在事務(wù)日志;2. 事務(wù)日志記錄服務(wù)的目的是什么呢?

 

若沒有事務(wù),多個(gè)用戶和應(yīng)用程序同時(shí)與一個(gè)數(shù)據(jù)庫進(jìn)行交互時(shí)就必然會(huì)破壞數(shù)據(jù)。而如果沒有事務(wù)日志記錄,DB2 UDB中的一些據(jù)庫恢復(fù)方法就不會(huì)存在。

 

如果您還沒有完全理解這些概念,也不必?fù)?dān)憂。我將解釋事務(wù)是什么以及事務(wù)日志記錄背后的機(jī)制。然后,我將展示在系統(tǒng)DB2數(shù)據(jù)庫崩潰或程序故障之后,如何使用數(shù)據(jù)庫事務(wù)日志文件中所存儲(chǔ)的信息來使數(shù)據(jù)庫回歸到一致、可用的狀態(tài)。您還可以通過這些重要的日志做更多事情。

 

事務(wù)

 

事務(wù)(也稱作工作單元)是指一個(gè)或多個(gè)SQL操作的序列,這些操作組合成一個(gè)單元且通常位于一個(gè)應(yīng)用程序進(jìn)程內(nèi)。該單元通常稱作是“原子的”,因?yàn)樗遣豢煞值?mdash;—它的所有工作要么全都執(zhí)行,要么全都不執(zhí)行。一個(gè)給定的事務(wù)可以執(zhí)行任何數(shù)目的SQL操作(從一個(gè)到幾千個(gè),取決于業(yè)務(wù)邏輯里對于“一步”的定義)。

 

一個(gè)事務(wù)的開始和終止定義了數(shù)據(jù)庫里數(shù)據(jù)一致性的點(diǎn);要么將事務(wù)里所執(zhí)行的所有操作的結(jié)果應(yīng)用到數(shù)據(jù)庫上,并使之成為永久的(已提交),要么將之都撤銷(回滾),使數(shù)據(jù)庫返回到啟動(dòng)該事務(wù)之前的狀態(tài)。

 

事務(wù)是在建立到數(shù)據(jù)庫的連接之后第一次執(zhí)行SQL語句時(shí)或在現(xiàn)有事務(wù)終止時(shí)立即啟動(dòng)。一旦啟動(dòng),就可以使用名為原子提交的功能隱式地終止該事務(wù)。通過原子提交,會(huì)將每條可執(zhí)行的SQL語句當(dāng)作一個(gè)事務(wù)。如果該語句執(zhí)行成功,那它所做的任何修改都將應(yīng)用到數(shù)據(jù)庫上,但如果語句失敗,那修改將被丟棄。

 

還可以通過執(zhí)行COMMIT或ROLLBACK SQL語句顯式地終止事務(wù)。

 

這些語句的基本語法是:

 

  1. COMMIT <WORK> 
  2. ROLLBACK <WORK>  

在COMMIT終止事務(wù)時(shí),會(huì)將該事務(wù)從開始時(shí)對數(shù)據(jù)庫所做的所有修改變成永久性的。使用ROLLBACK,所有修改都將撤銷。

事務(wù)所做的未提交的修改對其他用戶和應(yīng)用程序來說是無法訪問的,除非那些用戶和應(yīng)用程序使用的是未提交讀(UR)隔離。然而,一旦提交了事務(wù)所做的修改,它們對于所有其他用戶和應(yīng)用程序來說就都是可以訪問的了,并且只能通過執(zhí)行新事務(wù)中的新SQL語句來刪除。

 

事務(wù)日志記錄

 

在向一個(gè)基表進(jìn)行INSERT時(shí),首先在緩沖池中創(chuàng)建一條記錄,該緩沖池與指定該表的數(shù)據(jù)存儲(chǔ)于何處的表空間相關(guān)聯(lián)。每次更新或刪除一條記錄時(shí),就從存儲(chǔ)器中檢索包含該記錄的頁面,并復(fù)制到適當(dāng)?shù)木彌_池中,然后由UPDATE/DELETE進(jìn)行修改。

一旦進(jìn)行了這一修改,就會(huì)向日志緩沖器寫入一條反映該動(dòng)作的記錄,日志緩沖器是內(nèi)存中的另一指定存儲(chǔ)區(qū)(為日志緩沖器預(yù)留的真正存儲(chǔ)大小是由logbufsiz數(shù)據(jù)庫配置參數(shù)控制的)。

如果執(zhí)行INSERT,就會(huì)寫入一條包含了新行數(shù)據(jù)值的記錄。當(dāng)出現(xiàn)刪除時(shí),就寫入一條包含了該行原始值的記錄。如果執(zhí)行UPDATE,就寫入一條包含了該行原始值和新值的記錄(在大多數(shù)情況下,通過用該行的更新值在原始值上執(zhí)行EXCLUSIVE OR,為更新操作生成日志記錄)。最終,當(dāng)執(zhí)行INSERT、UPDATE或DELETE的事務(wù)終止時(shí),就將相應(yīng)的COMMIT或ROLLBACK記錄寫入日志緩沖器。

 

每當(dāng)激活緩沖池I/O頁面清理器,日志緩沖器本身已滿,或者提交或回滾事務(wù)時(shí),就立即將日志緩沖器中存儲(chǔ)的所有記錄寫入磁盤上所存儲(chǔ)的一個(gè)或多個(gè)事務(wù)日志文件中。如果發(fā)生系統(tǒng)故障,日志緩沖器的不斷刷新將最小化可能丟失的日志記錄數(shù)目。

一旦將與特定事務(wù)相關(guān)聯(lián)的所有日志記錄(包括相應(yīng)的COMMIT或ROLLBACK記錄)成功具體化(externalize)為一個(gè)或多個(gè)日志文件,就會(huì)將事務(wù)本身的結(jié)果復(fù)制到適當(dāng)?shù)谋砜臻g容器以永久存儲(chǔ)(已修改的數(shù)據(jù)頁本身仍保留在內(nèi)存中,在必要時(shí)可以快速進(jìn)行訪問;它們最終將被改寫)。該過程稱作寫前日志記錄(write-ahead logging),保證對數(shù)據(jù)所做的修改在記錄到數(shù)據(jù)庫之前,總是被具體化為日志文件。

 

因?yàn)槎鄠€(gè)事務(wù)可以在任何時(shí)候使用一個(gè)數(shù)據(jù)庫,所以一個(gè)日志文件可能包含屬于幾個(gè)不同事務(wù)的日志記錄。為了追蹤一條日志記錄屬于哪個(gè)事務(wù),要給每條日志記錄分配一個(gè)特殊的事務(wù)ID,將之綁定到創(chuàng)建它的事務(wù)。

通過使用事務(wù)ID,可以隨時(shí)將與特定事務(wù)相關(guān)聯(lián)的日志記錄寫入一個(gè)或多個(gè)日志文件,而不影響數(shù)據(jù)一致性——最終,對于終止該事務(wù)的操作的COMMIT或ROLLBACK記錄也將進(jìn)行日志記錄,以上的相關(guān)內(nèi)容就是對DB2數(shù)據(jù)庫崩潰后用事務(wù)日志恢復(fù)的原理的介紹,望你能有所收獲。

【編輯推薦】

  1. 初學(xué)者必看的DB2數(shù)據(jù)庫的一些經(jīng)驗(yàn)總結(jié)
  2. 選擇IBM DB2的5大理由是什么?
  3. DB2數(shù)據(jù)庫備份是否成功的驗(yàn)證方案描述
  4. 對DB2 多分區(qū)數(shù)據(jù)庫備份的正確理解
  5. SQL Server到DB2連接服務(wù)器的實(shí)現(xiàn)很簡單!
責(zé)任編輯:佚名 來源: 每日經(jīng)濟(jì)新聞
相關(guān)推薦

2010-08-17 10:17:12

DB2數(shù)據(jù)庫崩潰

2010-08-04 13:37:43

2010-08-12 15:43:24

DB2數(shù)據(jù)庫備份

2010-08-12 10:54:21

IBM DB2數(shù)據(jù)庫

2010-08-18 15:42:33

2010-08-12 09:25:22

DB2數(shù)據(jù)庫復(fù)原

2011-03-03 14:52:40

DB2數(shù)據(jù)庫恢復(fù)

2010-09-01 10:17:14

DB2日志

2010-08-11 12:43:45

DB2數(shù)據(jù)庫調(diào)優(yōu)

2010-08-11 14:32:55

DB2數(shù)據(jù)庫調(diào)優(yōu)

2010-08-04 13:30:49

2010-08-17 16:24:32

IBM DB2數(shù)據(jù)庫

2010-08-02 08:40:43

DB2數(shù)據(jù)庫性能

2010-07-27 14:33:24

DB2數(shù)據(jù)庫

2010-08-03 09:49:58

DB2恢復(fù)數(shù)據(jù)庫

2011-03-25 15:12:42

DB2數(shù)據(jù)庫

2011-05-16 14:42:12

DB2數(shù)據(jù)庫實(shí)用操作

2010-08-06 09:39:27

DB2數(shù)據(jù)庫分區(qū)

2010-08-18 17:32:34

DB2數(shù)據(jù)庫

2010-08-20 14:31:32

復(fù)制DB2數(shù)據(jù)庫
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號