由於某些營運需求,企業可能希望以區段性的方式執行資料同步,以避免在系統尖峰時段影響應用系統的使用者體驗。基於「資料保證交付」的核心價值,IDR 資料抄寫引擎在停止訂閱並重新啟動後,仍然會依據原始 SQL 交易順序,持續將異動資料同步至目標系統。換言之,即使在訂閱停止期間,來源端資料庫所發生的新增、修改或刪除操作,仍會在重新啟動訂閱後,完整同步至目的端資料庫中。本篇文章將延續 Part 2 文章中建立的 ORCL_TO_SQL_3 訂閱任務,模擬在訂閱停止期間對 Oracle 資料庫中的 CREDIT_APP 資料表進行新增、更新及刪除等操作,並於重新啟動訂閱任務後,觀察 Microsoft SQL Server 目的端資料庫的資料同步結果,以驗證 IDR 在區段同步情境下的資料一致性與可靠性。
IBM Data Replication 是一套運用 Change Data Capture(CDC)即時資料同步抄寫技術,滿足企業經營管理高層即時商業性決策需求的有效工具。我們在《即時資料同步抄寫解決方案》文章中有介紹過,這個工具非常適合用於主機系統報表查詢外移、數據中台資料共享架構、混合雲資料庫即時同步、以及集中式主資料管理系統等四種常見的商業應用場景。無論是哪一種應用場景,IBM Data Replication(以下簡稱為 IDR)的核心技術就是快速且穩定地在異質資料庫之間進行異動資料的同步抄寫。
本系列文章將以 Oracle to SQL Server 為例,帶您逐步了解資料同步與抄寫的實作流程。在《環境建置篇》我們聚焦於整體實作環境所需的軟體安裝與設定,共分為來源端(Part 1)、目的端(Part 2)與中控端(Part 3)等三篇文章。《實作演練篇》則會詳細說明 IDR 如何因應各種常見使用場景的操作流程,共分為標準與稽核模式同步抄寫(Part 1)、自訂客製化稽核欄位(Part 2)、同步抄寫作業的停止與重新啟動(Part 3)以及同步抄寫作業監控與效能瓶頸分析(Part 4)等四篇文章,這些豐富地內容將可協助您快速掌握實務操作的技巧。
IDR CDC 資料同步抄寫實作《實作演練篇》Part 3:同步抄寫作業的停止與重新啟動
請在 IDR 管理主控台中切換到「監視」視圖,以滑鼠右鍵點擊 ORCL_TO_SQL_3 訂閱,於選單中點擊「結束抄寫」選項。
在「結束抄寫」視窗中可以觀察到 IDR 資料抄寫引擎共提供四種結束抄寫方法,請點選「正常」方法,點擊「確定」按鈕。
- 正常結束(Normal):待目前正在進行的同步抄寫工作完成後停止連續鏡映抄寫。因此,這個選項需要一些時間來確認同步抄寫工作已達到穩定並可結束的狀態。
- 立即結束(Immediate):立即停止所有正在進行的同步抄寫工作,然後結束連續鏡映抄寫工作。
- 中止抄寫(Abort):立即停止所有正在進行的同步抄寫工作,然後快速結束連續鏡映抄寫工作。此選項是結束抄寫工作最快的方法。
- 預定結束(Scheduled End):IDR 資料抄寫引擎會處理資料庫交易日誌中所有已 Commit 的變更,然後以正常方式結束同步抄寫工作。此選項可以指定「立即」、「特定日期和時間」以及「特定日誌位置」作為結束同步抄寫工作的時機。
再回到「監視」視圖,可以發現 ORCL_TO_SQL_3 訂閱的狀態已變更為「非作用中」,表示 IDR 資料抄寫引擎從現在開始不會同步來源端 Oracle 資料庫的異動到 SQL Server 目的端資料庫。
接下來,我們使用 Python 程式對 Oracle 來源資料表 CREDIT_APP 執行新增、修改、刪除資料的操作。首先,在執行異動操作前 CREDIT_APP 共有 1,100 筆資料。三支 Python 程式執行結束後,查詢 CREDIT_APP 資料表,資料筆數變更為 2,100 筆。由於 ORCL_TO_SQL_3 訂閱任務已停止,我們預期 SQL Server 中的目標資料表 CREDIT_APP_T 資料筆數應維持在一開始的 1,100 筆資料。
檢視 SQL Server 中的目標資料表 CREDIT_APP_T,總資料筆數如預期仍然是 1,100 筆資料。
重新啟動 ORCL_TO_SQL_3 訂閱任務,鏡映方法請點選「連續」,點擊「確定」按鈕。
接續使用 Python 程式對 Oracle 來源資料表 CREDIT_APP 執行新增、修改、刪除資料的操作。首先,在執行異動操作前 CREDIT_APP 共有 2,100 筆資料。三支 Python 程式執行結束後,查詢 CREDIT_APP 資料表,資料筆數變更為 3,100 筆。
檢視 SQL Server 中的目標資料表 CREDIT_APP_T,總資料筆數如預期已變更為 3,100 筆資料。
我們可以從 SQL Server 中仔細觀察這三次異動操作的資料同步變化。首先,第一次操作(Part 2 文章執行的異動交易)IDR 資料抄寫引擎在訂閱啟動下執行了 SK_ID_CURR 介於 202000 ~ 202999 的資料同步抄寫。
其次,ORCL_TO_SQL_3 訂閱任務停止後,我們在 Oracle 執行了 SK_ID_CURR 介於 302000 ~ 302999 的第二次資料異動操作。訂閱任務重新啟動後,IDR 資料抄寫引擎會先取得這段時間的資料庫交易日誌,並且按照時間先後順序進行資料同步抄寫。
最後,在 ORCL_TO_SQL_3 訂閱任務啟動的狀態下,我們在 Oracle 執行了 SK_ID_CURR 介於 402000 ~ 402999 的第三次資料異動操作。這些異動資料會即時同步抄寫到目的端 CREDIT_APP_T 資料表中。
藉由以上實作的過程,我們充分展現了 IDR 為企業創造「低影響」、「低延遲」以及「資料保證交付」的核心價值。在企業實際應用的環境中,若無法透過「連續鏡映」模式讓來源端與目的端資料庫始終保持同步狀態,系統管理人員可以使用「預定結束」的功能,讓 IDR 資料抄寫引擎在指定的時間自動停止同步抄寫工作,然後使用排程工具觸發 IDR 資料抄寫引擎啟動訂閱任務。如此,就能夠滿足自動化的區段資料同步需求。
Part 2:自訂客製化稽核欄位 《 上一篇 ∣ 下一篇 》 Part 4:同步抄寫作業監控與效能瓶頸分析
版權聲明
文章內容未經授權,請勿進行任何形式的複製、修改或發佈本文內容,如需轉載或引用,請在使用時注明出處並取得授權。本文中提及的特定公司、產品、品牌名稱等僅為描述目的,其版權歸屬於相應的公司或擁有者。
沒有留言:
張貼留言