TW201514684A - 使用群集資料庫中之儲存快照的推測性回復 - Google Patents

使用群集資料庫中之儲存快照的推測性回復 Download PDF

Info

Publication number
TW201514684A
TW201514684A TW103118650A TW103118650A TW201514684A TW 201514684 A TW201514684 A TW 201514684A TW 103118650 A TW103118650 A TW 103118650A TW 103118650 A TW103118650 A TW 103118650A TW 201514684 A TW201514684 A TW 201514684A
Authority
TW
Taiwan
Prior art keywords
database
node
snapshot
computer usable
data
Prior art date
Application number
TW103118650A
Other languages
English (en)
Other versions
TWI625621B (zh
Inventor
Douglas Griffith
Angela Astrid Jaehde
Matthew Ryan Ochs
Original Assignee
Ibm
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ibm filed Critical Ibm
Publication of TW201514684A publication Critical patent/TW201514684A/zh
Application granted granted Critical
Publication of TWI625621B publication Critical patent/TWI625621B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2046Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本文在說明性實施例中提供用於資料庫中之回復的方法、系統,及電腦程式產品。在第一計算節點中偵測到故障,第一計算節點為計算節點群集中之資料庫服務。為資料庫之資料產生快照。將日誌項子集應用於快照,該應用修正該快照以產生修正快照。保持第一計算節點對該資料庫之資料之存取。在應用期間及已經過寬限時段之後回應於接收來自第一計算節點之活動訊號,中止該應用,以便第一計算節點可繼續服務群集中之資料庫。

Description

使用群集資料庫中之儲存快照的推測性回復
本發明一般係關於用於管理資料之方法、系統,及電腦程式產品。更特定而言,本發明係關於用於使用群集資料庫中之儲存快照的推測性回復之方法、系統,及電腦程式產品。
高可用性是在給定時段期間確保操作性能之預定位準的系統設計。資料庫高可用性之架構通常具有兩個目標,亦即防止資料發生儲存硬體故障或災難事件,及減少資料庫之停機時間。群集架構是多個伺服器經由共享網路路徑相互通信及協作以提供服務之高可用性架構。
在群集資料庫中,群集中之計算節點彼此通信及協作以服務資料庫。群集資料庫架構監視資料庫操作及性能,及在資料庫受群集節點中之錯誤影響時執行回復步驟。
企業規模的資料庫通常具有內建式高可用性基礎架構。伺服器節點及資料儲存平臺上可用之一般災難回復基礎架構(例如本地或地理資料複製,或高可用性群集)亦可用 以對資料庫實施高可用性。術語「災難回復」一般用於地理相隔較遠之地點之間的故障轉移。對於節點之地理位置鄰近(例如在同一校園內)之群集內之故障轉移,術語「接管」更常用於回復操作。
說明性實施例提供用於使用群集資料庫中之儲存快照的推測性回復之方法、系統,及電腦程式產品。實施例偵測到第一計算節點中之故障,該第一計算節點為計算節點群集中之資料庫服務。該實施例使用處理器及記憶體產生該資料庫之資料之快照。該實施例使用處理器及記憶體將日誌項子集應用至快照,此應用修正快照以產生修正快照。該實施例保持第一計算節點對該資料庫之資料之存取。該實施例在此應用期間及在經過寬限期間之後可回應於接收來自第一計算節點之活動訊號而中止此應用,使得第一計算節點可繼續為群集中之資料庫服務。
另一實施例包括用於偵測第一計算節點中之故障之電腦可用碼,該第一計算節點為計算節點群集中之資料庫服務。該實施例進一步包括用於利用處理器及記憶體產生資料庫之資料快照之電腦可用碼。該實施例進一步包括利用處理器及記憶體將日誌項子集應用至快照之電腦可用碼,此應用修正快照以產生修正快照。該實施例進一步包括用於保持第一計算節點對資料庫之資料的存取之電腦可用碼。該實施例進一步包括電腦可用碼,該碼用於在此應用期間及在經過寬限期間之後可回應於接收來自第一計算節點之活動訊號而中 止此應用,使得第一計算節點可繼續為群集中之資料庫服務。
另一實施例包括儲存裝置,該儲存裝置包括儲存媒體,其中,儲存裝置儲存電腦可用程式碼。該實施例進一步包括處理器,其中,該處理器執行電腦可用程式碼,及其中,該電腦可用程式碼包括用於偵測第一計算節點中之故障之電腦可用碼,第一計算節點為計算節點群集中之資料庫服務。電腦可用程式碼進一步包括用於利用處理器及記憶體產生資料庫之資料快照之電腦可用碼。該電腦可用程式碼進一步包括利用處理器及記憶體將日誌項子集應用至快照之電腦可用碼,此應用修正快照以產生修正快照。該電腦可用程式碼進一步包括用於保持第一計算節點對資料庫之資料的存取之電腦可用碼。該電腦可用程式碼進一步包括電腦可用碼,該碼用於在此應用期間及在經過寬限期間之後可回應於接收來自第一計算節點之活動訊號而中止此應用,使得第一計算節點可繼續為群集中之資料庫服務。
100‧‧‧資料處理環境
102‧‧‧網路
104‧‧‧伺服器
105‧‧‧資料庫執行個體
106‧‧‧伺服器
107‧‧‧資料庫執行個體
108‧‧‧儲存裝置
109‧‧‧資料
110‧‧‧客戶端
111‧‧‧日誌
112‧‧‧客戶端
114‧‧‧客戶端
115‧‧‧接管應用程式
117‧‧‧接管應用程式
200‧‧‧資料處理系統
202‧‧‧北橋及記憶體控制器集線器
204‧‧‧南橋及輸入/輸出控制器集線器
206‧‧‧處理單元
208‧‧‧主記憶體
210‧‧‧圖形處理器
212‧‧‧區域網路配接器
216‧‧‧音頻配接器
220‧‧‧鍵盤及滑鼠配接器
222‧‧‧數據機
224‧‧‧唯讀記憶體
226‧‧‧硬碟驅動器
230‧‧‧緊密光碟唯讀記憶體
232‧‧‧用序列匯流排及其他埠
234‧‧‧PCI/PCIe裝置
236‧‧‧超輸入/輸出裝置
238‧‧‧匯流排
240‧‧‧匯流排
302‧‧‧主節點
304‧‧‧資料庫執行個體
306‧‧‧從屬元件
308‧‧‧訊息元件
310‧‧‧資源管理器
320‧‧‧資料
322‧‧‧資料儲存器
352‧‧‧接管節點
354‧‧‧資料庫執行個體
356‧‧‧從屬元件
358‧‧‧訊息元件
360‧‧‧資源管理器
390‧‧‧心跳
392‧‧‧網路
394‧‧‧網路
396‧‧‧路徑
398‧‧‧儲存子系統
402‧‧‧節點
404‧‧‧資料庫執行個體
410‧‧‧資料/資料儲存器
412‧‧‧日誌
414‧‧‧資料
416‧‧‧資料儲存裝置
418‧‧‧日誌
420‧‧‧表格
430‧‧‧快照資料儲存器
452‧‧‧節點
454‧‧‧資料庫執行個體
456‧‧‧接管應用程式
502‧‧‧接管應用程式
504‧‧‧元件
506‧‧‧元件
508‧‧‧元件
510‧‧‧元件
512‧‧‧元件
600‧‧‧日誌
602‧‧‧視圖
604‧‧‧視圖
606‧‧‧視圖
652‧‧‧表
654‧‧‧日誌
656‧‧‧日誌
658‧‧‧表
672‧‧‧表
674‧‧‧日誌
676‧‧‧日誌
678‧‧‧表
700‧‧‧過程
702‧‧‧步驟
704‧‧‧步驟
706‧‧‧步驟
710‧‧‧步驟
712‧‧‧步驟
714‧‧‧步驟
800‧‧‧過程
802‧‧‧步驟
804‧‧‧步驟
806‧‧‧步驟
900‧‧‧過程
902‧‧‧步驟
904‧‧‧步驟
906‧‧‧步驟
908‧‧‧步驟
910‧‧‧步驟
912‧‧‧步驟
914‧‧‧步驟
916‧‧‧步驟
1000‧‧‧次序
1050‧‧‧次序
6542‧‧‧方塊
6544‧‧‧方塊
6546‧‧‧方塊
6742‧‧‧日誌項
6744‧‧‧日誌項
6746‧‧‧日誌項
被視作本發明之特徵之該等新穎特徵在所附之申請專利範圍中闡明。然而,本發明自身及其優選之使用模式、更多目的,及優勢將最佳在結合附圖閱讀說明性實施例時藉由參考以下對該等說明性實施例之詳細描述來進行理解,在該等附圖中:第1圖繪示資料處理系統網路之方塊圖,說明性實施例可在該網路中實施;第2圖繪示資料處理系統之方塊圖,說明性實施例 可在該資料處理系統中實施;第3圖繪示根據一說明性實施例之表列資料實例,在該表列資料內,可辨識功能關係及簽名;第4圖繪示根據一說明性實施例之推測性回復之方塊圖,該推測性回復利用群集資料庫中之儲存快照;第5圖繪示根據一說明性實施例之用於推測性回復之接管應用程式中示例性功能的方塊圖,該推測性回復利用群集資料庫中之儲存快照;第6圖繪示根據一說明性實施例之日誌重放實例;第6A圖繪示根據一說明性實施例之重新加入操作之示例性情況之方塊圖;第6B圖繪示根據一說明性實施例之重新加入操作之另一示例性情況之方塊圖;第7圖繪示根據一說明性實施例之推測性回復之示例性過程流程圖,該推測性回復利用群集資料庫中之儲存快照;第8圖繪示根據一說明性實施例之將資料庫並行性傳達至群集之示例性過程流程圖;第9圖繪示根據一說明性實施例之接管決定之示例性過程流程圖;第10A圖繪示根據一說明性實施例之用於推測性回復之示例性高可用性實施方式之示例性操作順序,該推測性回復利用群集資料庫中之儲存快照;及第10B圖繪示根據一說明性實施例之用於推測性回 復之示例性高可用性實施方式之示例性操作順序,該推測性回復利用群集資料庫中之儲存快照。
在群集資料庫中,接管解決方案經配置以在偵測到為該資料庫服務之主計算節點中之故障之後觸發。該回復解決方案藉由將資料庫服務責任移至另一節點(接管節點)來啟動該資料庫之接管。
說明性實施例認為群集環境中之資料庫回復是資源密集及計算開銷較高之操作。說明性實施例進一步認為在主節點中偵測到之故障並非全部是致命之或不可回復之故障。目前偵測到的一些故障可被視作假故障。假故障(或誤偵測之故障)是當關連之計算節點實際上有效但不在某些參數內執行時呈現指示該節點並非有效之狀態。
例如,心跳是群集計算節點中之週期性訊息傳遞系統。自節點發送之心跳向群集中之其他節點指示該發送(心跳)節點正在活動及有效。如若主資料庫節點沒能在指定時間窗口內發送心跳,則接管節點可能斷定該主節點已變得無效及開始進行資料庫回復操作。然而,儘管該主節點可能正在活動,但節點中之狀態可能已阻止發送該心跳之線程獲得處理器時間,或網路中之狀況可能已延遲心跳封包到達接管節點。
心跳故障實例並非唯一假故障。諸多其他假故障可同樣在群集資料庫環境中存在。說明性實施例認為在假故障期間啟動資料庫回復操作並不可取。
用以描述本發明之說明性實施例一般解答及解決與 在群集資料庫環境中之資料庫回復相關之上述問題及其他問題。說明性實施例提供用於推測性回復的方法、系統,及電腦程式產品,該推測性回復利用群集資料庫中之儲存快照。 相對於資料庫資料之快照描述說明性實施例。快照是儲存卷之快照,亦即在儲存子系統層上之資料複製,因此本文中對快照之引用係指「儲存快照」。在儲存快照中,裝置存取之全部變更追蹤及歧義消除在一個儲存裝置內之儲存層上得以解決,不受伺服器分區之影響,儲存裝置為該等伺服器提供儲存。快照複本與複本來源及目標儲存裝置建立關係。當快照關係有效時,在已啟動關係之時間點之後,來源及目標兩者皆可由應用程式而經進一步修正。
本揭示案中使用之術語「快照」或「儲存快照」係 指在儲存子系統層上之資料複製之一般化概念。FlashCopy是根據一實施例在一些群集系統中得以實施之快照之示例性實施方式。本揭示案中之隨後對術語「Flashcopy」之使用與儲存快照之一般概念之使用同義,包括但不限定於在特定群集結構中之儲存快照之特定實施方式。
目前可用之資料庫接管解決方案可藉由其資料複製 技術、被複製之內容,或複製中之同步模式而大致分類。根據資料複製技術之分類依據該資料庫是否在儲存子系統層、裝置層,或資料庫層上使用資料複製來分類災難回復解決方案。根據經複製內容之分類依據該資料庫是否複製全部資料或僅複製異動日誌來分類災難回復解決方案。
根據同步模式之分類依據在輸入/輸出(Input/Output; I/O)在本地站點上宣告完成之前在遠端站點上完成輸入/輸出(Input/Output;I/O)操作之嚴格程度來分類災難回復解決方案。各種同步模式包括(i)同步,其中資料必須在I/O操作完成之前寫入遠端儲存器;(ii)近似同步,其中遠端站點上之過程確認接收到資料;(iii)異步,其中在將異動資料發送至遠端站點上之過程之後完成異動,無需等待收妥確認;及(iv)超異步,其中在已將資料寫入本地緩衝器之後完成異動,資料自本地緩衝器被發送至遠端站點。
不同的群集資料庫設置容許資料庫常駐程式執行個 體(除主資料庫執行個體之外)進行不同類型之存取。一些容許讀取寫入,在此情況下,容許常駐程式執行個體讀取及寫入由主資料庫執行個體正在使用之資料儲存器。該種配置實例是平行資料庫,在此情況下,全部資料庫執行個體可讀取及寫入該資料儲存器。
另一些群集資料庫設置容許常駐程式執行個體之讀 取及寫入存取,在此情況下,容許該常駐程式執行個體讀取該資料儲存器。該種配置實例在網路上將所進行之異動分配至一或更多個複製執行個體。
另一些群集資料庫設置容許熱備用,在此情況下, 資料庫執行個體在發生故障時進入讀取及寫入狀態之單獨資料庫複本上執行日誌重放。日誌重放是自日誌項中應用異動之過程。
另一些群集資料庫設置容許冷備用,在此情況下, 高可用性群集節點處於備用狀態以啟動資料庫執行個體。在該種設置中,群集的資源管理基礎架構監視主群集伺服器上之資料庫及支援資源,以便可在該主伺服器故障之時在另一群集伺服器上重新啟動該等資料庫及支援資源。支援資源包括但不限於處理器、記憶體、磁碟及其他裝置、檔案系統、IP配置、性能及其他系統配置設定,以賦能資料庫執行個體及依據該資料庫之可能更多應用程式之操作環境。
由於在資料庫之群集高可用性結構中誤偵測之故障 所導致之接管使得接管資料庫執行個體在使資料庫返回運轉狀態之前執行大量異動日誌重放。在資料庫之不平穩中止之後,需要進行異動日誌重放,此舉必然使得在未將資料庫之記憶體內緩衝器寫入至磁碟之情況下關閉資料庫。在重新啟動資料庫之前,需根據磁碟上之異動日誌重新構建表格,此舉由於I/O性能限制而是較慢過程。依據未進行之異動日誌項之數量,在資料庫之不平穩中止之後,日誌重放可能耗時數分鐘至數小時之久。無論給定之高性能群集資料庫架構是否使用較低同步程度、熱備用,或完全不使用任一者,都保證根據本技術之日誌重放以消耗不可忽略之某一時長。
僅作為實例,相對於某些假故障描述該說明性實施。該等示例性故障並非旨在限制本發明。
此外,該等說明性實施例可相對於任何類型之資料、資料來源,或在資料網路上對資料來源之存取得以實施。在本發明之範疇內,任何類型之資料儲存裝置可在資料處理系統中以本端方式或在資料網路上向本發明之一實施例提供 資料。
藉由使用特定碼、設計、架構、協定、佈局、示意圖,及工具描述說明性實施例,上述各者僅為實例,並非限制該等說明性實施例。此外,在一些情況下藉由使用特定軟體、工具,及資料處理環境而描述說明性實施例,上述各者僅為以描述之明確性為目的之實例。說明性實施例可結合其他相當或類似用途之結構、系統、應用程式,或架構而使用。說明性實施例可在硬體、軟體,或上述兩者之組合中實施。
本揭示案中之實例僅以描述之明確性為目的,並非限制說明性實施例。額外的資料、操作、動作、任務、活動,及操縱將由於本揭示案而可理解,及在說明性實施例範疇內涵蓋上述各者。
本文中所列之任何優勢僅為實例,及並非旨在限制該等說明性實施例。可藉由特定說明性實施例實現額外或不同之優勢。此外,特定說明性實施例可具有上列優勢中之一些、全部,或不具有上列優勢中任一者。
請參看圖式及尤其參看第1圖第2圖,該等圖式為資料處理環境之實例圖,說明性實施例可在該等環境中實施。第1圖第2圖僅為實例,及並非旨在明示或暗示任何對可實施不同的實施例之環境之限制。基於以下描述,特定實施方式可對所繪示之環境進行諸多潤飾。
第1圖繪示資料處理系統網路之方塊圖,說明性實施例可在該網路中實施。資料處理環境100是電腦網絡,說明性實施例可實施可在該電腦網路中實施。資料處理環境100 包括網路102。網路102是用以在各種裝置及電腦之間提供通信鏈路之媒體,該等裝置及電腦在資料處理環境100內連接在一起。網路102可包括連接裝置,比如有線通信鏈路、無線通信鏈路,或光纜。伺服器104及伺服器106與儲存裝置108一起耦接至網路102。軟體應用程式可在資料處理環境100中之任何電腦上執行。
此外,客戶端110112,及114耦接至網路102。 諸如伺服器104106,或客戶端110112,或114之資料處理系統可包含資料及可具有對該等資料執行之軟體應用程式或軟體工具。
在僅作為實例及不暗示對該種架構之任何限制的情 況下,第1圖繪示可用於一實施例之示例性實施方式中之某些元件。例如,伺服器104中之資料庫執行個體105是使用伺服器104、伺服器106,及群集中其他資料處理系統之群集資料庫中之資料庫應用程式執行個體。資料庫執行個體107是充當接管執行個體之資料庫應用程式之另一執行個體,該接管執行個體在充當群集中之接管節點之伺服器106中操作。資料庫執行個體105使用儲存器108中之資料109作為資料儲存器。儲存器108或其同等物包括日誌111,該日誌是由資料庫105在主要作用之資料庫異動之處理期間生成之日誌項之儲存庫。例如,根據一說明性實施例,日誌111可用於日誌重放。接管應用程式117包括本文描述之一實施例之實施方式。接管應用程式117結合資料庫執行個體107進行操作。例如,現存之資料庫應用程式可包括接管應用程式 117,或可經修正或經配置以在操作時結合接管應用程式117以執行根據本文描述之一實施例之操作。接管應用程式117在伺服器106中之資料庫執行個體107處賦能對伺服器104中資料庫執行個體105之功能之接管。同樣,當資料庫執行個體107是主執行個體時,接管應用程式115在伺服器104中之資料庫執行個體105處賦能對伺服器106中資料庫執行個體107功能之接管。
伺服器104106、儲存器108,及客戶端110112, 及114可利用有線連接裝置、無線通信協定,或其他適合之資料連接而耦接至網路102。例如,客戶端110112,及114可為個人電腦或網路電腦。
在繪示之實例中,伺服器104可向客戶端110112, 及114提供諸如啟動檔案、作業系統影像,及應用程式之資料。在此實例中,客戶端110112,及114可為伺服器104之客戶端。客戶端110112114,或上述各者之一些組合可包括其自身資料、啟動檔案、作業系統影像,及應用程式。 資料處理環境100可包括額外之伺服器、客戶端,及其他未圖示之裝置。
在繪示之實例中,資料處理環境100可為網際網 路。網路102可表示一組使用傳輸控制協定/網際網路協定(Transmission Control Protocol;TCP/Internet Protocol;IP)及其他協定以彼此通信之網路及閘道。網際網路之核心是主節點或主電腦之間之資料通信鏈路之骨幹,包括數千個商業、政府、教育,及路由資料及訊息之其他電腦系統。當然,資 料處理環境100亦可作為數個不同類型之網路得以實施,例如,內部網路、區域網路(local area network;LAN),或廣域網路(wide area network;WAN)。第1圖以示例為目的,及並非旨在作為不同說明性實施例之結構限制。
除其他用途之外,資料處理環境100亦可用於實施 客戶端-伺服器環境,在該環境中可實施說明性實施例。客戶端-伺服器環境使得軟體應用程式及資料能夠被分配在整個網路上,以使得應用程式藉由利用客戶端資料處理系統與伺服器資料處理系統之間的交互而起作用。資料處理環境100亦可使用服務導向架構,在該架構中,在整個網路上分配之可互操作軟體元件可一起封裝作為同調之商業應用程式。
請參看第2圖,此圖式繪示資料處理系統之方塊 圖,說明性實施例可在該系統中實施。資料處理系統200是一電腦實例,例如第1圖中之伺服器104或客戶端112,或另一類型之裝置,實施該等過程之電腦可用程式碼或指令可定位於該裝置中以用於該等說明性實施例。
在繪示之實例中,資料處理系統200使用集線器架 構,該架構包括北橋及記憶體控制器集線器(North Bridge;NB/memory controller hub;MCH)202及南橋及輸入/輸出(input/output;I/O)控制器集線器(South Bridge;SB/input/output controller hub;ICH)204。處理單元206、主記憶體208,及圖形處理器210耦接至北橋及記憶體控制器集線器(North Bridge;NB/memory controller hub;MCH)202。處理單元206可包含一或更多個處理器及可利用一或更多個異 質處理器系統得以實施。處理單元206可為多核心處理器。在某些實施方式中,圖形處理器210可經由加速圖形埠(accelerated graphics port;AGP)耦接至NB/MCH 202
在繪示之實例中,區域網路(local area network;LAN)配接器212耦接至南橋及I/O控制器集線器(South Bridge and I/O controller hub(SB/ICH))204。音頻配接器216、鍵盤及滑鼠配接器220、數據機222、唯讀記憶體(read only memory;ROM)224、通用序列匯流排(universal serial bus;USB)及其他埠232,及PCI/PCIe裝置234經由匯流排238耦接至南橋及I/O控制器集線器204。硬碟驅動器(Hard disk drive;HDD)226及CD-ROM 230經由匯流排240耦接至南橋及I/O控制器集線器204。PCI/PCIe裝置234可包括例如用於筆記型電腦之以太網配接器、添加卡,及電腦卡(PC card)。PCI使用卡片匯流排控制器,而PCIe則不使用。唯讀記憶體(Read only memory;ROM)224例如可為快閃二進制輸入/輸出系統(binary input/output system;BIOS)。硬碟驅動器226及緊密光碟唯讀記憶體(Compact Disk-Read Only Memory;CD-ROM)230可使用例如積體驅動電子(integrated drive electronics;IDE)或串行進階技術附接(serial advanced technology attachment;SATA)介面。超輸入/輸出(super Input/Output;SIO)裝置236可經由匯流排238耦接至南橋及I/O控制器集線器(South Bridge and Input/Output controller hub;SB/ICH)204
諸如主記憶體208、唯讀記憶體(Read-only memory;ROM)224,或快閃記憶體(未圖示)之記憶體是電腦可用儲 存裝置之一些實例。硬碟驅動器226、緊密光碟唯讀記憶體(Compact Disk-Read Only Memory;CD-ROM)230,及其他同樣可用之裝置是電腦可用儲存裝置之一些實例,包括電腦可用儲存媒體。
作業系統在處理單元206上執行。作業系統協調及 提供對第2圖中的資料處理系統200內各種元件之控制。該作業系統可為市售作業系統,例如AIX®(AIX是國際商用機器公司在美國及其他國家的商標)、Microsoft® Windows®(Microsoft及Windows是微軟公司在美國及其他國家的商標),或Linux®(Linux是Linus Torvalds在美國及其他國家之商標)。諸如JavaTM程式化系統之物件導向程式化系統可結合作業系統執行,及自在資料處理系統200上執行之JavaTM程式或應用程式提供對該作業系統之調用(Java及全部基於Java之商標及徽標是奧比特公司及/或其子公司之商標或註冊商標)。
用於作業系統、物件導向程式化系統,及諸如第1 中之資料庫執行個體105107及接管應用程式117之應用程式、邏輯,或程式之指令位於一或更多個儲存裝置(例如硬碟驅動器226)中至少一者上,及可載入一或更多個記憶體(例如主記憶體208)中之至少一者內,以用於由處理單元206執行。說明性實施例的過程可由處理單元206藉由利用電腦實施指令來執行,該等指令可位於記憶體中,例如,主記憶體208、唯讀記憶體224,或位於一或更多個周邊裝置中。
第1圖至第2圖中之硬體可依據實施方式而有所不 同。諸如快閃記憶體、等效的非揮發性記憶體,或光碟驅動器及類似物之其他內部硬體或周邊裝置可用於添加至第1圖至第2圖中繪示之硬體或替代該硬體。此外,說明性實施例的過程可應用至多處理器資料處理系統。
在一些說明性實例中,資料處理系統200可為個人 數位助理(personal digital assistant;PDA),該個人數位助理一般配置有快閃記憶體以提供非揮發性記憶體以用於儲存作業系統檔案及/或使用者產生之資料。匯流排系統可包含一或更多個匯流排,例如系統匯流排、I/O匯流排,及PCI匯流排。 當然,匯流排系統可藉由利用任何類型之通信組構或架構而得以實施,該通信組構或架構在附接該組構或架構之不同元件或裝置之間提供資料傳送。
通信單元可包括一或更多個用以發送與接收資料之 裝置,例如數據機或網路配接器。記憶體可為例如主記憶體208或快取記憶體,例如在北橋及記憶體控制器集線器202中發現之快取記憶體。處理單位可包括一或更多個處理器或中央處理單元(central processing unit;CPU)。
第1圖至第2圖中繪示之實例及上述實例並非意謂 著暗示架構限制。例如,資料處理系統200除採用PDA形式之外,亦可為平板電腦、膝上型電腦,或電話裝置。
請參看第3圖,此圖式繪示一群集資料庫環境之方 塊圖,可利用說明性實施例而修正該群集資料庫環境。標誌為「節點A」之主節點302第1圖中伺服器104之一實施例。主節點302託管資料庫執行個體304,該資料庫執行個體 是第1圖中資料庫執行個體105之一實例。標誌為「節點B」之接管節點352第1圖中伺服器106之一實施例。接管節點352託管資料庫執行個體354,該資料庫執行個體是第1圖中資料庫執行個體107之一實例。
資料庫之任何分配管理皆依靠群集基礎架構,該基 礎架構在分佈式系統中提供基本功能,例如成員故障之偵測、可靠的訊息傳遞,及隔離層同步。該種基礎架構可內建至資料庫內,或資料庫可依靠作為平臺基礎架構之一部分而經提供之群集服務。第3圖圖示群集基礎架構之典型元件堆疊。
節點A中之從屬元件306及節點B中從屬元件356 中每一者藉由穿過多個冗餘網路連接(例如網路392394)在群集成員之間發送心跳390來維持群集中各個節點之狀態。心跳390亦可經過穿過儲存子系統之路徑,例如穿過儲存子系統398之路徑396。節點A及節點B中可靠的訊息傳遞元件308358分別提供用於分佈式系統之基本功能,例如可靠的訊息傳遞及隔離層同步。
節點A中之資源管理器310及節點B中之資源管理器360利用底層之服務在其各自之計算節點中實施分佈式資源管理。就資料庫之管理而言,諸如資源管理器310之資源管理器可包括用於在回應於故障或性能降級時重新安置或重新啟動資料庫執行個體(例如資料庫執行個體304)之功能。資源管理器310360亦包括用於進行資料流之管理的功能,該資料流用於在兩個伺服器之間進行複製,例如在節點A 與節點B之間複製。在一個實施例中,資源管理器310是資料庫之內建式元件。在另一實施方式中,資源管理器310是諸如常駐程式組之獨立系統,該常駐程式組在高可用性群集中提供資源管理。
資料庫執行個體304使用資料儲存器322中之資料 320。資料320以符號表示資料庫之全部資料,及可佔據資料儲存器322中之任何空間量。資源管理器310360將資料儲存器322作為資源進行管理,及資料庫執行個體354可在接管期間使用資料儲存器322。資料儲存器322亦可充當心跳之額外路徑。
目前,如若一節點未接收到來自另一節點之心跳已 達配置之最長超時寬限時段之久,則該群集節點將宣告該另一節點為故障。目前,在宣告一節點為故障之後,資源回復動作將啟動,此舉必然導致資料庫執行個體重新定位至另一伺服器及其他開銷較高之操作。例如,節點B可能由於以下數個原因而中止接收來自節點A之心跳:(i)節點A已損壞;(ii)節點A處於一狀態,在該狀態下,發送心跳之線程未獲得及時CPU存取;或(iii)節點A與節點B之間的全部網路連接被永久或暫時地切斷,時長超過該寬限時段。
說明性實施例認為在眾多情境下,情況(ii)及(iii)是假故障,亦即儘管未接收到來自節點A之心跳,但節點A仍然是活動的、運轉的,或可回應的。
當節點A無法發送心跳達預配置之寬限時段之久時,請考慮情況(ii)。利用目前可用之災難回復解決方案,節 點B將開始接管資源以用於在寬限時段逾期之後服務來自節點A之資料庫執行個體304。由於節點B已接管用於服務資料庫執行個體304之資源,因此節點A在寬限時段逾期之後必須中止操作資料庫執行個體304及中止使用彼等資源。節點A處之資源使用必須中止以阻止不協調操作,例如兩個資料庫執行個體(亦即執行個體304及執行個體354)在未經群集中協調之情況下同時有效。
阻止資源不協調操作之群集基礎架構在通常情況下 藉由失馭開關進行阻止,如若群集節點上之心跳線程未能發送心跳達配置之寬限時段之久,則此失馭開關中止該群集節點。寬限時段及失馭開關之組合確保被管理之群集資源之存取的完整性。
情況(iii)被視作分區群集。任何群集設計之前提是 永不會達到該種狀態,因為在沒有網路連接之情況下群集無法起作用以協調節點動作。群集設計師之任務是在群集域中提供充足的網路路徑冗餘,以便所有路徑同時受故障影響之可能性近似於零。實際上,群集節點之間的網絡連接常常由於設計原因或在操作期間由於操作條件而沒有充足之冗餘。 在諸多情況下,由於情況(iii)而導致無法在配置寬限時段接收心跳之情況是暫時的。
說明性實施例認為情況(ii)及(iii)目前被假定為可能 性不高之事件,因此,目前並未過多致力於群集設計,以便實施最佳資源可用性。如若節點不能發送心跳,則失馭開關中止該節點,由此終止該節點之全部資源。在分區重新恢復 之後,群集在通常情況下執行域合併協定以調和由群集分區導致之資源發散視圖。域合併協定指定將在群集分區之後執行之動作及步驟組,以便調和有關群集從屬之狀態及資訊。 域合併協定管理在分區期間可能已發散之資源,及協調動作以從成員及資源收斂狀態之同時存在的情況回復,以便再次達到群集範圍內經管理之資源的統一視圖。
說明性實施例認為中止及調和程序是不充分、效率 低,及開銷高的故障處理方式,尤其是對於假故障如此。在現代的大規模複雜群集域中,線程排程像差、網路分區,及其他遺漏心跳之原因更有可能發生。
說明性實施例認為諸多該種原因或事件在本質上往 往是暫時的,及經常可自行解決問題。例如,暫時網路分區可能由網路或儲存開關重置而導致,此情況通常在2-3分鐘內完成。作為另一實例,藉由30秒之SCSI I/O超時,儲存區域網路(storage area network;SAN)中導致數個光纖通道訊框丟失之事件亦可能導致分區,此分區將在不久之後重新恢復。
由於常用群集硬體中有高達1024個CPU及以上之CPU,及利用硬體虛擬化,線程排程像差正在變得日益常見。在經過20秒缺省寬限時段之後,已由失馭開關導致損壞之情況是常見的。可藉由一實施例避免該種情況,該實施例認識到及利用導致經過寬限時段之情況將在等候時段內自行解決問題之經驗。例如,如若失馭開關操作已等候達等候時段之久,則將鬆開鎖定及可再次排程被阻止之線程。
在假設寬限時段及失馭開關設計時,當虛擬化及自 行回復特徵不佔優勢之時,在心跳線程未能在寬限時段內完成I/O之情況下中止節點更有可能是正確之決定。目前,憑藉比從前複雜的線程排程,及憑藉諸如CPU虛擬化及現用記憶體共享(Active Memory Sharing)之特徵,中止節點更有可能是對遺漏心跳之錯誤回應。(現用記憶體分享是國際商用機器公司在美國及其他國家之商標。)說明性實施例認為在現代群集中,故障之常見原因(如上述原因)是暫時的,因此是假故障。
說明性實施例亦認為單個寬限時段是當前群集設計 及接管解決方案中所固有的。換言之,目前,節點被宣告為故障之前所經過之超時在所有故障情況下都相同,無論該故障是否歸因於節點損壞、網路分區,還是線程排程像差。儘管利用較舊之技術在宣告最終情況之前假定相同的寬限時段可能是合理的,但該種假定在現代情況下是不正確的。
說明性實施例認為每一故障情況具有其自身之時 段,故障在該時段內可糾正其自身,並且在該時段之後宣告該故障為最終結果將是合理的。例如,倘若發生節點損壞,該故障可立即是最終結果,但在網路分區的情況下,當前自身恢復時間為大約3分鐘之數量級,在此時間之前,故障將不會被視作最終結果。同樣地,依據節點中的情況,開關重置或線程排程像差之典型歷時可能為更長時段。資源接管及資料庫重新定位是針對故障之開銷較高之接管解決方案,該等故障可能在遠短於完成接管解決方案所需時間的時間內被發現是假故障。
說明性實施例進一步認為隨著日益增大之資料儲存 器尺寸,因節點故障而產生之資料庫不平穩終止之損失增加。利用用以備份高達兆兆字節範圍之內部緩衝器之記憶體,損壞後之資料庫可能消耗大量時間用於初始化、填充緩沖池,及完成日誌重放。由於性能考慮因素及實施成本,許多使用者不實施具有較短同步滯後之熱備用解決方案。
為在使用虛擬化及顯著較大之資料儲存器之現代複 雜基礎架構中提供高可用性,說明性實施例提供回復機制以用於處理已變更之故障型樣及維持企業規模資料庫之可接受的回復時間。可藉由利用一實施例而避免因為自假故障之不必要的故障轉移而產生之資料庫中斷。
請參考第4圖,此圖式繪示根據一說明性實施例之 推測性回復之方塊圖,該推測性回復利用群集資料庫中之儲存快照。執行資料庫執行個體404之節點402(「節點A」)是在第3圖中執行資料庫執行個體304之節點302之實例。 節點452(「節點B」)是第3圖中節點352之實例。資料儲存裝置416中之資料儲存器410中之資料414類似於第3圖中資料儲存器322中之資料320。資料410及資料320可分別佔據資料儲存器430322中之任何空間量。
日誌412是由資料庫執行個體404利用資料414處 理過或正在處理之異動記錄。資料庫執行個體404在操作之同時讀取及寫入日誌412及資料414
假設節點B偵測到節點A中之故障,例如在經過預 定之寬限時段之後自節點A遺漏之心跳。在偵測到故障之 後,先前技術之方法將終止節點A之資源存取,啟動向節點B之資源故障轉移,及啟動先前技術之接管操作。
相反,實施為接管應用程式456之一實施例未終止 節點A對資源之存取,包括資料庫執行個體404對資料414之存取。實際上接管應用程式456產生資料儲存器410之快照資料儲存器430。根據資料410產生快照資料儲存器430之過程根據資料414產生快照420,及亦根據日誌412構建日誌418。例如,日誌418在日誌412中的某一點處開始,然後在日誌412接收到額外項時被填充。在一個實施例中,日誌418已存在,及藉由快照產生過程而經修正。
在一個實施例中,快照資料儲存器430是儲存子系 統層上之資料複製。此外,在一實施例中,快照資料儲存器430是資料儲存器410之「寫時拷貝」複製,使得快照資料儲存器430顯著小於複製時之資料410。快照資料儲存器430之緊湊尺寸亦容許該複製比完全資料複製快數個數量級。寫時拷貝容許資料庫執行個體404繼續操縱資料儲存器410,容許資料庫執行個體454操縱快照資料儲存器430,及僅拷貝資料儲存器410與快照資料儲存器430之間由於資料庫執行個體活動而變更之彼等資料儲存區塊。在節點B使用來自快照資料儲存器430之彼等區塊之前複製待由節點A變更之資料儲存器410中之區塊,或在區塊尚未成為快照資料儲存器430中之一部分時,由節點B寫入快照資料儲存器430之區塊經複製至資料儲存器410
其他實施例可使用其他模式以用於進行快照拷貝。 存在諸多快照模式類型,比如對開鏡、寫時拷貝、遞增拷貝、寫時重定向,及上述各者之同等物。不同的實施方式實施該等模式,該等模式具有其他名稱但具有類似操作原理。實施例可利用任何該種模式來實施快照。較佳實施例使用寫時拷貝模式以達到優於其他模式之性能。
接管應用程式456,及本揭示案中引用之第1圖中接管應用程式115117之大概任何其他實施例,可在給定環境中以任何適合之形式實施。例如,在一個實施例中,接管應用程式456採取「接管管理器」或「回復管理器」之形式,該接管應用程式是第3圖中資源管理器354中之元件。在另一實施例中,接管應用程式456是具有內建式回復能力之分佈式資料庫之一元件,該分佈式資料庫回應於故障而驅動必要的動作。
在一個實施例中,在節點B執行異動日誌重放操作之前,節點A例如藉由使用第1圖中的接管應用程式115版本來估計日誌重放可能消耗的時間,直至日誌418中每一日誌項應用於快照,例如適用於快照資料儲存器430中之表420。節點A將估計值告知群集基礎架構,該估計值之形式為可調諧或可變更的等待時間,在此時間之前,將不應終止節點A對資源之存取。
在另一實施例中,憑藉在執行異動日誌重放操作之前在群集內定時適當之協調,接管應用程式456估計日誌重放可能消耗之時間,直至日誌418中的每一日誌項應用於快照資料儲存器430中的表420。接管應用程式456告知任何其 他有效群集節點,接管應用程式456在並行開始之前可與該等節點通訊達約此估計時間之久。節點A上之接管應用程式406週期性地將估計值告知群集基礎架構,該估計值之形式為可調諧或可變更的等待時間,在此等待時間之前,不應終止節點A對資源之存取。
接管應用程式456與資料庫執行個體454一同自日 誌418至快照資料儲存器430中之表420開始異動日誌重放操作(本文中亦稱作應用日誌項)。
容許節點A保持對分配資源之存取及容許資料庫執 行個體404保持對資料414之存取不產生爭用,因為資料庫執行個體454在與資料庫執行個體404並行的同時使用快照資料儲存器430以用於讀取及寫入。
此程序延遲不可逆及開銷較高之動作,以便回應於 故障而進行群集資料庫之回復,此舉依賴於該故障是假故障之可能性,例如由於可回復之暫時情況而遺漏的來自節點A之心跳。該實施例利用眾多導致故障之情況(例如節點B不接收來自節點A之心跳)是暫時的及可自行解決問題之知識。
如若故障情況自行解決,例如當來自無心跳之節點 A之心跳在等待時間內恢復,同時在回復過程中採取之動作仍為可逆(意謂著在節點B結束日誌重放及節點B上之回復管理器撤回節點A之磁碟存取之前),則回復操作可簡單中止及資料庫執行個體404在當前託管資料庫應用程式之主執行個體之節點A上保持原狀。根據一實施例之該種程序在資料庫可能需要大量時間以在不平穩的終止之後開始運轉之情 況下尤為有用,例如在異動日誌中未處理項之數目較多之架構中。
如若故障情況自身未糾正,例如當心跳未從節點A 恢復,節點B(亦即接管節點)對在偵測到該故障時產生之資料414之快照420執行日誌重放。保持自節點A對資料儲存器410之存取,及資料庫執行個體404仍可使用資料儲存器410處理異動。如若導致故障之情況在節點B進行之異動日誌重放完成之前(亦即在等待時間期間)自行解決問題或藉由手動介入解決問題,回復動作中止,而不會干擾在節點A上資料庫執行個體404之操作。
如若故障是永久的,例如,當在等候時段也結束之 後節點A未能傳輸心跳時,在日誌418中存在之記錄應用於快照資料儲存器430中之快照表420之後,接管應用程式456為資料庫執行進一步接管動作。一種此類進一步動作將快照資料儲存器430之變更應用至資料儲存器410
換言之,接管應用程式456重新結構化回復動作, 以便在最耗時部分(日誌重放)發生之同時使資料庫執行個體404在節點A上之操作不受影響,此舉依賴於此可能性:該故障是假故障及導致該假故障之情況得以解決,同時快照表420上之日誌重放仍在進行。在使用實施例之最壞情況下,如若群集中發生永久性故障,則回復時間與利用先前技術之接管方法之回復時間保持相當。
根據一個實施例,發生永久性故障之後,資料庫之 接管之其他動作如下所列:在結束對快照表420之日誌重放 之後,節點B干擾節點A之磁碟存取,例如藉由設定儲存器416上之儲量。實施例認為資料庫執行個體404仍可在節點A上運轉,及在產生了快照資料儲存器430之後可向異動日誌增添更多項。資料庫之兩個影像、應用填充稀疏之日誌的快照420,及在節點B之日誌重放期間由資料庫執行個體404修正之資料414,重新接合。重新接合在日誌重放期間保持由節點B產生之變更,及在快照420之產生後保存節點A可能添加至資料414之任何異動記錄。節點B例如經由接管應用程式456之功能自日誌重放中重放此等未進行之記錄。節點B獲得來自節點A之剩餘資源以用於資料庫操作,並且使該資料庫進入運轉狀態,為過程要求做好準備。
由此,以在使用快照420之同時消耗一些額外磁碟 空間及輕微的I/O性能衝擊為代價,一實施例完成彈性時間窗口(窗口長度位於寬限時段與完成日誌重放之時間之間的任何時間)以用於決定正確的回復動作:亦即使資料庫執行個體404在節點A上有效,還是在節點B上激活資料庫執行個體454
一實施例可選擇自寬限時段直至將全部日誌項應用 到快照表420之時間中任何時長作為等待時間。一般情況下,資料庫越大,日誌重放所需之時間越多,故障轉移開銷越高,及故障情況可能糾正其自身問題或可能藉由手動或自動故障排除而經解決之時間窗口可能越久。
在由於線程排程像差而未能發送心跳之情況下,在 經過寬限時段之後,實施例不立即中止受影響之節點。一實 施例使用群集隔離層協定或等待時間窗口以決定是否稍遲於寬限時段後再中止受影響的節點。
儘管已相對於在給定時間為有效之一個資料庫執行 個體而描述實施例,但該種配置並非旨在限制說明性實施例。一實施例之並行可應用於其他群集資料庫結構,例如,其中節點A與節點B經由共同SAN存取同一資料儲存器。
例如,在一個實施例中,當節點B接收不到來自節 點A之心跳時,發生故障。在此實施例中,資料庫執行個體404是有效資料庫伺服器,及可讀寫存取資料儲存器410。節點B與其上之資料庫執行個體454充當熱備用。在偵測到降級之性能或在節點A處偵測到故障之後,則在不干擾節點A對資料儲存器410之存取的情況下,節點B藉由應用/重放如上所述自日誌418至快照表420之日誌項開始作為熱備用操作。
作為另一實例,在一個實施例中,當節點B接收不 到來自節點A之心跳時,發生故障。在此實施例中,資料庫執行個體404充當熱備用,及可讀寫存取資料儲存器410。節點B與其上之資料庫執行個體454充當備份熱備用。在不干擾節點A對資料儲存器410之存取的情況下,節點B藉由應用/重放如上所述自日誌418至快照表420之日誌項開始操作。一般而言,在無限制之情況下,實施例可用於資料庫執行個體404454之任何配置,在該配置中,在先前技術中,由於節點A中偵測到之故障,資料庫執行個體454將被視作用於接管資料庫執行個體404之責任。
請參看第5圖,此圖式繪示根據一說明性實施例之 用於推測性回復之接管應用程式中實例功能的方塊圖,該推測性回復利用群集資料庫中之儲存快照。接管應用程式502可經實施為第4圖中之接管應用程式456
元件504產生原始資料庫影像之快照,例如藉由產 生第4圖中之資料410之快照430。當諸如節點B之接管節點啟動快照之產生時,元件504發出產生快照-資料庫-影像關係之命令。元件504將有關快照-資料庫影像對之資訊寫入磁碟中。在一個實施例中,每一群集節點具有儲存由該節點產生之快照-資料庫影像關係之專用位置,及未因多個節點之並行存取而發生衝突。
在一個實施例中,群集範圍內所知之磁碟經配置以儲存有關已建立之快照-資料庫影像關係的資訊。該種配置容許在發生多個故障之情況下一個以上之節點執行回復動作。該種配置亦允許以一分散方式執行日誌重放。
元件506重放已錄入日誌記錄之異動記錄至快照,例如在從第4圖中之日誌418第4圖中快照資料儲存器430中的快照表420之日誌項之日誌重放中。元件508估計日誌重放操作將消耗之時間量。
元件510重新接合或丟棄資料庫複本,例如藉由重新接合由節點A修正之資料410與由節點B修正之快照資料儲存器430,或丟棄快照資料儲存器430。相對於第6圖詳細描述重新接合及丟棄操作。
元件512在接管期間管理資源回復。例如,當節點 B可操作時,及正在執行快照表420上之日誌重放時,兩個節點A及節點B在群集中並行操作。
例如,當節點B可操作及已在快照表420上完成日 誌重放時,元件512確定是否以滿足或超過等候時段(亦稱為資源寬限時段),該時段在寬限時段結束時開始。如果節點B再次接收來自節點A之心跳,及決定節點A再次成為群集域中用於可靠訊息傳遞之一部分,則元件512啟動進一步回復步驟,例如啟動放棄快照資料儲存器430、結束節點A與節點B之並行,及容許節點A恢復在群集中之主要角色。 另一方面,如若在完成日誌重放操作之後,元件512決定節點A仍非群集域中進行可靠訊息傳遞之一部分,則元件512等待等候時段逾期,然後啟動進一步回復步驟。
在不對說明性實施例暗示任何限制之前提下,現在 描述一實施例之示例性操作以說明上述功能。節點A例如利用元件512在節點A中之同等物來決定在回復動作在節點B處開始之前的等候時段。節點A可將等候時段傳達至其他群集節點,同時,節點A仍可與群集中彼等其他節點通信。節點A中之資源管理器,例如第3圖中之資源管理器304或節點A上之資源管理器子元件,週期性地查詢由節點A在等候時段所使用之資料庫資源。或者,資料庫資源向資源管理器之API提供等候時段資訊。基於節點A自身狀態之節點A投影、節點A異動日誌檔案的長度,及利用日誌重放之最近或歷史速度值(該速度依據I/O速度及日誌項性質),節點A之資料庫資源發佈經估計之日誌重放歷時值。
節點A之回復管理器使用由資料庫資源發佈之值設 定所估計等候時段。節點A中之元件,例如第3圖中元件306208,及310之組合,例如在群集中使用同步協定來將所估計等候時段傳達至所有活動的群集成員。在一個示例性操作中,一旦所有活動群集成員確認了所估計等候時段,則此等其他成員以下列示例性方式使用所估計等候時段:諸如節點B之節點(該節點被視作資料庫之接管節點)將在快照上之日誌重放完成之後等候至少達等候時段之久,自回復動作之開始計時,至前進至回復動作中之下一步驟之前;諸如節點A之節點,該節點未能發送心跳達寬限時段與等候時段之和的歷時之久,或暫停I/O,或由失馭開關之操作而關閉。
在一個實施例中,等候時段是成功傳達至接管節點 及假定故障之節點之最終值。可靠的訊息傳遞層之隔離層同步協定規定:群集內任何給定節點可得知另一節點是否接收及確認通知。
由此,接管節點及偵測為故障之節點在避免重複資 源獲取方面的動作一致。在接管節點接管之前,偵測為故障之節點將中止。
一個實施例基於數個輸入因數調諧等候時段。一些 示例性因數包括歸因於開關重置及配置I/O超時之網路中斷之估計歷時。一般情況下,線程在長於該等因數之時段內不執行是異常的。例如,用於決定等候時段之示例性公式最少可耗費開關重置之預期時間,及可以諸如30分鐘之較大值超過等候時段。另一示例性公式可僅慮及日誌重放估計歷時。 上述因數、公式,及條件僅為實例,及並不暗示對說明性實施例之限制。一般技術者可基於本揭示案辨識諸多其他因數、公式,及條件,及在說明性實施例之範疇內涵蓋該等因數、公式,及條件。
請參看第6圖,此圖式繪示依據一說明性實施例之 日誌重放實例。日誌600繪示記錄在第4圖中日誌418中之日誌項。
日誌600是根據一實施例已開始接管之後,處於資 源群組回復之多個階段之資料庫日誌之片段。日誌600在資料庫之原始碟上表示上顯示日誌418的內容,日誌418第4圖中之節點A 402寫入,直至節點A終止對第4圖中儲存器416之存取。在僅作為實例,及並非暗示對說明性實施例之任何限制之前提下,日誌600以日誌序列號(Log Serial Number;LSN)項100105開始,指示對資料庫術語之檢查點操作之完成。例如,DB2資料庫之LSN 100105對應於同步緩衝池(DB2是國際商用機器公司在美國及其他國家的商標。)在日誌600之視圖602中,在節點A寫以LSN 10025開頭之異動記錄中,第4圖中之快照表420作為接管事件之開始而產生,及包含直至LSN 10025之日誌。在快照表420上之日誌重放操作記錄至LSN 10020,及丟棄LSN 10025,因為LSN 10025在快照表420上屬於未完成異動。
日誌600之視圖604顯示日誌600在資料庫已在節 點A上終止操作及節點B已獲得對資料儲存器410之原始碟上影像之存取之後的狀態。諸如第5圖中之元件506之一實 施例對比所作記錄之LSN,及發現LSN 105已經記錄在原始資料庫影像,亦即由節點A維持之資料儲存器410上。該實施例亦發現在LSN 105之後且在LSN 10020之前,日誌項已記錄在由節點B維持之快照表420上。
諸如元件506之實施例決定在LSN 10020之後的更 多日誌項或記錄在產生快照資料儲存器430之後已由節點A添加,及必須經重放/應用至快照表420,快照表420自LSN 10025開始直至結束,亦即LSN 10210。在日誌600之視圖606中,諸如元件506之實施例重放以LSN 10025開始直至結束(亦即LSN 10210)之日誌項,或將該等日誌項應用至快照表420。由此,該實施例確保快照表420上的日誌重放未丟失異動。
根據一實施例之快照420上之日誌重放與有時用於 資料庫實施之循環日誌同樣有效。如若日誌600為循環日誌,則未處理記錄之數目受不能超過之日誌長度的約束。諸如第5圖中元件510之一實施例,重新接合資料庫複本,亦即如節點A及節點B所分別修正之資料414及快照420。重新接合操作將在快照420上之日誌重放所獲得之資料庫影像變更至原始影像,亦即如節點A所修正之資料414。重新接合操作亦對循環日誌有效,只要循環日誌在檢查點之後對每一異動使用唯一LSN。
請參看第6A圖,此圖式繪示依據一說明性實施例之重新接合操作之示例性情況之方塊圖。第6A圖中繪示之重新接合操作可在第5圖中之元件510中實施。表652是在第4 中由節點A存取之資料414的實例,日誌654是在第4圖中由節點A寫入之異動日誌412之實例,日誌656是在第4圖中在快照產生期間由節點B產生之異動日誌418之實例,及表658是在第4圖中由節點B產生之快照表420之實例。 異動日誌654656中之陰影方塊是已經處理及由各自之節點記錄至其各自之表中的日誌項。日誌654中之方塊65426544,及6546是已經添加至日誌但尚未經重放之異動日誌項。
第6A圖所示,表652及異動日誌654在時間T 時取得快照。在節點B已估計異動日誌656之所有項之前,亦即日誌在第6A圖中所示之狀態,節點A不僅已添加更多項至異動日誌654,而亦將額外日誌項記錄至表652,遠多於節點B記錄至表658中之項。
由此,丟棄時間T之快照,及節點B處理異動日誌 654中尚未由節點A記錄至表652之彼等異動日誌項。或者,表652及異動日誌654取得新快照及節點B在新版本之表658上處理未記錄日誌項65426544,及6546
請參看第6B圖,此圖式繪示依據一說明性實施例之 重新接合操作的另一示例性情況之方塊圖。第6B圖中繪示之重新接合操作可在第5圖中之元件510中實施。表672是在第4圖中由節點A存取之資料414之實例,日誌674第4圖中由節點A寫入之異動日誌412之實例,日誌676是在快照產生期間在第4圖中由節點B產生之異動日誌418之實例,及表678是在第4圖中由節點B產生之快照表420之實例。由此,日誌674及表672形成資料儲存器410,及日誌 767及表678組成快照資料儲存器430。異動日誌674676中之陰影方塊是已經處理及已由其各自之節點記錄至其各自之表之日誌項。
第6B圖所示,表672及異動日誌674在時間T 處獲得快照,及節點B開始日誌重放。在節點B已處理異動日誌676中所有項之前,節點A已添加更多日誌項至異動日誌674,但當節點B對快照中存在之異動日誌項之處理達到結束時,節點A之內部表已處理之異動日誌項遠不及節點B處理之多。在第6B圖中,在快照產生之前便已添加日誌項6742,由此,日誌項6742包含在日誌676中。在快照產生之後,節點A已添加異動日誌項之額外次序,該次序以由6744所指之項開始,及以6746結束。當節點B已處理快照中存在於日誌676中之所有異動日誌項時,日誌項6742尚未由節點A處理,及節點A亦已添加額外項之次序,該次序以項6744開始及以項6746結束。
節點B讀取額外日誌項(例如由節點A添加至異動 日誌674之以項6742開始及以項6744結束之日誌項),及在已知為日誌傳送之過程中將該等項拷貝至異動日誌676之末尾。當來自異動日誌674之所有額外項皆已添加至異動日誌676中時,節點B在日誌676及表678上執行日誌重放,同時,資料410430之間存在快照關係。
然後,一實施例執行將已經日誌重放之表678逆向 拷貝返回至表672,及亦將異動日誌676逆向拷貝返回至日誌674。此舉結果類似於節點A對資料儲存器410執行日誌重 放。一般而言,快照之逆向拷貝按方塊圖順序將快照之目標裝置(快照資料儲存器430)的資料拷貝返回至來源(資料儲存器410),及此逆向拷貝通常在對目標裝置進行變更之後執行。
或者,另一實施例在日誌傳送之後執行逆向拷貝, 然後在表672上執行日誌重放。重新接合操作之此替代性方法類似於在節點A上執行日誌重放操作,亦獲得相同結果。 第6A圖第6B圖描述針對節點A所維持之異動日誌之不同狀態,重新接合快照影像資料與節點A所維持之資料時所要執行之動作。熟習該項技術者將瞭解,所概述之技術確保快照與由節點A維持之資料之重新接合保留由節點A在全部情況下添加至異動日誌中的所有項。在快照上之日誌重放、項之日誌傳送,與快照影像之逆向拷貝之組合所獲得之資料影像中不會丟失任何異動。快照逆向拷貝及異動日誌重放之特性組合(「重複歷史特性」)確保以所述方式獲取之資料庫影像與藉由在節點A上執行日誌重放所獲得之資料庫影像相同。
請參看第7圖,此圖式繪示依據一說明性實施例之 推測性回復之示例性過程流程圖,該推測性回復利用群集資料庫中之儲存快照。過程700可在第5圖中之接管應用程式502中實施。
在與根據一實施例之資料庫執行個體結合操作之情 況下,接管應用程式在開始時偵測資料庫節點故障,例如託管當前有效之資料庫執行個體之節點(託管主資料庫執行個 體之主資料庫節點)(步驟702)。接管應用程式產生資料庫資料之快照,同時保持主資料庫節點對資料庫資料之連接性(步驟704)。
接管應用程式應用於由主資料庫節點例如在日誌重 放操作中製作之日誌項快照(步驟706)。在一個實施例中,接管應用程式慮及在步驟706中產生快照之前所製作之日誌項。
接管應用程式慮及主資料庫節點狀態及日誌重放狀 態(步驟710)。在一個實施例中,如若主資料庫節點再次回應,及日誌重放尚未完成(步驟710之「A」路徑),則接管應用程式放棄日誌重放及恢復來自主資料庫節點之資料庫服務(步驟712)。
在一個實施例中,如若主資料庫節點再次回應,及 日誌重放已完成(步驟710之「B」路徑),則在步驟712中,接管應用程式放棄日誌重放及恢復來自主資料庫節點之資料庫服務。在另一實施例中,如若主資料庫節點再次回應,及日誌重放已完成(步驟710之「B」路徑),則接管應用程式自主資料庫節點進行接管(步驟714)。在一個實施例中,如若主資料庫節點在日誌重放已完成時仍未回應(步驟710之「C」路徑),則在步驟714中,接管應用程式自主資料庫節點進行接管。然後,接管應用程式結束過程700
放棄在快照上之日誌重放還是自主資料庫節點接管 是由接管應用程式慮及數個因素之組合後所作出的決定。相對於第6圖描述一些示例性因素。第9圖中繪示另一示例性 因素。
該等示例性因素並非旨在限制說明性實施例。該項 技術之一般技術者將能夠設想額外因素以便決定是自主資料庫節點接管還是放棄已應用日誌之快照,及說明性實施例之範疇涵蓋該等額外因素。
請參看第8圖,此圖式繪示依據一說明性實施例將 資料庫並行性傳達至群集之示例性過程流程圖。過程800可在第5圖中之接管應用程式502中實施。
在與根據一實施例之資料庫執行個體結合操作之情 況下,接管應用程式在開始時自資料庫異動日誌讀取日誌項,例如第6圖中之日誌500(步驟802)。接管應用程式估計日誌重放預期將針對日誌項消耗之時間量(步驟804)。在一個實施例中,查詢資料庫及傳達日誌重放歷時估計值之接管應用程式週期性地在節點上運行,資料庫在該節點上為有效。已經成功傳達至所有節點之最後估計值在多階段協定中得以確定,該協定涉及所有節點對接收到更新之確認。由此,擁有資料庫及發送新估計值之廣播之節點將在發生網路分區之情況下得知是否所有節點皆已接收到更新。如若並非所有節點皆已確認並行時期之估計時間,則該節點將不更新其自身之等候時段值。
接管應用程式將並行資料庫執行個體之存在之活動傳達至群集(步驟806)。然後,接管應用程式結束過程800
請參看第9圖,此圖式繪示依據一說明性實施例之接管決定之示例性過程流程圖。過程900可在第5圖中之接 管應用程式502中實施。
在與根據一實施例之資料庫執行個體結合操作之情 況下,接管應用程式在開始時偵測到,在先前偵測到主資料庫節點中之故障之後,主資料庫節點已再次有回應(步驟902)。接管應用程式偵測到日誌重放操作已在快照上完成至日誌中某一點(步驟904)。例如,在一個實施例中,日誌中之該點為快照產生之前的日誌項。在另一實施例中,日誌中之該點為在快照產生之前相距一些時間的日誌項。
接管應用程式評估一或更多個因素之組合以決定是 否自主資料庫節點進行接管。例如及不暗示對實施例之限制,在一個實施例中,接管應用程式根據一些性能臨限值量度來決定在主資料庫節點再次變得可回應之後,該主資料庫節點之性能是否可接受(作為一示例性因素)(步驟906)。
如若性能可接受(步驟906之「是」路徑),則接 管應用程式丟棄已應用日誌之快照,從而容許主資料庫節點保持主資料庫節點,及清除群集中之接管(步驟908)。然後,接管應用程式結束過程900
如若可回應之主資料庫節點之性能不可接受(步驟 906之「否」路徑),則接管應用程式開始接管動作以自再次可回應之當前主資料庫節點接管主資料庫伺服器角色(步驟910)。接管應用程式例如以相對於第6A圖第6B圖所述之方式使已應用日誌之快照與由當前主資料庫節點正在使用之資料庫影像資料重新接合(步驟912)。
接管應用程式將接管動作傳達至群集(步驟914)。 接管應用程式完成接管動作(步驟916)。然後,接管應用程式結束過程900
第10A圖第10B圖是連續圖式之兩個部分,第10B 接續第10A圖。請參看第10A圖,此圖式繪示依據一說明性實施例之用於推測性回復之示例性高可用性實施之示例性操作順序,該推測性回復利用群集資料庫中之儲存快照。
請參看第10B圖,此圖式繪示依據一說明性實施例 之用於推測性回復之示例性高可用性實施之示例性操作順序,該推測性回復利用群集資料庫中之儲存快照。次序1000-1050由接管應用程式502在所繪示之群集節點中一或更多者中之示例性實施而執行。
三個示例性節點,亦即節點A、節點B,及節點C 經圖示為群集在一起以用於服務資料庫。節點A繪示為處於次序1000開始處之當前主資料庫節點。圖示中使用由於遺漏來自主資料庫節點之心跳而導致之示例性假故障。
僅在節點本端執行之動作在該節點之行中在該節點 下方用底線標註。在所繪示之群集節點子集之間藉由分佈式協定使用某些協調之分佈式動作未用底線標註,及跨越行線而經繪示。更多分佈式動作或群集範圍之事件由跨越行線之水平線繪示。例如,一連串分佈式動作可能以由水平線繪示之一分佈式動作開始及結束。當對每一分區之群集動作在沒有協調之情況下發生時,由垂直虛線指示分區狀態。
次序1000-1050圖示依據一說明性實施例之由高可用性群集管理之資料庫。資料庫是資源群組rg_1之一部分。 次序1000-1050顯示在導致所繪示故障之網路分區情況之後,資源群組rg_1回復中涉及之三個示例性節點之群集特性。應注意,群集域可能包含任何數目之額外節點,該等節點在繪示之資源回復中並非任何有效角色。次序1000-1050繪示分佈式群集處理中之步驟,例如域合併協定、狀態廣播,及對rg_1及其資源之管理的分佈式決策(投票)。rg_1之狀態包括ONLINE,亦即rg_1之資源經配置在規定節點上。「rg_1@Node-C:ONLINE」指示此廣播:rg_1在節點C上之狀態為「ONLINE」。其他狀態包括:OFFLINE,亦即rg_1之資源未配置在規定節點上;ACQUIRE,亦即rg_1之資源處於正在由規定節點上獲得之過程中;SAFE_CONCURRENT,亦即對rg_1之獲得動作中當rg_1在別處可能處於ONLINE狀態之時可安全執行之一部分,例如快照上之異動日誌重放;SAFE_CONCURRENT_COMPLETE,亦即當處於SAFE_CONCURRENT狀態時待執行之動作已完成。
當資源群組rg_1在節點A上為線上時,發生網路分區,使得節點A無法與其他節點通信。針對關於網路分區之重新接合之日誌重放終止之不同時序情境描述rg_1之回復動作。
次序1000中繪示兩個示例性情況。頂部操作組9-10中繪示之第一情況是在回應於正在進行日誌重放時再次接收到來自節點A之心跳而執行之域合併協定期間採取之動作之一般描述。底部操作組9-10中繪示之第二情況顯示在域合併協定期間採取之決策在分區重新恢復之後必然使rg_1留在節 點A上之情況。
次序1050中繪示兩個示例性情況。頂部操作組9-10 中繪示第一情況,在此情況下,節點A在日誌重放正在進行時變得可回應,但卻由於節點A之性能而發生實際接管。節點B執行日誌重放及隨後繼續進行rg_1資源之獲取。底部操作組中繪示之第二情況從步驟6開始,此情況描述此情境:由於網路分區而未接收到來自節點A之心跳,及在節點B執行日誌重放之同時該分區未重新恢復。在完成日誌重放之後,剩餘群集節點,亦即節點B及節點C交換性能資料以決定此後託管rg_1之最佳節點。節點C經決定為最佳節點,及獲取rg_1之資源(步驟10)。資源之獲得涉及在託管資料庫之磁碟上設定儲量,此舉導致節點A失去對該等磁碟之存取。回應於丟失磁碟存取,可操作之節點A使剩餘資源離線。
該等圖式中之流程圖及方塊圖圖示根據本發明多個 實施例之系統、方法,及電腦程式產品之可能實施的架構、功能,及操作。就此而言,流程圖或方塊圖中每一方塊可表示一模組、區段,或碼部分,上述各者包括一或更多個用於實施規定邏輯功能之可執行指令。亦應注意,在一些替代性實施方式中,方塊中標註之功能可不以圖式中標註之次序發生。例如,連續顯示之兩個方塊在實際上可大體同時執行,或有時可依據所涉及之功能而以逆向次序執行方塊。亦將注意,方塊圖及/或流程圖圖示之每一方塊及方塊圖及/或流程圖圖示之方塊組合可由執行規定功能或操作之基於硬體之專用系統,或專用硬體及電腦指令組合實施。
由此,說明性實施例中提供由電腦實施之方法、系 統,及電腦程式產品以用於利用群集資料庫中之儲存快照之推測性回復。一實施例容許主資料庫節點具有可調諧或可變更之推測機會以在比心跳訊息之寬限時段更長之時段內自一故障中回復。在推測性機會時段期間,接管節點處理自日誌至資料庫資料快照上之資料庫異動,該快照在故障之後取得。一實施例在主資料庫節點在推測性機會時段內自故障中回復之情況下容許該節點恢復服務資料庫。一實施例在主資料庫節點未能在推測性機會時段內自故障中回復,或未回復至所需性能水平之情況下,使用已應用日誌之快照接管主資料庫節點角色。
如熟習該項技術者將瞭解,本發明之態樣可體現為 系統、方法,或電腦程式產品。由此,本發明之態樣可採用以下形式:全部為硬體之實施例、全部為軟體之實施例(包括韌體、常駐軟體、微碼,等),或結合本文中一般可全部被稱作「電路」、「模組」,或「系統」之軟體及硬體態樣之實施例。此外,本發明之態樣可採取以下形式:體現在一或更多個電腦可讀取儲存裝置或電腦可讀取媒體中之電腦程式產品,該等電腦可讀取儲存裝置或電腦可讀取媒體上體現有電腦可讀取程式碼。
可利用一或更多個等電腦可讀取儲存裝置或電腦可 讀取媒體之任何組合。電腦可讀取媒體可為電腦可讀取訊號媒體或電腦可讀取儲存媒體。電腦可讀取儲存裝置可為例如但不限定於電子、磁性、光學、電磁、紅外線,或半導體系 統、設備,或裝置,或前述各者之任何適合組合。更具體之電腦可讀取儲存裝置實例(非詳盡列表)將包括以下內容:具有一或更多根線之電連接裝置、可攜式電腦磁片、硬碟、隨機存取記憶體(random access memory;RAM)、唯讀記憶體(read-only memory;ROM)、可抹除可程式化唯讀記憶體(erasable programmable read-only memory;EPROM或快閃記憶體)、光纖、可攜式緊密光碟唯讀記憶體(compact disc read-only memory;CD-ROM)、光學儲存裝置、磁性儲存裝置,或前述各者之任何適合組合。在此文檔之上下文中,電腦可讀取儲存裝置可為任何有形裝置或媒體,該裝置或媒體可包含或儲存由指令執行系統、設備,或裝置使用,或與該系統、設備,或裝置結合使用之程式。
在電腦可讀取儲存裝置或電腦可讀取媒體上體現之 程式碼可藉由使用適當之媒體而經傳輸,該等媒體包括但不限於無線、纜線、光纜、射頻等,或前述各者之任何適合組合。
用於執行本發明態樣之操作的電腦程式碼可以一或 更多個程式化語言之任何組合撰寫,包括物件導向程式化語言,例如Java、Smalltalk、C++或類似語言,及習用之程序程式化語言,例如「C」程式化語言或類似之程式化語言。程式碼可完全在使用者電腦上執行,部分在使用者電腦上執行,作為單獨套裝軟體部分在使用者電腦上執行及部分在遠端電腦上執行,或完全在遠端電腦或伺服器上執行。在後者情境下,遠端電腦可經由任何類型之網路連接至使用者電腦,該 等網路包括區域網路(local area network;LAN)或廣域網路(wide area network;WAN),或可與外部電腦連接(例如使用網際網路服務提供者經由網際網路連接)。
本文中藉由參考根據本發明實施例之方法、設備(系 統),及電腦程式產品的流程圖圖示及/或方塊圖來描述本發明態樣。將理解,流程圖圖示及/或方塊圖中每一方塊及流程圖圖示及/或方塊圖中之方塊組合可由電腦程式指令實施。可向一或更多個通用電腦、專用電腦,或用以生產機器之其他可程式化資料處理設備之一或更多個處理器提供該等電腦程式指令,以便該等指令產生用於實施流程圖及/或方塊圖中方塊或方塊組合中規定之功能/操作之手段,該等指令經由電腦或其他可程式化資料處理設備之一或更多個處理器執行。
該等電腦程式指令亦可儲存在一或更多個電腦可讀 取儲存裝置或電腦可讀取媒體中,該等裝置或媒體可導引一或更多個電腦、一或更多個其他可程式化資料處理設備,或一或更多個其他裝置以特定方式操作,使得儲存在一或更多個電腦可讀取儲存裝置或電腦可讀取媒體中之指令產生製品,該製品包括實施流程圖及/或方塊圖中方塊或方塊組合中規定之功能/操作的指令。
電腦程式指令亦可載入至一或更多個電腦、一或更 多個其他可程式化資料處理設備,或一或更多個其他裝置,以使得一系列可操作步驟在一或更多個電腦、一或更多個其他可程式化資料處理設備,或一或更多個其他裝置上得以執行,以產生電腦實施過程,以便在一或更多個電腦、一或更 多個其他可程式化資料處理設備,或一或更多個其他裝置上執行之指令提供用於實施流程圖及/或方塊圖中方塊或方塊組合中規定之功能/操作的過程。
本文中所使用之術語僅以描述特定實施例為目的, 及並非旨在限制本發明。如本文中所使用,除非上下文另作明確指示,否則單數形式之「一(a/an)」及「該」亦旨在包括複數形式。將進一步理解,術語「包括(comprises/comprising)」在被說明書中使用時指定所述特徵、整數、步驟、操作、元素,及/或元件之存在,但並不排除一或更多個其他特徵、整數、步驟、操作、元素、元件,及/或上述各者之群組之存在或增添。
對應結構、材料、操作,及下文中申請專利範圍中 之所有手段或步驟加功能元素之同等物旨在包括用於結合本文具體所主張之所主張其他元件執行功能之任何結構、材料,或操作。本發明之描述已以圖示及描述為目的進行展示,但並非旨在詳盡說明或限定於已揭示之形式之本發明。在不脫離本發明之範疇及精神之前提下,許多潤飾及變化將對一般技術者顯而易見。實施例經選擇及描述以便最佳地解釋本發明之原理及實際應用,及使得一般技術者以理解本發明中具有各種潤飾、適合於所設想之特定用途之各種實施例。
100‧‧‧資料處理環境
102‧‧‧網路
104‧‧‧伺服器
105‧‧‧資料庫執行個體
106‧‧‧伺服器
107‧‧‧資料庫執行個體
108‧‧‧儲存裝置
109‧‧‧資料
110‧‧‧客戶端
111‧‧‧日誌
112‧‧‧客戶端
114‧‧‧客戶端
115‧‧‧接管應用程式
117‧‧‧接管應用程式

Claims (20)

  1. 一種用於在一資料庫中回復之方法,該方法包括以下步驟:偵測一第一計算節點中的一故障,該第一計算節點服務一計算節點群集中之該資料庫;利用一處理器及一記憶體產生該資料庫之資料之一快照;使用該處理器及該記憶體應用一日誌項子集至該快照,該應用修正該快照以產生一修正快照;保持該第一計算節點對該資料庫之該資料之一存取;及在該應用期間及已經過一寬限時段之後回應於接收來自該第一計算節點之一活動訊號,中止該應用,以便該第一計算節點可繼續服務該群集中的該資料庫。
  2. 如請求項1所述之方法,該方法進一步包括以下步驟:在該應用期間及在已經過該活動訊號之該寬限時段之後,接收來自該第一計算節點之該活動訊號;決定該第一計算節點之一性能位準;回應於低於一臨限值之該性能位準完成該應用;及利用該快照接管來自該第一計算節點之該資料庫之該服務,以便該第一計算節點不能服務該群集中之該資料庫。
  3. 如請求項2所述之方法,該方法進一步包括以下步驟: 結合該修正快照與該資料庫之一修正資料,其中該資料庫之該修正資料由該第一計算節點在該快照之該產生之後仍繼續修正該資料庫之該資料而產生。
  4. 如請求項3所述之方法,其中該結合包括一逆向拷貝操作。
  5. 如請求項1所述之方法,該方法進一步包括以下步驟:將一等候時段傳達至一群集管理基礎架構,在該等候時段內容許該保持。
  6. 如請求項5所述之方法,其中該等候時段是一時間估計值,應用該日誌項子集時需要該時間估計值,及其中該等候時段在該應用期間是可變更的。
  7. 如請求項1所述之方法,其中該保持包括以下步驟:容許該第一計算節點在該應用期間繼續操縱該資料庫之該資料。
  8. 如請求項1所述之方法,其中該產生及應用發生在該計算節點群集中一第二計算節點中,及其中該第二計算節點及該第一計算節點同時服務來自該群集之該資料庫達一等候時段之久。
  9. 如請求項1所述之方法,該應用包括以下步驟:選擇該日誌項子集,其中該日誌項包括由該第一計算節點處理之異動資訊,此處理在一檢查點操作之後,及以下兩者中之一者:(i)直到該故障之一時間;及(ii)在該故障之一時間之前。
  10. 如請求項1所述之方法,該產生包括以下步驟:在該偵測之後,在一儲存子系統製作該資料之一複本,其中該儲存子系統用於儲存該資料庫之該資料,其中該複本之該製作包括在該儲存子系統上之一資料複製,以便存取資料之一變更追蹤及一歧義消除在一儲存層上得以解決,該儲存層包括該儲存子系統。
  11. 如請求項10所述之方法,其中該製作包括執行一FlashCopy操作,及其中該複本使用一寫時拷貝模式。
  12. 如請求項1所述之方法,其中該故障包括在該寬限時段內未能接收來自該第一計算節點之該活動訊號。
  13. 如請求項12所述之方法,其中該活動訊號是一心跳訊息。
  14. 一種電腦可用程式產品,包括一電腦可用儲存裝置,該裝置包括電腦可用碼,該電腦可用碼用於在一資料庫中進行回復,該電腦可用碼包括: 電腦可用碼,用於偵測一第一計算節點中之一故障,該第一計算節點為一計算節點群集中之該資料庫服務;電腦可用碼,用於利用一處理器及一記憶體產生該資料庫之資料之一快照;電腦可用碼,用於使用該處理器及該記憶體應用一日誌項子集至該快照,該應用修正該快照以產生一修正快照;電腦可用碼,用於保持該第一計算節點對該資料庫之該資料之一存取;及電腦可用碼,用於在該應用期間及在經過一寬限時段之後回應於接收來自該第一計算節點之一活動訊號而中止該應用,使得該第一計算節點可繼續為該群集中之該資料庫服務。
  15. 如請求項14所述之電腦可用程式產品,進一步包括:電腦可用碼,用於在該應用期間及在已經過該活動訊號之該寬限時段之後,接收來自該第一計算節點之該活動訊號;電腦可用碼,用於決定該第一計算節點之一性能位準;電腦可用碼,用於回應於開始低於一臨限值之該性能位準而完成該應用;及電腦可用碼,用於利用該快照接管來自該第一計算節點之該資料庫之該服務,以便該第一計算節點不能服務該群集中之該資料庫。
  16. 如請求項15所述之電腦可用程式產品,進一步包括: 電腦可用碼,用於結合該修正快照與該資料庫之一修正資料,其中該資料庫之該修正資料由該第一計算節點在該快照之該產生之後仍繼續修正該資料庫之該資料而產生。
  17. 如請求項16所述之電腦可用程式產品,其中該結合包括一逆向拷貝操作。
  18. 如請求項13所述之電腦可用程式產品,其中該電腦可用碼儲存在一資料處理系統中之一電腦可讀取儲存媒體中,及其中該電腦可用碼自一遠端資料處理系統在一網路上傳遞。
  19. 如請求項13所述之電腦可用程式產品,其中該電腦可用碼保存在一伺服器資料處理系統中之一電腦可讀取儲存媒體中,及其中該電腦可用碼在一網路上經下載至一遠端資料處理系統,以便在與該遠端資料處理系統關連之一電腦可讀取儲存媒體中使用。
  20. 一種資料處理系統,用於在一資料庫內進行回復,該資料處理系統包括:一儲存裝置,該儲存裝置包括一儲存媒體,其中該儲存裝置儲存電腦可用程式碼;及一處理器,其中該處理器執行該電腦可用程式碼,及其中該電腦可用程式碼包括: 電腦可用碼,用於偵測一第一計算節點中之一故障,該第一計算節點為一計算節點群集中之該資料庫服務;電腦可用碼,用於利用一處理器及一記憶體產生該資料庫之資料之一快照;電腦可用碼,用於使用該處理器及該記憶體應用一日誌項子集至該快照,該應用修正該快照以產生一修正快照;電腦可用碼,用於保持該第一計算節點對該資料庫之該資料之一存取;及電腦可用碼,用於在該應用期間及在經過一寬限時段之後回應於接收來自該第一計算節點之一活動訊號而中止該應用,使得該第一計算節點可繼續為該群集中之該資料庫服務。
TW103118650A 2013-07-11 2014-05-28 用於資料庫中進行回復的方法、電腦可用程式產品、與資料處理系統 TWI625621B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/940,013 US9098453B2 (en) 2013-07-11 2013-07-11 Speculative recovery using storage snapshot in a clustered database
US13/940,013 2013-07-11

Publications (2)

Publication Number Publication Date
TW201514684A true TW201514684A (zh) 2015-04-16
TWI625621B TWI625621B (zh) 2018-06-01

Family

ID=52277960

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103118650A TWI625621B (zh) 2013-07-11 2014-05-28 用於資料庫中進行回復的方法、電腦可用程式產品、與資料處理系統

Country Status (3)

Country Link
US (2) US9098453B2 (zh)
TW (1) TWI625621B (zh)
WO (1) WO2015003877A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI701567B (zh) * 2016-07-04 2020-08-11 香港商阿里巴巴集團服務有限公司 針對資料庫的資料修改請求處理方法和裝置
TWI710897B (zh) * 2015-05-14 2020-11-21 香港商阿里巴巴集團服務有限公司 資料處理方法和流計算系統
TWI740885B (zh) * 2017-01-23 2021-10-01 香港商阿里巴巴集團服務有限公司 分布式儲存系統的服務節點切換方法及裝置

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9201738B2 (en) * 2013-08-14 2015-12-01 Globalfoundries Inc. Method, computer readable storage medium and computer system for obtaining snapshots of data
US9135259B2 (en) * 2013-11-06 2015-09-15 Linkedin Corporation Multi-tenancy storage node
US9875162B1 (en) 2013-12-16 2018-01-23 Emc Corporation Recovering corrupt storage systems
US10157014B1 (en) 2013-12-16 2018-12-18 EMC IP Holding Company LLC Maintaining backup snapshots on deduplicated storage using continuous replication
US10255137B1 (en) * 2013-12-16 2019-04-09 EMC IP Holding Company LLC Point-in-time recovery on deduplicated storage
US10860237B2 (en) 2014-06-24 2020-12-08 Oracle International Corporation Storage integrated snapshot cloning for database
US10387447B2 (en) * 2014-09-25 2019-08-20 Oracle International Corporation Database snapshots
US10346362B2 (en) 2014-09-26 2019-07-09 Oracle International Corporation Sparse file access
US9606879B2 (en) * 2014-09-29 2017-03-28 Nxp Usa, Inc. Multi-partition networking device and method therefor
CN104679907A (zh) * 2015-03-24 2015-06-03 新余兴邦信息产业有限公司 高可用高性能数据库集群的实现方法及系统
US11068437B2 (en) 2015-10-23 2021-07-20 Oracle Interntional Corporation Periodic snapshots of a pluggable database in a container database
US10002004B2 (en) * 2016-05-26 2018-06-19 International Business Machines Corporation Stream computing application shutdown and restart without data loss
CN106407042B (zh) * 2016-09-06 2019-04-23 深圳市华成峰数据技术有限公司 一种基于开源数据库的跨数据中心容灾解决系统及方法
US9858151B1 (en) 2016-10-03 2018-01-02 International Business Machines Corporation Replaying processing of a restarted application
US10769040B2 (en) * 2016-11-21 2020-09-08 Sap Se Logical equivalent replication with snapshot based fallback of database systems
CN106603635B (zh) * 2016-11-29 2019-05-24 北京科技大学 一种平台数据异地备份方法
US10305970B2 (en) * 2016-12-13 2019-05-28 International Business Machines Corporation Self-recoverable multitenant distributed clustered systems
KR101914347B1 (ko) * 2016-12-23 2018-11-01 부산대학교 산학협력단 대용량 이벤트 로그 재생 방법 및 대용량 이벤트 로그 재생 시스템
US11232000B1 (en) * 2017-02-24 2022-01-25 Amazon Technologies, Inc. Moving database partitions from replica nodes
US10423609B1 (en) * 2017-03-29 2019-09-24 Amazon Technologies, Inc. Consistent snapshot points in a distributed storage service
US10402389B2 (en) * 2017-04-25 2019-09-03 Sap Se Automatic adaptation of parameters controlling database savepoints
CN108023775A (zh) * 2017-12-07 2018-05-11 湖北三新文化传媒有限公司 高可用集群架构系统及方法
US11082538B2 (en) * 2018-06-27 2021-08-03 Datastax, Inc. Off node data compaction
CN110851192A (zh) * 2018-07-27 2020-02-28 北京京东尚科信息技术有限公司 一种响应降级开关配置的方法和装置
US11068460B2 (en) 2018-08-06 2021-07-20 Oracle International Corporation Automated real-time index management
CN109117312B (zh) * 2018-08-23 2022-03-01 北京小米智能科技有限公司 数据恢复方法及装置
US11481285B1 (en) * 2019-11-19 2022-10-25 Cdw Llc Selective database data rollback
US11604761B2 (en) 2020-01-30 2023-03-14 Rubrik, Inc. Utilizing a tablespace to export from a foreign database recovery environment
US11609828B2 (en) 2020-01-30 2023-03-21 Rubrik, Inc. Utilizing a tablespace to export to a native database recovery environment
US11467925B2 (en) * 2020-01-30 2022-10-11 Rubrik, Inc. Exporting a database to a native database recovery environment
US11360860B2 (en) * 2020-01-30 2022-06-14 Rubrik, Inc. Exporting a database from a foreign database recovery environment
AU2020472953B2 (en) 2020-10-21 2024-02-15 Paypal, Inc. Access consistency in high-availability databases
US11416330B2 (en) * 2020-10-29 2022-08-16 EMC IP Holding Company LLC Lifecycle of handling faults in next generation storage systems
TWI796943B (zh) * 2022-01-27 2023-03-21 凌群電腦股份有限公司 利用緩存鏡射資料實現高效運算之處理系統

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7246256B2 (en) 2004-01-20 2007-07-17 International Business Machines Corporation Managing failover of J2EE compliant middleware in a high availability system
CN1784676B (zh) * 2004-02-25 2012-05-30 微软公司 数据库数据恢复系统和方法
US7434087B1 (en) 2004-05-21 2008-10-07 Sun Microsystems, Inc. Graceful failover using augmented stubs
US7930684B2 (en) 2005-10-12 2011-04-19 Symantec Operating Corporation System and method for logging and replaying asynchronous events
KR100956638B1 (ko) 2007-12-11 2010-05-11 한국전자통신연구원 대규모 클러스터 모니터링 시스템과 그의 자동 구축 및복구 방법
US8306951B2 (en) 2009-09-18 2012-11-06 Oracle International Corporation Automated integrated high availability of the in-memory database cache and the backend enterprise database
KR100926098B1 (ko) * 2008-11-18 2009-11-11 주식회사 네오플 스냅샷 데이터베이스를 이용한 정보 복구 방법 및 장치
CN101436207B (zh) * 2008-12-16 2011-01-19 浪潮通信信息系统有限公司 一种基于日志快照的数据恢复和同步方法
US8266479B2 (en) * 2009-04-06 2012-09-11 Oracle International Corporation Process activeness check
US20140068040A1 (en) * 2012-09-04 2014-03-06 Bank Of America Corporation System for Enabling Server Maintenance Using Snapshots

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI710897B (zh) * 2015-05-14 2020-11-21 香港商阿里巴巴集團服務有限公司 資料處理方法和流計算系統
TWI701567B (zh) * 2016-07-04 2020-08-11 香港商阿里巴巴集團服務有限公司 針對資料庫的資料修改請求處理方法和裝置
US11106695B2 (en) 2016-07-04 2021-08-31 Ant Financial (Hang Zhou) Network Technology Co., Ltd. Database data modification request processing
US11132379B2 (en) 2016-07-04 2021-09-28 Ant Financial (Hang Zhou) Network Technology Co., Ltd. Database data modification request processing
TWI740885B (zh) * 2017-01-23 2021-10-01 香港商阿里巴巴集團服務有限公司 分布式儲存系統的服務節點切換方法及裝置

Also Published As

Publication number Publication date
US9098453B2 (en) 2015-08-04
WO2015003877A3 (en) 2015-04-16
WO2015003877A2 (en) 2015-01-15
US20150019494A1 (en) 2015-01-15
TWI625621B (zh) 2018-06-01
US20150019909A1 (en) 2015-01-15
US9098454B2 (en) 2015-08-04

Similar Documents

Publication Publication Date Title
TWI625621B (zh) 用於資料庫中進行回復的方法、電腦可用程式產品、與資料處理系統
US11675520B2 (en) Application replication among storage systems synchronously replicating a dataset
US11716385B2 (en) Utilizing cloud-based storage systems to support synchronous replication of a dataset
US11086555B1 (en) Synchronously replicating datasets
US11720456B2 (en) Automatic configuration of a recovery service
JP6688835B2 (ja) マルチアイテムトランザクションサポートを有するマルチデータベースログ
Scales et al. The design of a practical system for fault-tolerant virtual machines
US10831741B2 (en) Log-shipping data replication with early log record fetching
JP2008059583A (ja) クラスタ・システムならびにクラスタ・システム内でレプリカをバックアップする方法およびプログラム製品
JP2015507229A (ja) サービスの第2場所でのジョブの再生
US10223223B2 (en) Preventing non-detectable data loss during site switchover
US8682852B1 (en) Asymmetric asynchronous mirroring for high availability
CN105493474A (zh) 用于支持用于同步分布式数据网格中的数据的分区级别日志的系统及方法
US20090063486A1 (en) Data replication using a shared resource
US9367413B2 (en) Detecting data loss during site switchover
US20230353635A1 (en) Replication Utilizing Cloud-Based Storage Systems
WO2022159157A1 (en) Application replication among storage systems synchronously replicating a dataset
Rizzo et al. Database Mirroring
Walters et al. High Availability

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees