鬼佬大哥大
  • / 19
  • 下載費用:30 金幣  

同步復制環境中的自動模式切換.pdf

摘要
申請專利號:

CN201410771823.4

申請日:

2014.12.12

公開號:

CN105279210A

公開日:

2016.01.27

當前法律狀態:

實審

有效性:

審中

法律詳情: 實質審查的生效IPC(主分類):G06F 17/30申請日:20141212|||公開
IPC分類號: G06F17/30 主分類號: G06F17/30
申請人: 賽貝斯股份有限公司
發明人: C.H.蘭克; R.奎凱勒; E.洛拉-加勒多
地址: 美國加利福尼亞州
優先權: 14290187.5 2014.06.26 EP; 14/462,870 2014.08.19 US
專利代理機構: 北京市柳沈律師事務所11105 代理人: 邵亞麗
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201410771823.4

授權公告號:

|||

法律狀態公告日:

2017.04.12|||2016.01.27

法律狀態類型:

實質審查的生效|||公開

摘要

在一些示例中公開了一種數據庫復制的方法,該方法包括:在關系數據庫管理系統(RDMS)處,確定第一復制模式;識別觸發事件;確定觸發事件指示第一復制模式的改變;響應于確定觸發事件指示第一復制模式的改變,確定第二復制模式,第二復制模式是與第一復制模式不同的復制模式;識別由一個或多個數據庫任務作出的數據庫改變;以及根據第二復制模式將數據庫改變復制到外部復制組件。

權利要求書

1.一種數據庫復制的方法,該方法包括:
在關系數據庫管理系統(RDMS)處,利用一個或多個計算機處理器:
確定第一復制模式;
識別觸發事件;
確定所述觸發事件指示所述第一復制模式的改變;
響應于確定所述觸發事件指示所述第一復制模式的改變,確定第二復制
模式,所述第二復制模式是與所述第一復制模式不同的復制模式;
識別由一個或多個數據庫任務作出的數據庫改變;以及
根據所述第二復制模式將所述數據庫改變復制到外部復制組件。
2.如權利要求1所述的方法,其中,所述第一復制模式是異步復制模
式,并且所述觸發事件是與所述外部復制組件連接的網絡的改善。
3.如權利要求1所述的方法,其中,所述方法還包括:
在識別所述觸發事件之前,識別由所述一個或多個數據庫任務作出的先
前數據庫改變;以及
根據所述第一復制模式將所述先前數據庫改變復制到所述外部復制組
件。
4.如權利要求3所述的方法,其中,所述第一復制模式是異步模式,
所述第二復制模式是同步模式,并且所述觸發事件是到達數據庫改變日志的
末尾。
5.如權利要求3所述的方法,其中,所述第一復制模式是同步模式,
所述第二復制模式是異步模式,并且所述觸發事件是被設定來等待對所述先
前數據庫改變的復制的確認的定時器的期滿。
6.如權利要求3所述的方法,其中,所述第一復制模式是同步模式,
所述第二復制模式是異步模式,并且所述觸發事件是復制代理的關機。
7.如權利要求1所述的方法,其中,所述觸發事件是響應于改變所述
復制模式的用戶請求的。
8.一種關系數據庫管理系統(RDMS),包括:
一個或多個計算機處理器;以及
復制代理,該復制代理被所述一個或多個計算機處理器執行來:
確定第一復制模式;
識別觸發事件;
確定所述觸發事件指示所述第一復制模式的改變;
響應于確定所述觸發事件指示所述第一復制模式的改變,確定第二復制
模式,所述第二復制模式是與所述第一復制模式不同的復制模式;以及
根據所述第二復制模式將數據庫改變復制到外部復制組件。
9.如權利要求8所述的RDMS,其中,所述第一復制模式是異步復制
模式,并且所述觸發事件是與所述外部復制組件連接的網絡的改善。
10.如權利要求8所述的RDMS,其中,所述復制代理被配置為:
在識別所述觸發事件之前,識別由一個或多個數據庫任務作出的先前數
據庫改變;以及
根據所述第一復制模式將所述先前數據庫改變復制到所述外部復制組
件。
11.如權利要求10所述的RDMS,其中,所述第一復制模式是異步模
式,所述第二復制模式是同步模式,并且所述觸發事件是到達數據庫改變日
志的末尾。
12.如權利要求10所述的RDMS,其中,所述第一復制模式是同步模
式,所述第二復制模式是異步模式,并且所述觸發事件是被設定來等待對所
述先前數據庫改變的復制的確認的定時器的期滿。
13.如權利要求10所述的RDMS,其中,所述第一復制模式是同步模
式,所述第二復制模式是異步模式,并且所述觸發事件是所述復制代理的關
機。
14.如權利要求8所述的RDMS,其中,所述觸發事件是響應于改變所
述復制模式的用戶請求的。
15.一種存儲指令的機器可讀介質,所述指令當被機器執行時使得該機
器執行操作,所述操作包括:
識別觸發事件;
確定所述觸發事件指示第一復制模式的改變;
響應于確定所述觸發事件指示所述第一復制模式的改變,確定第二復制
模式;
識別由一個或多個數據庫任務作出的數據庫改變;以及
根據所述第二復制模式將所述數據庫改變復制到外部復制組件。
16.如權利要求15所述的機器可讀介質,其中,所述第一復制模式是
異步復制模式,并且所述觸發事件是與所述外部復制組件連接的網絡的改善。
17.如權利要求15所述的機器可讀介質,其中,所述操作包括:
在識別所述觸發事件之前,識別由所述一個或多個數據庫任務作出的先
前數據庫改變;以及
根據所述第一復制模式將所述先前數據庫改變復制到所述外部復制組
件。
18.如權利要求17所述的機器可讀介質,其中,所述第一復制模式是
異步模式,所述第二復制模式是同步模式,并且所述觸發事件是到達數據庫
改變日志的末尾。
19.如權利要求17所述的機器可讀介質,其中,所述第一復制模式是
同步模式,所述第二復制模式是異步模式,并且所述觸發事件是被設定來等
待對所述先前數據庫改變的復制的確認的定時器的期滿。
20.如權利要求17所述的機器可讀介質,其中,所述第一復制模式是
同步模式,所述第二復制模式是異步模式,并且所述觸發事件是復制代理的
關機。

說明書

同步復制環境中的自動模式切換

本專利申請要求2014年6月26日遞交的14290187.5號歐洲申請(EPO)
的申請日的優先權益,這里通過引用并入該歐洲申請的全部內容。

背景技術

關系數據庫管理系統(RelationalDatabaseManagementSystem,RDMS)
是基于關系數據庫模型的數據庫管理系統。數據庫管理系統可以是在用戶(例
如,數據庫任務)與一個或多個數據庫之間提供接口的軟件應用(其可在一
個或多個硬件資源上執行)。RDMS支持在數據庫中存儲數據、定義和操縱來
自數據庫的數據結構、更新數據庫中的數據、刪除數據庫中的數據、在數據
庫中插入數據、從數據庫取回數據、管理數據庫以及其他功能。

RDMS是基于事務(transaction)的概念來操作的。事務是在數據庫管理
系統內對數據庫執行的工作單位,并且被以連貫且可靠的方式獨立于其他事
務來對待。事務通常結束于COMMIT(提交)指令的發出,并且可包含一個
或多個數據庫改變。

RDMS系統有時以數據庫復制為特征。數據庫復制涉及在RDMS中跨一
個或多個數據庫復制事務數據以允許數據庫的多個拷貝被存儲在多個電子位
置中。在一些示例中,這可能是合乎希望的,以便提供分布式訪問,允許用
戶更好地共享信息,并且提供數據庫的備份拷貝。在RDMS中從一數據庫復
制數據常常是通過從數據庫事務日志(以下稱為主數據庫)復制事務日志記
錄來實現的,這些事務日志記錄是在存儲在同一個數據庫中的數據被改變時
寫入的。數據庫事務日志可包括在數據庫中進行的修改(事務)的歷史。

發明內容

在一些示例實施例中公開的是能夠基于情形和數據庫任務的需要在同步
和異步復制模式之間實時切換的方法、機器(例如,數據庫服務器)和機器
可讀介質。

根據本公開的一個方面,一種數據庫復制的方法包括:在關系數據庫管
理系統(RDMS)處,利用一個或多個計算機處理器:確定第一復制模式;
識別觸發事件;確定所述觸發事件指示所述第一復制模式的改變;響應于確
定所述觸發事件指示所述第一復制模式的改變,確定第二復制模式,所述第
二復制模式是與所述第一復制模式不同的復制模式;識別由一個或多個數據
庫任務作出的數據庫改變;以及根據所述第二復制模式將所述數據庫改變復
制到外部復制組件。

根據本公開的另一方面,一種關系數據庫管理系統(RDMS)包括:一
個或多個計算機處理器;以及復制代理,該復制代理被所述一個或多個計算
機處理器執行來:確定第一復制模式;識別觸發事件;確定所述觸發事件指
示所述第一復制模式的改變;響應于確定所述觸發事件指示所述第一復制模
式的改變,確定第二復制模式,所述第二復制模式是與所述第一復制模式不
同的復制模式;以及根據所述第二復制模式將數據庫改變復制到外部復制組
件。

根據本公開的另一方面,一種存儲指令的機器可讀介質,所述指令當被
機器執行時使得該機器執行操作,所述操作包括:識別觸發事件;確定所述
觸發事件指示第一復制模式的改變;響應于確定所述觸發事件指示所述第一
復制模式的改變,確定第二復制模式;識別由一個或多個數據庫任務作出的
數據庫改變;以及根據所述第二復制模式將所述數據庫改變復制到外部復制
組件。

附圖說明

在不一定按比例繪制的附圖中,相似的標號在不同視圖中可描述相似的
組件。具有不同字母后綴的相似標號可表示相似組件的不同實例。附圖概括
地以示例方式而非限制方式圖示了本文檔中論述的各種實施例。

圖1示出了根據一些示例實施例的從同步到異步的復制模式切換的通知
序列圖。

圖2示出了根據一些示例實施例的從異步到同步的復制模式切換的通知
序列圖。

圖3示出了根據一些示例實施例的復制代理改變復制模式的方法的流程
圖。

圖4示出了根據一些示例實施例的數據庫任務的方法的流程圖。

圖5示出了根據一些示例實施例的被復制數據庫系統的示意圖。

圖6是圖示出一個或多個示例實施例可在其上實現的機器的示例的框
圖。

具體實施方式

在RDMS中從一數據庫復制數據常常是通過從數據庫事務日志(以下稱
為主數據庫)復制事務日志記錄來實現的,這些事務日志記錄是在存儲在同
一個數據庫中的數據被改變時寫入的。數據庫事務日志可包括在數據庫中進
行的修改(事務)的歷史。對事務日志的改變被分發到外部復制組件,該外
部復制組件然后負責將事務數據復制到其他電子位置上的數據庫的其他拷
貝。外部復制組件可利用訂閱(subscription)過程,在訂閱過程中,對于接
收對被復制數據庫的更新感興趣的數據庫服務器向該外部復制組件進行訂
閱。訂閱可以是對數據庫的一些部分的,但在其他示例中,訂閱可以是對整
個數據庫的。隨后基于訂閱將更新推送到訂閱的設備。

數據庫復制可由復制模式來描述。復制模式可以是定義要如何處理復制
的一個或多個規則。示例模式可包括異步模式和同步模式。在異步模式中,
數據庫任務在繼續進行操作之前不會等待外部復制組件確認日志數據。在同
步模式中,數據庫任務將等待繼續進行,直到外部復制組件已確認了該改變
為止。數據庫任務可以是對數據庫作出改變的任何進程、線程或程序。在一
些示例實施例中,數據庫任務可以利用結構化查詢語言(StructuredQuery
Language,SQL)對數據庫作出改變。

同步復制的目標是確保在大事故的情況下,在主數據庫上提交的數據不
僅會存在于復制的站點上,而且將會存在于盤上。如果源數據庫與外部復制
組件之間的通信緩慢或者不工作,則同步復制可負面地影響數據庫事務響應
時間。異步復制對于數據庫事務響應時間沒有任何影響,但在主數據庫發生
大故障的情況下,數據庫拷貝可能失去同步。

在一些示例實施例中公開的是能夠基于情形和數據庫任務的需要在同步
和異步復制模式之間實時切換的方法、機器(例如,數據庫服務器)和機器
可讀介質。實施例自動地并且在沒有手動(例如,人類)干預的情況下在同
步和異步復制模式之間切換。

在一些示例實施例中,可以檢測或創建能夠改變數據庫復制模式的一個
或多個觸發事件。例如,外部復制組件與數據庫服務器之間的接口可以是網
絡(例如,基于分組的計算機網絡)。如果網絡遭遇運行中斷、流量繁重或者
太慢,則來自外部復制組件的確認通知可能不被遞送或者可能被晚遞送到
RDMS。在同步復制的情況下,等待響應的數據庫任務可能困在對這個確認
的等待中。結果,一個示例觸發事件可以是RDMS處的定時器的期滿,該定
時器的期滿可使得RDMS在其接收來自外部復制組件的確認之前喚醒數據庫
任務,從而將復制模式切換到異步。

圖1示出了根據本公開的一些示例的從同步復制模式到異步復制模式的
復制模式切換的實施例的示例通知序列圖1000。RDMS1010可包括數據庫任
務1020。數據庫任務1020可以是對數據庫作出改變的任何進程、線程或程
序。在一些示例實施例中,數據庫任務1020可以利用結構化查詢語言(SQL)
對數據庫作出改變。RDMS1010還可包括復制代理1030。復制代理1030可
與外部復制組件1040通信并且可負責檢測對要復制的數據庫的改變。RDMS
1010可包括未示出的額外模塊,這些模塊管理數據庫、執行SQL語句、管理
數據庫任務1020,等等。

在圖1的示例中,在1050,數據庫任務1020作出數據庫改變(例如,
改變(A))并且將該改變寫入到事務日志1025。此時,在對圖1的論述中,
RDMS1010處于同步復制模式中。復制代理1030在1060檢測對事務日志的
改變。復制代理1030可通過就新的日志條目或者就對事務日志1025的待發
生改變(例如,排隊等待寫入到事務日志1025的改變)監視事務日志1025,
來檢測對數據庫的改變(例如,作為操作1050的結果的改變)。在檢測到改
變1050后,復制代理1030將檢測到的改變與消息或通知1070一起發送到外
部復制組件1040。

雖然圖1示出了去往/來自數據庫任務1020、事務日志1025、復制代理
1030以及從復制代理1030去往/來自外部復制組件1040的線條,但要理解這
種線條可以是消息,但也可以是其他形式的通知,包括對日志文件的監視、
進程間通信(例如,共享的存儲器)或者任何其他形式的信息通信。附圖中
描述的通知可以是基本信號(例如中斷),但也可包含更詳細的信息,例如關
于對數據庫作出的改變的信息(例如,日志條目),等等。

由于改變1050不包括提交指令,所以數據庫任務1020即使在同步模式
中也不等待外部復制組件1040確認該改變。外部復制組件1040進行的確認
可由外部復制組件1040在外部復制組件1040接收到對改變的通知時或者當
復制組件1040向其自己的事務日志的拷貝應用改變時發送。來自外部復制組
件1040的確認改變A被外部復制組件1040接收到(或者提交)的通知在1080
被遞送到復制代理1030。

在1090,數據庫任務1020對數據庫作出額外的改變(例如,改變(B))
并且將該改變寫入到事務日志1025。改變(例如,改變(B))包括數據庫提
交指令。由于此改變包括提交指令,所以數據庫任務1020在1095進入休眠。
在一些示例中,休眠包括暫停操作,直到復制代理1030接收到來自外部復制
組件1040的確認為止。一旦復制代理1030在1100檢測到第二改變(例如,
改變(B)),復制代理1030就在1110將該改變發送到外部復制組件1040,
外部復制組件1040在1120利用確認來對該改變進行答復。復制代理1030在
1130通知數據庫任務1020:改變既被寫入到盤,并且外部復制組件1040也
確認了。此時,數據庫任務1020在1135響應于通知1130而醒來并且再次開
始處理。

在1140,數據庫任務1020作出另一數據庫改變(例如,改變(C))并
且將該改變寫入到事務日志1025。改變(例如,改變(C))包括提交指令。
由于該額外改變(例如,改變(C))包括提交指令,所以數據庫任務1020
在1145進入休眠。復制代理1030在1150檢測此改變(例如,改變(C))并
且在1160將該改變發送到外部復制組件1040。在1163,復制代理1030檢測
切換復制模式的觸發事件。在一些示例中,觸發事件是檢測到用于從外部復
制組件1040接收確認通知的超時時段已期滿。例如,預期由外部復制組件
1040發送到復制代理1030的確認通知可能未在期望的時間到達復制代理
1030(例如,因為網絡問題)。例如,在1163,復制代理1030檢測定時器的
期滿并且將定時器的期滿解讀為將復制模式改變到異步復制模式的觸發事件
并且在1163切換復制模式。復制代理1030可在1165將該模式切換通知給外
部復制組件1040。此外,復制代理1030在1170通知數據庫任務1020,盡管
例如在一時間段期滿之前沒有接收到來自外部復制組件1040的對該改變(例
如,改變(C))的確認。該通知在1175喚醒數據庫任務1020(或者任何其
他等待通知的任務)。數據庫任務1020現在可作出額外的數據庫改變。這些
改變是根據異步復制規則來執行的。例如,數據庫任務1020作出另一改變(例
如,改變(D))并且在1180將該改變寫入到事務日志1025。改變(例如,
改變(D))包括提交指令。改變(例如,改變(D))當在1190被復制代理
1030檢測到時在1200被轉發到外部復制組件1040。外部復制組件1040在
1210利用確認來答復復制代理1030。注意,由于模式現在是異步,所以數據
庫任務1020不進入休眠等待來自外部復制組件1040的通知。注意,除了在
改變發生時通知外部復制組件1040(例如,在1165)以外,或者取代在改變
發生時通知外部復制組件1040,復制代理1030還可在向外部復制組件1040
發送改變時包括關于當前模式的信息。例如,在1070、1110、1160和1200
發送的消息可指定RDMS的當前復制模式。從同步到異步的模式切換可在操
作1200利用改變(D)來傳達,而不是在操作1165傳達。

圖2示出了根據本公開的一些示例的從異步到同步的復制模式切換的示
例通知序列圖2000。RDMS2010開始在異步模式中操作。在2050,數據庫
任務2020作出數據庫改變(例如,改變(A))并且將該改變寫入到事務日
志2025。復制代理2030在2060檢測此改變,并且作為響應,復制代理2030
在2070將此改變發送到外部復制組件2040。外部復制組件2040在2080可
利用通知來確認此改變。數據庫任務2020可作出其他改變,例如在2090的
改變(例如,改變(B))。在2090的改變包括提交指令。與同步模式不同,
數據庫任務2020不等待來自外部復制組件2040的確認。改變(B)在2100
被復制代理2030檢測到,并且復制代理2030在2110將該改變發送到外部復
制組件2040。外部復制組件2040在2120利用確認來通知復制代理2030。注
意,雖然圖2示出了將單個的改變發送到外部復制組件2040的情形,但在一
些示例實施例中,可以成批地處理改變。例如,復制代理2030可按預定的時
間間隔掃描事務日志2025。從而,改變(A)和改變(B)可在單次通信中被
發送到外部復制組件2040。

復制代理2030可接收或確定使得復制代理2030改變復制模式的事件。
例如,觸發事件可指示復制模式應當從異步復制模式切換到同步復制模式。
例如,當復制代理2030在使得復制代理2030變得暫停的事件之后重啟時,
復制代理2030可能已將RDMS2010置于異步模式中。將RDMS2010置于異
步模式中允許了復制代理2030趕上(catchup)在復制代理2030重啟的同時
發生的數據庫改變,同時允許了數據庫任務2020沒有延遲地繼續。在此示例
中,讓復制代理2030將復制模式切換到同步模式的觸發事件可以是當復制代
理2030到達數據庫日志的末尾(并且因此被趕上)時。當在2123檢測到該
觸發事件時(例如,復制代理2030到達數據庫日志的末尾),例如,如果RDMS
2010被配置為將操作返回到同步模式,則復制代理2030通過將RDMS2010
置于同步模式中來切換復制模式。

一旦檢測到觸發事件并且切換了復制模式,來自數據庫任務2020的數據
庫改變隨后就被同步地更新,并且復制代理2030在2125把到同步復制模式
的改變通知給外部復制組件2040。例如,如果數據庫任務2020在2130向事
務日志2025提交改變(例如,改變(C))。由于該改變(例如,改變(C))
包括提交指令,并且RDMS2010現在在同步模式中,所以數據庫任務2020
在2135進入休眠。數據庫任務2020在繼續操作之前在休眠模式中等待,直
到接收到來自復制代理2030的通知2170為止。復制代理2030在2140檢測
該改變(例如,改變(C))并且在2150將該改變發送到外部復制組件2040。
一旦外部復制組件2040在2150接收到指示該改變的消息,外部復制組件2040
就在2160向復制代理2030發送對接收到該改變的確認。復制代理2030在
2170將該確認通知給數據庫任務2020。一旦數據庫任務2020接收到指出數
據庫改變C成功的通知2170,數據庫任務2020就在2175醒來。如在圖1中
指出的,除了在模式改變發生時通知外部復制組件2040(例如,在2125)以
外,或者取代在模式改變發生時通知外部復制組件2040,復制代理2030還
可在向外部復制組件2040發送改變時包括關于當前模式的信息。從而,例如,
在2070、2110、2150發送的消息可指定RDMS的當前復制模式。

注意,在附圖中只示出了一個數據庫任務1020和2020;然而,多個數
據庫任務可在RDMS2010上執行。來自復制代理1030和2030的各種通知(例
如,通知1130、1170和2170)可以是對多個數據庫任務的。從而,通知可喚
醒多個數據庫任務。

以下列出了可觸發從異步到同步或者從同步到異步的改變的數個示例事
件。

日志的末尾:如果RDMS的配置模式是同步模式,則異步模式是過渡模
式,該過渡模式被利用,直到復制代理在事務日志末尾處可轉換到同步模式
為止。

例如,當復制代理啟動時,復制代理可在異步復制模式中開始,以趕上
在復制代理未運行的同時發生的任何事務。復制代理可在數據庫日志的開頭
處開始并且復制舊的事務,直到復制代理到達日志末尾為止。

超時:當復制代理在同步模式中復制并且確認時間超過了可配置的(或
者預定的)超時值時,模式可被從同步改變到異步。這允許了數據庫任務繼
續處理,而不會被阻擋在等待復制完成。在一些示例實施例中,復制代理繼
續監視網絡通信,并且如果復制代理確定網絡狀況已充分地改善(例如,通
過分析諸如帶寬、等待時間、往返時間等等),則復制代理可切換回到同步操
作模式。在一些示例中,復制代理嘗試返回到同步模式。這可通過強制數據
庫任務減慢速度以便趕上日志末尾來實現。通過這樣做可以防止并行運行的
數據庫任務在事務日志中生成如此多的事務以至于會妨礙復制代理到達日志
的末尾。一旦到達日志的末尾,RDMS就可轉變回同步模式。

在一些示例實施例中,為了實現零數據丟失系統,超時值可被禁用(或
者被配置為無窮大或者任意高的數字),以使得RDMS不會由于定時器期滿
而切換到異步模式。在一些示例中,零數據丟失系統維持同步復制模式,以
確保事務始終在其他改變被做出之前被復制。

復制代理的停止:為了允許數據庫任務處理不中斷地繼續,可作為復制
代理的關機過程的一部分,將復制模式切換到異步模式。

用戶請求的模式改變:數據庫管理或數據庫任務可請求RDMS在不同模
式中運行。

在模式被從同步改變到異步的示例中,該改變可以是立即的。在模式被
從異步改變到同步復制的情況中,模式切換在一些示例實施例中可被推遲,
直到到達數據庫日志的末尾為止,直到對于待處理的提交接收到所有確認為
止,等等。

圖3示出了根據本公開的一些示例的復制代理改變復制模式的示例方法
3000的流程圖。方法3000可由可包括硬件(例如,電路、專用邏輯、可編
程邏輯、微代碼等等)、軟件(例如,在處理設備上運行的指令)或者其組合
的處理邏輯來執行。在一種實現方式中,方法3000由RDMS執行,例如圖5
的RDMS5010,如下所述。

在操作3010,復制代理確定第一復制模式。例如,復制代理可經由存儲
在數據存儲庫上的配置數據被設置為優選同步的或非同步的模式。在操作
3020,復制代理根據從操作3010確定的模式來操作。在操作3030,接收、
檢測和/或識別觸發事件。在操作3040,復制代理確定觸發事件是否指示復制
模式應當被改變,并且如果其應當被改變,則復制代理可確定將其改變到哪
個模式。例如,復制代理可利用一組規則(例如,表格,或者一組if-then語
句),其基于當前復制模式和事件來確定是否改變復制狀態。如果不要改變模
式,則復制代理可繼續在3020根據第一復制模式進行操作。如果復制代理確
定模式應當轉變到第二復制模式(不同于第一模式),則復制代理在操作3050
轉變到第二復制模式。轉變可以是立即的,或者可被推遲,直到某個以后的
事件為止。轉變可涉及將該改變通知給其他組件,例如外部復制組件或者一
個或多個數據庫任務。一旦轉變完成,復制代理就可在操作3060根據第二復
制模式來進行操作。雖然復制代理在操作3020根據第一復制模式來操作,但
在一些示例實施例中,可以在以第一復制模式操作3020之前(例如,在任何
實際復制之前)接收到觸發事件3030。

圖4示出了根據本公開的一些示例的數據庫任務的示例方法4000。方法
4000可由可包括硬件(例如,電路、專用邏輯、可編程邏輯、微代碼等等)、
軟件(例如,在處理設備上運行的指令)或者其組合的處理邏輯來執行。在
一種實現方式中,方法4000由圖5的RDMS的數據庫任務執行,如下所述。
在操作4010,數據庫任務確定當前復制模式。例如,數據庫任務確定當前復
制模式是同步還是異步,等等。在一些示例實施例中,數據庫任務可具有偏
好,或者可基于數據存儲庫中存儲的配置數據來請求特定模式。在操作4020,
數據庫任務根據第一復制模式(例如,同步或異步)來操作。在操作4030,
數據庫任務(例如,從復制代理)接收轉變到第二復制模式(不同于第一復
制模式)的通知。在操作4040,數據庫任務轉變到第二復制模式。在一些示
例實施例中,可以使該轉變是即時的。在其他示例中,轉變可被推遲,直到
另一事件發生為止。例如,為了完成轉變,數據庫任務可能必須等待第二觸
發事件。一旦轉變完成,在操作4050,數據庫任務就根據第二模式來操作。
雖然圖4示出了將復制模式改變通知給數據庫任務,但在其他示例中,復制
代理可通過確認提交而不實際接收來自外部復制組件的確認,來模擬同步復
制模式。從而,在一些示例中,切換對于數據庫任務而言可以是透明的,這
意味著數據庫任務可以在同步和異步模式之間切換而不要求做出改變。

圖5示出了根據本公開的一些示例的復制數據庫系統5000的示意圖。
RDMS5010可包括數據庫管理器5030、數據存儲庫5040、一個或多個數據
庫任務5020和復制代理5050。數據庫管理器5030管理數據存儲庫5040中
存儲的數據。例如,數據庫管理器5030組織、跟蹤和控制數據存儲庫5040
中存儲的數據以形成一個或多個結構化關系數據庫(以下稱為“數據庫”)。

RDMS5010可包括一個或多個數據庫任務5020。數據庫任務5020可以
是能夠對由數據庫管理器5030和數據存儲庫5040提供的數據庫作出改變的
任何進程、線程或程序。數據庫任務5020可利用數據存儲庫5040中存儲的
數據來提供一個或多個服務。數據庫任務5020可通過向數據庫管理器5030
發出命令來讀取、寫入和修改數據存儲庫5040中的數據。在一些示例實施例
中,數據庫任務5020可使用一個或多個結構化查詢語言(SQL)命令來訪問
數據存儲庫5040中存儲的數據。在一些示例實施例中,數據庫管理器5030
可以把對數據存儲庫5040作出的改變記錄在事務日志中。事務日志可被存儲
在數據存儲庫5040中。數據庫任務5020可知曉并響應當前復制模式,并且
可知曉并且響應復制模式的改變。例如,當復制模式是同步時,數據庫任務
5020在繼續進行對數據庫的進一步操作之前可等待來自復制代理5050的確
認。作為另一示例,當模式是異步時,數據庫任務5020可繼續進一步數據庫
操作,而無論是否接收到確認。

復制代理5050可就對數據庫中的數據的改變來監視數據存儲庫5040,
并且通過外部復制組件5090將對數據的改變復制到一個或多個其他RDMS
5060或其他設備5070(例如,比如移動設備、智能電話、臺式機、平板計算
機、膝上型計算機,等等)。外部復制組件5090可以是可通過基于分組的網
絡5080(例如,互聯網、局域網、廣域網,等等)來訪問的。在一些示例實
施例中,復制代理5050可基于由數據庫管理器5030管理的事務日志來確定
對數據庫的改變。

復制操作可利用外部復制組件5090來幫助將數據從數據存儲庫5040復
制到其他RDMS5060、設備5070等等。RDMS5060和設備5070可通過網絡
5085連接到外部復制組件5090。網絡5085可以是或者可以包括網絡5080的
一些部分。外部復制組件5090可包括復制模塊5100和數據存儲庫5110。復
制模塊5100可與來自RDMS5010的復制代理5050以及設備5070和RDMS
5060上的其他復制代理模塊通信(為了清晰起見沒有示出RDMS5060上的
復制代理模塊)。復制模塊5100可接收設備(該設備希望接收對數據的更新)
的訂閱請求,并且當復制代理(例如,復制代理5050)報告更新時,復制模
塊5100可更新其本地數據存儲庫5110中的數據并且可基于其訂閱向訂閱的
設備發送對數據庫的更新。復制模塊5100在接收到指示后和/或在存儲更新
后可利用確認來對更新數據的設備做出響應。

復制代理5050也可從其他RDMS,例如RDMS5060、設備5070等等,
接收關于對數據庫中存儲的數據的更新的信息。復制代理5050可向外部復制
組件5090訂閱接收對數據存儲庫5040上的數據的更新,以便接收來自能夠
更新數據的其他設備的更新。復制代理5050可以將任何接收到的改變通知給
數據庫任務5020、數據庫管理器5030或者RDMS5010上的其他進程。復制
代理5050隨后可以直接地或者通過數據庫管理器5030或數據庫任務5020將
接收到的改變提交給數據存儲庫5040。

復制代理5050可確定或接收指示復制模式應當被從優選模式切換到另
一模式的事件。例如,如果優選模式是同步模式并且事件發生,則復制代理
5050可確定復制模式是否應當被切換到異步模式。如果優選模式是異步模式
并且事件發生,則復制代理5050可確定復制模式是否應當被切換到同步模
式。復制代理5050可以把該改變通知給RDMS5010中的任何感興趣的模塊
(例如,數據庫任務5020、數據庫管理器5030,等等)。在一些示例實施例
中,復制代理5050還可以使外部復制組件5090保持了解當前模式的最新情
況。這可通過發送更新消息或者通過將當前模式包括在通告對數據庫上的數
據的改變的通知中來進行。

RDMS5010可包括未示出的額外模塊,這些模塊管理數據庫、執行SQL
語句、管理數據庫任務5020,等等。此外,RDMS5010中示出的各種模塊可
被組合。

圖6圖示出可在其上執行本文論述的技術(例如,方法)中的一種或多
種的示例機器6000的框圖。在替換實施例中,機器6000可作為獨立的設備
來操作或者可連接(例如,聯網)到其他機器。在聯網部署中,機器6000在
服務器-客戶端網絡環境中可作為服務器機器、客戶端機器或者這兩者來操
作。在一個示例中,機器6000在對等(peer-to-peer,P2P)(或其他分布式)
網絡環境中可充當對等機器。機器6000可以是RDMS、外部復制組件、個人
計算機(personalcomputer,PC)、平板PC、機頂盒(set-topbox,STB)、個
人數字助理(personaldigitalassistant,PDA)、移動電話、智能電話、web設
備、網絡路由器、交換機或網橋或者任何能夠執行指定該機器要采取的動作
的(順序的或者其他形式的)指令的機器。另外,雖然只圖示了單個機器,
但術語“機器”也應被理解為包括單獨或聯合執行組(或多組)指令來執行
本文論述的方法中的任何一種或多種的機器的任何集合,例如云計算、軟件
即服務(softwareasaservice,SaaS)、其他計算機集群配置。

如本文所述的示例可包括邏輯或數個組件、模塊或機構或者可在邏輯或
數個組件、模塊或機構上操作。模塊是能夠執行指定的操作并且可按一定方
式來配置或布置的有形實體(例如,硬件)。在一個示例中,電路可按指定的
方式被布置為模塊(例如,在內部或者對于外部實體,例如其他電路)。在一
個示例中,一個或多個計算機系統(例如,單機、客戶端或服務器計算機系
統)或者一個或多個硬件處理器的全部或部分可由固件或軟件(例如,指令、
應用部分或者應用)配置為進行操作來執行指定的操作的模塊。在一個示例
中,軟件可駐留在機器可讀介質上。在一個示例中,軟件當被模塊的下層硬
件執行時使得該硬件執行指定的操作。

因此,術語“模塊”被理解為涵蓋有形實體,無論該實體是被物理上構
造、具體配置(例如,硬連線)還是臨時(例如,暫時)配置(例如,編程)
為按指定的方式操作或者執行本文描述的任何操作的一部分或全部。考慮臨
時配置模塊的示例,在任何一個時刻不需要實例化每個模塊。例如,在模塊
包括利用軟件配置的通用硬件處理器的情況下,該通用硬件處理器在不同時
間可被配置為各個不同的模塊。軟件可相應地將硬件處理器配置為例如在一
個時刻構成特定模塊并且在不同的時刻構成不同的模塊。

機器(例如,計算機系統)6000可包括硬件處理器6002(例如,中央處
理單元(centralprocessingunit,CPU)、圖形處理單元(graphicsprocessingunit,
GPU)、硬件處理器核或者其任何組合)、主存儲器6004以及靜態存儲器6006,
其中的一些或全部可經由互連鏈路(例如,總線)6008與彼此通信。機器6000
還可包括視頻顯示器6010、字母數字輸入設備6012(例如,鍵盤)以及用戶
界面(userinterface,UI)導航設備6014(例如,鼠標)。在一個示例中,視
頻顯示器6010、輸入設備6012和UI導航設備6014可以是觸摸屏顯示器。
機器6000還可包括存儲設備(例如,驅動單元)6016、信號生成設備6018
(例如,揚聲器)、網絡接口設備6020以及一個或多個傳感器6021,例如全
球定位系統(globalpositioningsystem,GPS)傳感器、羅盤、加速度計或其
他傳感器。機器6000可包括輸出控制器6028,例如串行(例如通用串行總
線(universalserialbus,USB))、并行或其他有線或無線(例如紅外(infrared,
IR)、近場通信(nearfieldcommunication,NFC)等等)連接來與一個或多
個外圍設備(例如,打印機、讀卡器等等)通信或者控制一個或多個外圍設
備。

存儲設備6016可包括機器可讀介質6022,其上存儲了實現本文描述的
技術或功能中的任何一種或多種或者被本文描述的技術或功能中的任何一種
或多種所利用的一組或多組數據結構或指令6024(例如,軟件)。指令6024
在其被機器6000執行期間也可完全地或至少部分地駐留在主存儲器6004內、
靜態存儲器6006內或者硬件處理器6002內。在一個示例中,硬件處理器6002、
主存儲器6004、靜態存儲器6006或者存儲設備6016之一或者其任何組合可
構成機器可讀介質。

雖然機器可讀介質6022被圖示為單個介質,但術語“機器可讀介質”可
包括被配置為存儲一個或多個指令6024的單個介質或多個介質(例如,集中
式或分布式數據庫,和/或關聯的緩存和服務器)。

術語“機器可讀介質”可包括任何能夠存儲、編碼或承載供機器6000
執行并且使得機器6000執行本公開的技術中的任何一種或多種的指令或者
能夠存儲、編碼或承載被這種指令使用或者與這種指令關聯使用的數據結構
的介質。非限制性機器可讀介質示例可包括固態存儲器以及光介質和磁介質。
機器可讀介質的具體示例可包括:非易失性存儲器,比如半導體存儲器設備
(例如,電可編程只讀存儲器(ElectricallyProgrammableRead-OnlyMemory,
EPROM)、電可擦除可編程只讀存儲器(ElectricallyErasableProgrammable
Read-OnlyMemory,EEPROM))和閃存設備;磁盤,比如內部硬盤和可移除
盤;磁光盤、隨機訪問存儲器(RandomAccessMemory,RAM);固態驅動
器(SolidStateDrive,SSD);以及CD-ROM和DVD-ROM盤。在一些示例
實施例中,機器可讀介質可包括非暫態機器可讀介質。在一些示例實施例中,
機器可讀介質可包括不是暫態傳播信號的機器可讀介質。

還可經由網絡接口設備6020利用傳輸介質來通過通信網絡6026發送或
接收指令6024。機器6000可利用數種傳送協議中的任何一種(例如,幀中
繼、互聯網協議(internetprotocol,IP)、傳輸控制協議(transmissioncontrol
protocol,TCP)、用戶數據報協議(userdatagramprotocol,UDP)、超文本傳
送協議(hypertexttransferprotocol,HTTP),等等)來與一個或多個其他機器
通信。示例通信網絡可包括局域網(localareanetwork,LAN)、廣域網(wide
areanetwork,WAN)、分組數據網絡(例如,因特網)、移動電話網絡(例如,
蜂窩網絡)、普通老式電話(PlainOldTelephone,POTS)網絡以及無線數據
網絡(例如,稱為的電氣與電子工程師學會(InstituteofElectricaland
ElectronicsEngineers,IEEE)802.11標準家族、稱為的IEEE802.16
標準家族)、IEEE802.15.4標準家族、長期演進(LongTermEvolution,LTE)
標準家族、通用移動電信系統(UniversalMobileTelecommunicationsSystem,
UMTS)標準家族、對等(P2P)網絡,等等。在一個示例中,網絡接口設備
6020可包括一個或多個物理插座(例如,以太網、同軸或電話插座)或者一
個或多個天線來連接到通信網絡6026。在一個示例中,網絡接口設備6020
可包括多個天線以利用單輸入多輸出(single-inputmultiple-output,SIMO)、
多輸入多輸出(multiple-inputmultiple-output,MIMO)或多輸入單輸出
(multiple-inputsingle-output,MISO)技術中的至少一者來無線地通信。在
一些示例實施例中,網絡接口設備6020可利用多用戶MIMO技術來無線地
通信。

關 鍵 詞:
同步 復制 環境 中的 自動 模式 切換
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:同步復制環境中的自動模式切換.pdf
鏈接地址:http://www.wwszu.club/p-6405617.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大