TWI231908B - Table duplication method for relational database - Google Patents

Table duplication method for relational database Download PDF

Info

Publication number
TWI231908B
TWI231908B TW92137193A TW92137193A TWI231908B TW I231908 B TWI231908 B TW I231908B TW 92137193 A TW92137193 A TW 92137193A TW 92137193 A TW92137193 A TW 92137193A TW I231908 B TWI231908 B TW I231908B
Authority
TW
Taiwan
Prior art keywords
update
data
database
copying
record
Prior art date
Application number
TW92137193A
Other languages
English (en)
Other versions
TW200521742A (en
Inventor
Fu-Li Chen
Original Assignee
Digital United Inc
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 Digital United Inc filed Critical Digital United Inc
Priority to TW92137193A priority Critical patent/TWI231908B/zh
Application granted granted Critical
Publication of TWI231908B publication Critical patent/TWI231908B/zh
Publication of TW200521742A publication Critical patent/TW200521742A/zh

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

1231908 玖、發明說明: 【發明所屬之技術領域】 尤指一種適用於關 本發明係關於一種資料複製方法 連式資料庫之表袼複製方法。 【先前技術】 10 15 地岸科技不斷演進,資料庫管理技術已廣泛 ‘二於各種產業中’而資料庫隨著時間更迭及攔位擴 所儲存的資料量將日趨龐大,且資料或表格間的關 =複雜度有時並非—台電腦主機可處理,而必須將資 &庫分散儲存在兩地(或以上)。因此,如何確保兩地資料 庫中所儲存資料的—致性,遂成為當前亟欲解決之課題。 習知之資料複製方法,係於主資料庫(刪ter database) 中建立-記錄表格(log table),用以記錄主"庫在前―次 複製過程之後所產生的全部異動資料,包括新增、修改、 及刪除資料等記錄’以當下一次欲將資料複製到副資料庫 database)時,僅需根據記錄表格中的異動内容 來更新異動資料即可’而不用將整個主資料庫的資料全部 重新複製到副資料庫中。 2〇 —請參閱圖1之時間軸示意圖,當系統在(。完成前一次 複製過程之後,主資料庫係依序於異動時間(update time)tul及u對二筆資料R1及R2進行修改,因此,記錄 表格中將依序產生1和2的更新序號;f系統於ti開始進 1231908 :_人複製過程時,由於資料R1及R2皆已於tl前被 ” € mmit),故副資料庫將會依照更新序號逐一自主瞀 料庫中複製出上述二筆修改過的資料。 、 5 、尚然而,習知之資料複製方法,將會受到資料更新時間 二】或執行駟料動作復原(rollback)的影響,而導致後續 =製作業無法進行的問題。請參閱圖2之時間軸示意圖, ^系、、先在t2元成前—次複製過程之後,主資料庫係依序於 異動時間tu3、tu4、及Μ對三筆資料R3、R4、及R5開始 ^改’並在記錄表格中產生3、4、5的更新序號;然而, 田系、、先於h右人開始進行下一次複製過程時,資料R4尚未 被提又亦即R4的提交時間(commit time)%4晚於t3,此 時右使用依照更新序號的方式來複製資料,將會使得副資 料庫在複製完R3後,需要等待下一個更新序號(即尺4的 =新)’但由於R4尚未被提交,因此副資料庫無法緊接著 15複製R4的資料’連帶導致更新序號較晚之R5的更新也無 法複製完成,R5的複製必須等到R4被提交之後才能^ 行如果R4遲遲未提交,則後續的所有複製作業將無法 進行,又,若R4係執行了資料動作復原指令,則代表R4 並未被提交,因此R4原先之更新序號將會消失,亦即副 20資料庫將永遠無法等待到所需要之序號,導致無法完成後 續之複製作業,這是使用依照更新序號所衍生的問題。另 外可能資料庫複製的方法將是使用資料庫更新紀錄 (Database Log)的方式,其複製方式是將資料庫所有的更新 紀錄下來,並放置在紀錄檔案中,副資料庫直接採用紀錄 1231908 檔案中之資料一筆筆更新即可。此種複製方式需要整個資 料庫的更新,無法只針對某個或某些表格(TaMe)更新,二 =同-筆資料更新過多次,副資料庫也需要更新多 =丰=無法採用直接最新的資料,—次複製即可,較為浪 費時間。對於線上使用並且更新量非常大之資料庫,採用 資料庫更新紀錄複製轉庫的m會較沒有效率。 由此可知,習知僅根據資料異動時間來更新資料庫之 資料複製方法仍存在有諸多缺失而有予以改進之必要。 10【發明内容】 本發明之主要目的係在提供—種關連式資料庫之表 格稷製方法’俾能將主資料庫(master细如㈣中之資料完 整複製到副資料庫(duplication database)中並能確保在= 製過程中'主資料庫仍維持在正常運作狀態。 15 本發明之另—目的係在提供-種關連式資料庫之表 格複製方法,僅需更新於前—次複製過程後所產生之里動 (包括^增、刪除、及修改)資料,而毋須複製完整資料庫 1^ ΐ料,俾能降低系統負荷、複製時間、及複雜度’並 月匕k尚糸統效能(perf〇rmance) 〇 20 本^明之再-目的係在提供-種關連式資料庫之表 格複製方法,係能一次處理複數個表格資之複製流程,以 維持表格間之一致性。 、…依據树明之—特色,所^之關料龍庫之表格 複製方法’係輔以一異動記錄檔(updatei〇g)及一更新記錄 1231908 檔(refresh log),用以將一主資料庫中之複數個表格完整複 製到一副資料庫中以完成一複製流程。在此方法中每一表 格係對應定義有一異動記錄檔及一更新記錄檔。其中,異 動記錄槽係持續記錄在主賢料庫之表格中、每一筆執行異 5動指令之資料所依序產生的異動序號(update seqUencey 而更新記錄檔則將已提交(commit)完成異動指令之資料所 對應的異動序號依照其大小以依序記錄為一更新序號 (refresh sequence)。其中’上述異動指令為下列其中之一: 新增指令、刪除指令、及修改指令。 10 本發明關連式資料庫之表格複製方法主要包括一起 始複製步驟、一判斷步驟、一篩選步驟、以及一後續複製 步驟。起始複製步驟係於一起始複製期間内、將儲存於主 貝料庫中之表格複製儲存至副資料庫中;接著將由判斷步 驟來判斷在複製期間内、各個表格所對應之更新記錄檔是 15否產生異動;若是,則繼續執行篩選步驟以篩選出更新記 錄檔中產生異動之更新序號及其對應之資料,否則即完成 本次複製流程;並執行後續複製步驟以於一後續複製期間 内、將如述產生異動之更新序號所對應的資料依序複製儲 存至副資料庫中,並接續執行判斷步驟。 【實施方式】 為能讓貴審查委員能更瞭解本發明之技術内容,特 舉較佳具體實施例說明如下。 20 1231908 本發明所提出之關連式資料庫之表格複製方法係用 以將一資料庫(即本實施例之主資料庫(master database))中 之多7表格(tables)完整的複製到另一資料庫(即本實施例 之田貝料庫(duplication database))中,且在進行複製流程 5時,主資料庫仍需保持繼續運作。 本實施例關連式資料庫之表袼複製方法主要區分為 兩大流程··包括初期將所有表袼從主資料庫複製到副資料 庫之「初次複製(initialcopy)」流程、以及往後僅將主資料 庫中產生異動之表格複製到副資料庫的「增量更新 10 (inCremental refresh)」流程。其中,主資料庫係儲存有複 數個關連式資料表格,例如一企業所儲存之員工基本資料 表格、及員工薪資表格等;或一銀行所管理之顧客資料表 格、及帳戶金額表格等。 為確保表格能完整從主資料庫複製儲存到副資料庫 15中,故本實施例係針對每一表格定義# 一異動記錄檔 (update log)及一更新記錄檔(refresh 1〇幻。異動記錄檔中儲 存有異動序號(update sequence)攔位用以即時記錄在主資 料庫之表袼中、每一筆執行過異動指令之資料的順序;更 新。己錄杬則儲存有更新序號(refresh s叫狀此匀攔位用以記 20錄已提交(commit)完成異動指令之資料所對應的順序,其 中,上述異動指令包括新增(add)指令、刪除(delete)指令、 及修改(modify)指令。 為使貴審查委員能更瞭解本實施例之異動記錄檔及 更新記錄檔之定義,煩請參閱圖3之時間軸示意圖,並請一 1231908 5 10 15 併參閱圖4所示之異動記錄檔、及圖5之更新記錄播示意 圖。本實施例係自時間Τχ開始使用異動記錄檔及更新記錄 棺來記錄在主資料庫的表格中產生異動之資料,於圖3中, G丨、kk、及k分別代表主資料庫中之資料&卜r2、们、 及糊始執行異動指令的時間,而tb丨、〜&、及^則代 表資料R1 R2、R3、及R4提交完成異動指令的時間;圖4 之異動記賴即根據執行㈣依序將每—筆f料開始執行 異動心令所產生的異動序號記錄為卜3、及4。需注意的是, 根據資料庫的理論特性,可得知#資料仍在執行過程中、 且尚未被提交時,該筆資料在耗行㈣的行程(p_ss) 中對應於異動記錄檔並不存在因此’直到時間Ty為止,由 於資料R2仍在執行先前所下達之異動指令而尚未被提 交,故在非執行異動資料尺2的行程中於&時間時所看到之 異動紀錄檔將只有異動序號為卜3、4等三筆資料,複製流 程將會WTy之前已提交之f伽、R3、及以之順序紀錄於 更新紀錄檔中,並依照異動紀錄檔之異動序號產生更新序 號,因此R3之提交時間h雖然早於^之提交時間但在 更新紀錄檔之更新序號仍然以R1為先,,進而形成如圖5 所示之更新記錄檔,顯示資料R1、R3、及尺4所對應之更新 序號分別為1、2、及3,此時R2由於尚未提交因此將不會 出現在更新紀錄標中。 需注意的是,本實施例之異動記錄檔及更新記錄檔僅 記錄有各資料所對應之鍵值(Key)及異動序號或更新序 號;當然異動記錄檔及更新記錄檔中亦可記錄有該筆資料 20 1231908 所對應的資料内容,以便進行複製流程時,可直接擷取更 新記錄檔中之更新資料來簡化複製流程,但此種方式將會 增加主資料庫之儲存空間,僅儲存鍵值將可節省主資料^ 之儲存空間,但需有額外由鍵值擷取資料所需花費的時間 5 及系統資源。 ' 接著請參閱圖6,並配合圖7之時間軸示意圖以詳述本 貫施例之作動流程,其中,以下係以將主資料庫中之單一 表格複製儲存至副資料庫之流程為例,俾簡化說明,當然 下列流程亦適用於將主資料庫中之複數個表格複製儲^ 10 副資料庫中。 首先,係自時間To開始進行初次複製(步驟S6〇1),亦 即把主資料庫之表格中的資料全部複製儲存到副資料庫 中’並於時間To前啟動異動記錄播,異動記錄播將記錄自 ΤΘ後’表格中所有產生異動之f料的異動序號。如圖7 15所示,雖然在時間Tl已完成了一開始要求的表格複製,但 在T〇至T|所形成之起始複製期Μ中,f料R5、R6、及R7 皆接收到執行異動指令的動作,且㈣以及们已提交完成 異動指令,故將在如圖8所示之異動記錄射依序記錄有異 動序號001、及〇〇3,顯見即使副資料庫中已儲存有原先表 0才。的資但田貝料庫之表格中的資料卻無法與主資料庫 之資料完全-致。為解決此不一致的問題,將會啟動一個 複製流程,此複製流程首先掃描現在之異動資料播,並據 '產生此時之更新紀錄檔,由於在τ丨之前,資料及π已 1231908 提交完成異動指令,故圖9之更新記錄檔中對應於資料以 及R7的欄位將分別記錄1及2之更新序號。 ίο 15 20 由於本實施例係執行初次複製,因此異動記錄檔及更 新屺錄輻在T〇之前尚無記錄任何内容,故當系統判斷比對 出更新記錄檔中儲存有内容時(步驟S6〇2),代表在步驟 S601的複製過程中,部分產生異動(例如新增、刪除、或修 改)的資料已提交執行完成,則接著(即時間τ〇必須擷取出 更新。己錄枯中之全部更新序號(步驟S6〇3),據以從主資料 庫中擷取出對應的異動後資料R5及R7來更新副資料庫(步 驟S604)反之,右更新記錄擋並無記錄任何内容(步驟 S曰_),代表在步驟S6G1的複製過程中,並無其他資料已被 提父,則完成本次的初次複製流程。需注意的是,若資 係執行刪除指令,表示異動後之該筆資料已不存在於主資 料庫t,故副資料庫亦必須對應刪除其中之資料;若料 係執行新增指令,則副資料庫將對應新增該筆資料内容\ 總之’副資料庫係以主資料座中 — 能mu η 胃料中各♦異動後貧料的最後狀 悲作為其複製更新之依據。 為避免往後執行多餘之複製程序,因此副資料庫中之 ί格將記錄最大更新序號(步義〇5),於本實施例中,目 月,J所記錄之最大更新序號為「 最大更新序號之更新序於(牛驟S6⑹在5己錄元後刪除小於 4斤琥(步驟S606)。如此一來,將 由比對最大更新序號、與更新記_中之 ^ :’而得知後續是否有產生異動。於本實施例中, 1至丁2所形成的複製期間内,主資料庫並無任何資料產生 12 1231908 $動’因此更新記錄射之更新序號將等於記錄在副資料 Μ的最大更新序號(步驟S6G7)’表示 格中所健存的資料係和主資料庫完全一致,因此不= 订額外複製程序,繼而可結束本實施例之初次複製流程。 5 #主資料庫和副資料庫完成初次複製流程之後,將可 根才康使用白ί貝或而求,以設定每間隔一預設期間以後、將 主貝料庫中產生異動之資料複製到副資料庫中以維持兩者 資料的一致性’例如每間隔一分鐘、數分鐘、或半小時 不等。於本實施例中’ Τ2+Δί=τ;,因此將於T3時擁取出在 10 丁2之後所建立的更新記錄檔(步驟S6〇9)俾利進行增量更新 流程,請參閱圖10之異動記錄槽,由於在丁2完成初次複製 時,資料R6仍在執行中,因此系統係保留資料以6的異動序 號,僅刪除掉資料以及尺以斤對應記錄的異動序號,又,由 =主資料庫係於tm4修改資料以,因此異動記錄檔亦記錄有 15資料R5新產生的異動序號為〇〇4 ;且在凡時,資料r5&r6 皆已提交執行完成,故圖n之更新記錄檔中係記錄以及1^ 之更新序號,俾利系統根據更新序號以自主資料庫中擷取 出異動後的R5及R6、加以複製儲存到副資料庫中(步驟 S610),直到A完成上述兩筆資料的複製,並在記錄完最大 20更新序號「4」(步驟S605)之後、刪除多餘更新序號(步驟 S606)。 由於在A至A所形成之複製期間内,主資料庫中之資 料R7係於tm5執行異動指令、並於tnS提交,因此更新記錄棺 將如圖12所示,係記錄資料R7之更新序號為5,其大於儲 13 1231908 存在田i貝料庫中之最大更新序號「4」(步驟S術),因此, 二統:可據此自主資料庫中擷取出異動後之資料R7以複 製儲存到副資料庫(步驟S6〇8)。 5 10 15 —根據上述之說明,顯示本發明係可根據資料庫中針對 二:格:定義之更新記錄檔的更新序號、以進行資料複 红°亦即料需執行異動指令時,將先依序在里動 :;=(update log)中記錄其異動序號(up— :資料已提交執行完成異動指令後,才會根據各資料斤對 =動序號大小、以依序在更新記錄播 ,料之更新序號("Μ—)。如此-來由Ϊ 尚未被提交的資料將不會在更新記錄檔中記皮 在進行資料複製時,受到資料更新時 間過長、或執仃動作復原⑽lbaek)而導致後續複製 的=,俾能將主資料庫中之資料完整i j貝㈣中’同時可確保在複製過程中 維持在正常運作狀態。此外,本發 貝㈣乃 :程時、需將主資料庫中的全部資料表二=欠= 貝料庫中之外’後續流程僅需複製產生異動之料子5田J 有效提高系統效能;且本發明係適用於同 ^,將可 資料複製至副資料庫’而不至於影響到資料間二格之 一致性,實為一大進步。 〗的關連性與 上述貫施例僅係為了方便說明而舉例而 主張之權利範圍自應以申請專利範圍 :本發明所 於上述實施例。 ”、、旱’而非僅限 20 1231908 【圖式簡單說明】 圖1係為一時間軸示意圖。 圖2係為另一時間軸示意圖。 5 圖3係本發明一較佳實施例之時間軸示意圖一。 圖4係本發明一較佳實施例之異動記錄檔之示意圖 圖5係本發明一較佳實施例之更新記錄檔之示意圖 圖6係本發明一較佳實施例之流程圖。 一 10 15 圖7係本發明一輕伟眘你γ丨 钗佳貫轭例之時間軸示意圖二 ==ΓΤι時所記錄之異動記錄二 =為二:,寺, 67 、”、"日^間丁3時所記錄之里動"V棘 圖11係為圖7在時間Τ3時所 之/、動屺錄檔 圖12係為圖7在時間&時所^、彔之更新記錄檔
錄之更新記錄 檔 【圖號說明】 無
15

Claims (1)

1231908 拾、申請專利範圍·· 二1 · 一種關連式資料庫之表格複製方法,係辅以一異動 ==及一更新記錄檔,用以將一主資料庫中之複數個表 複製到一副資料冑中以完成一複製流程,每一表格 係對應定義有一異動記錄檔及一更新記錄; ,持續記錄該主資料庫之表格中每一筆執行一異= 料所依:產生的異動序號,該更新記錄檔係將已提交 兀、亥異動指令之該筆資料所對應的異動序 10 15 20 =序記料―更轉號,其中,㈣動指令係選自 中之一 ·新增指令、刪 括下列步驟: 及““曰令,該方法包 一起始複製步驟,係於一 該主資料座中i I 期間内、將儲存於 貝㈣中之以表格複製儲存至該❹料庫中. -判斷步驟,係判斷於該複製期間新 檔是否產生異動,若是,則繼續執行下列c己錄 該複製流程: 刃乂驟,否則完成 一筛選步驟’係篩選出料更槽 更新序號及其對應之資料;以及 π彳田中產生異動之 一後續複製步驟,係於一 … 生異動之更新序號所對應的資料::::間内、將該等產 庫中,並繼續執行該判斷步驟。 是i儲存至δ亥副資料 2.如申請專利範圍第丨項所述之、 複製步驟係於該起始複製期間内、,方法,其中,該起始 庫中之全部表格複製儲存至=儲存於該主資料 16 a^19〇8 3 ·如申凊專利範圍第2項 步驟係判斷該更新記錄檔是否二::方法,其中,該判斷 執行該筛選步驟。凉有内容,若是’則繼續 4. 如申請專利範圍第2 步驟係擁取出該等更新記錄檔= 方法,其中,該筛選 之資料。 *中之全部更新序號及其對應 5. 如申請專利範圍第丨項所 ίο 15 20 複製步驟係包括下列步驟:斤攻之方法’其中’該起始 錄二)及係擁取完成前—次複製流程後所建立之更新記 料二更新記錄檔記錄之更新序㈣ 枓依序複製儲存到該副資料庫中。 =如中請專利範圍第i項所述之方法,其中,該㈣ 複製步驟係包括下列步驟: (B1)係於-後績複製期間内、將該等產生異動之更 新序號所對應的資料依序複製料至㈣㈣庫中; (B2)係儲存該更新記錄檔中之最大更新序號;以及 、_係刪除所有小於該最大更新序號的更新序號, 並繼續執行該判斷步驟。 7·如申„月專利範圍第6項所述之方法,其中,於步驟 (B2)中’該更新記錄檔中之最大更新序號係記錄於該副資 料庫中,且該步驟(B3)係刪除儲存於該副資料庫中、所有 小於該最大更新序號的更新序號。 17 1231908 8.如申請專利範圍第6項所述 步驟係比對該等更新記錄播尹之〆Ί’該判斷 儲存之最大更新序號,若是=新序號是否大於已 」甲”月專利乾圍第!項所述之方法, 記錄播及該更新記錄檔中尚館存 / 5亥異動 號所對應之資料,且該後續複序號及更新序 ^ ^驟係於該後續複製期間 内自,亥更新,己錄檔中將該等產生 的資料依序複製儲存至該副資料庫中。’ ^ ,心 ίο 15 20 …10.如申請專利範圍第1所述之方法,其中,該後續 複製步驟係於該後續複製期間内、 、 該等產生異動之更新序號所對⑼亥主貢料庫中掏取出 副資料庫中。序柄對應的貧料依序複製儲存至該 …11·如申請專利範圍第1項所述之方法,其中,若一筆 資料尚未提交完成該異動指令, — 號係記錄無效Μ容。 心#料對應之更新序 丨2·如申請專利範圍第1項所述之方法,立中,若一筆 行該異動指令過程中、執行—復原指令,則該筆 -貝枓對應之更新序號係記錄無效之内容。 ^如申請專利範圍第i項所述之方法,其中,於執行 邊複“程時、該主資料庫仍持續正常運作。 18
TW92137193A 2003-12-26 2003-12-26 Table duplication method for relational database TWI231908B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW92137193A TWI231908B (en) 2003-12-26 2003-12-26 Table duplication method for relational database

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW92137193A TWI231908B (en) 2003-12-26 2003-12-26 Table duplication method for relational database

Publications (2)

Publication Number Publication Date
TWI231908B true TWI231908B (en) 2005-05-01
TW200521742A TW200521742A (en) 2005-07-01

Family

ID=36251072

Family Applications (1)

Application Number Title Priority Date Filing Date
TW92137193A TWI231908B (en) 2003-12-26 2003-12-26 Table duplication method for relational database

Country Status (1)

Country Link
TW (1) TWI231908B (zh)

Also Published As

Publication number Publication date
TW200521742A (en) 2005-07-01

Similar Documents

Publication Publication Date Title
CN111143389B (zh) 事务执行方法、装置、计算机设备及存储介质
US8788457B2 (en) Ensuring that the archival data deleted in relational source table is already stored in relational target table
JP6448609B2 (ja) データ取得方法及びシステム
CN102197365B (zh) 对分布式存储器系统中的数据的原子多重修改
US8782070B2 (en) Data pattern for storing information, including associated version and audit information for use in data management
JP2022511084A (ja) ブロックチェーン技術を用いてデータベースアプリケーションを増強するためのシステムおよび方法
CN109992628B (zh) 数据同步的方法、装置、服务器及计算机可读存储介质
US8572027B2 (en) Performing synchronization among relational database tables with minimal contention
CN101183322B (zh) 延迟日志生成的方法及其设备
CN108369601B (zh) 关系结构化数据中的提升属性
US20110145201A1 (en) Database mirroring
CN108369599A (zh) 冗余数据中心间的复制控制
CN100365632C (zh) 实现内存数据和数据库数据事务一致性的处理方法
US11422970B2 (en) Handling of data archiving events in a replication system
JP2006018796A (ja) データ処理方法および装置並びにストレージ装置およびその処理プログラム
WO2025086860A1 (zh) 数据表处理方法、装置、计算机设备和可读存储介质
CN114780286B (zh) 一种数据容灾方法、装置、设备及可读存储介质
US20060004877A1 (en) Method and system for data processing with data replication for the same
JP2017027326A (ja) ストレージシステムおよびストレージシステム用プログラム
EP3944094B1 (en) Parallel processing of changes in a distributed system
US12248486B2 (en) System for creating a dataset network
TWI231908B (en) Table duplication method for relational database
CN110543485A (zh) 一种基于快照的区块链预约归档方法
US20130166508A1 (en) Multiphase Approach To Data Availability
CN117435584A (zh) 一种基于离线数据仓库的多来源业务数据的修复方法

Legal Events

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