Oracle到PostgreSQL的不停機數據庫遷移的流程步驟
1970 年,數據庫之父 Edgar Frank Codd 發(fā)表了“數據的關系模型”論文,該論文為往后的關系型數據庫的發(fā)展奠定了基礎。1979 年,基于關系模型理論的數據庫產品 Oracle 2 首次亮相,并在過去的三四十年時間里,橫掃全球數據庫市場。
時間到了 1989 年,Oracle 進軍中國市場,場面幾乎也是 Oracle 一家獨大,大部分大型企業(yè)都被 Oracle 占領。Oracle 功能強大,運行穩(wěn)定的背后,是其高額的授權費用。盡管如此,由于 Oracle 的黏性實在太強,在沒有替代方案的情況下,接下來的相當長一段年月里,企業(yè)也都只能乖乖掏錢。
時至今日,情況已經發(fā)生了翻天覆地的變化,替代方案層出不窮,PostgreSQL 作為其中的一員,除了兼具多樣功能和強大性能之外,還具備非常優(yōu)秀的可擴展性,可以較好地兼容 Oracle,企業(yè)也可以從長期活躍的開源社區(qū)中得到豐富的資源和技術支持,最重要的是,PostgreSQL 是開源軟件,無需支付高昂的授權費用,這可以為企業(yè)省下不小的支出。因此,Oracle 到 PostgreSQL 的遷移成了眾多企業(yè)的首選。
然而,Oracle 到 PostgreSQL 的遷移并不是說遷就能遷的,有很多不得不解決的問題。
Oracle 遷移到 PostgreSQL 不得不解決的問題
業(yè)務的可用性:遷移必須在不影響業(yè)務的前提下進行,換句話說,遷移時不能停機,那需要考慮的事情就非常多了:存量和增量數據如何完整遷移?如何處理遷移時的性能波動?如何實現(xiàn)應用程序的平滑切換?等等。
表的初始化:在同步數據之前,需要手動在 PostgreSQL 端創(chuàng)建和源端一致的表結構,然后才能從源端接收數據。當源端有大量表且表結構很復雜的情況下,工作量非常大。
數據結構的映射:兩者數據結構不同,怎么確保數據從源端同步過來后的完整性?除非你對兩者的數據模型的理解非常極致,且保證絕對不出錯,才能達到理想的結果。
源端 DDL 語句的聯(lián)動:如何保證源端的數據結構發(fā)生變化時,同步鏈路不中斷?那就需要實時捕獲源端 Oracle 的 DDL 變更,并及時在目標端的 PostgreSQL 中同步執(zhí)行。
這些問題如果可以順利解決,遷移工作將會相當絲滑。那么如何解決呢?方法自然是有的。對于上述 4 個問題,NineData 有絕對的發(fā)言權,我們先來看看它是如何解決這些問題的:
遷移過程不停機:在不影響源端業(yè)務的情況下,進行全量和增量數據的遷移,保證源和目標的一致性,并在遷移完成后實施無縫切換。
結構復制:基于目標端數據源的特性,自動高效地完成表的創(chuàng)建、數據結構的映射等工作。
復制性能:基于動態(tài)攢批、并行復制、Stream Load 等技術,復制性能輕松達到 200 MB/S。
DDL 捕獲與執(zhí)行:實時檢測源端中的 DDL 操作,并同步在目標端中執(zhí)行,保證其他業(yè)務變更能夠穩(wěn)定地進行。
輕松解決且非常愉快,下面來看看怎么操作。
步驟一:錄入源和目標數據源
登錄 NineData 控制臺,單擊數據源管理>數據源,然后在頁面中單擊創(chuàng)建數據源,選擇需要錄入的數據源。
根據頁面提示進行配置,然后單擊創(chuàng)建數據源完成創(chuàng)建。
步驟二:配置同步鏈路
登錄 NineData 控制臺,單擊數據復制>數據復制,然后單擊創(chuàng)建復制。
根據頁面提示配置復制任務,由于我們需要不停機遷移,需要在復制類型處勾選增量復制。
配置完成后啟動任務,針對您配置的所有遷移對象,NineData 會先對所有的存量數據進行全量遷移,接下來就是實時同步 Oracle 中新增的增量數據,所有新寫入的數據都將一條不漏地同步到 PostgreSQL,每當目標端的增量數據追平源端時,任務面板中會顯示延遲 0 秒,如下圖所示。
步驟三(可選):校驗目標端同步數據的完整性
除了同步功能以外,NineData 還提供了同步后源端和目標端同步數據的對比功能,以確保目標端數據的完整性。
登錄 NineData 控制臺,單擊數據復制>數據復制,然后單擊步驟二中創(chuàng)建的復制任務 ID。
單擊數據對比頁簽,并單擊開啟數據對比(如果步驟二的任務配置中已勾選開啟數據一致性對比,則此處直接展示對比結果)。
提示
開啟后,系統(tǒng)將自動對比源端和目標端的同步對象,并給出對比結果。
您可以在一段時間后,單擊頁面中的重新對比,校驗最新增量數據的結果。
步驟四(可選):配置任務異常告警
由于是增量遷移任務,您可能需要系統(tǒng)實時監(jiān)控任務狀態(tài),在任務有異常時即刻通知您。
登錄 NineData 控制臺,單擊數據復制>數據復制,然后單擊步驟二中創(chuàng)建的復制任務 ID。
單擊右上角的配置告警。
輸入策略名稱,單擊保存配置即可。您可以直接使用內置的默認規(guī)則,在任務運行失敗,或復制延遲大于等于 10 分鐘的時候,發(fā)送短信提醒您。您也可以自定義創(chuàng)建規(guī)則,根據您的需求來進行通知。
最后
在 NineData 將所有數據遷移到 PostgreSQL 之后(延遲為 0),最后一步是在業(yè)務低峰期,將業(yè)務流量切換至 PostgreSQL,即可完成整個 Oracle 到 PostgreSQL 的遷移。這個切換過程是非常關鍵,需要謹慎規(guī)劃執(zhí)行。
以上就是Oracle到PostgreSQL的不停機數據庫遷移的流程步驟的詳細內容,更多關于Oracle到PostgreSQL數據庫遷移的資料請關注腳本之家其它相關文章!
相關文章
關于sql腳本導入Oracle時重復生成check約束的問題解決
這篇文章主要給大家介紹了關于sql腳本導入Oracle時重復生成check約束的問題解決方法,文中給出了詳細的檢查步驟,對大家理解和解決這個問題具有很好的幫助,需要的朋友們下面來一起看看吧。2017-05-05Oracle創(chuàng)建和管理分區(qū)索引的操作方法
創(chuàng)建和管理分區(qū)索引(Partitioned Index)是數據庫管理中的重要任務,特別是在處理大規(guī)模數據集時,以下是如何在Oracle數據庫中創(chuàng)建和管理分區(qū)索引的詳細步驟和示例代碼,感興趣的朋友一起看看吧2024-08-08