將資料從內部部署 Oracle 資料庫遷 PostgreSQL 至 Aurora - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將資料從內部部署 Oracle 資料庫遷 PostgreSQL 至 Aurora

由鄧美雪(AWS)和蜀南祥(AWS)創建

環境:PoC 或試點

來源:甲骨文

目標:Aurora 郵政兼容

R 型:重新建築

工作量:甲骨文

技術:移轉;資料庫

AWS 服務:Amazon Aurora;AWS DMS;AWS SCT

Summary

此模式提供從現場部署 Oracle 資料庫移轉至 Amazon Aurora PostgreSQL 相容版本的資料指引。它針對包含具有高資料處理語言 (DML) 活動的大型表格的多 TB Oracle 資料庫停機時間最少的線上資料移轉策略。「Oracle 作用中資料保全」待命資料庫是用來卸載主要資料庫之資料移轉的來源。在完全負載期間,可以暫停從 Oracle 主要資料庫到待命資料庫的複寫,以避免發生 ORA-01555 錯誤。 

主鍵(PK)或具有數據類型 NUMBER 的外鍵(FK)中的表列通常用於在 Oracle 中存儲整數。我們建議您在 PostgreSQL 中將它們轉換為 INT 或大 INT,以獲得更好的性能。您可以使用 AWS Schema Conversion Tool (AWS SCT) 變更 PK 和 FK 欄的預設資料類型對應。如需詳細資訊,請參閱 AWS 部落格文章將 NUMBER 資料類型從甲骨文轉換為 PostgreSQL。) 此模式中的資料遷移使用 AWS Database Migration Service (AWS DMS) 進行全負載和變更資料擷取 (CDC)。

您也可以使用此模式將現場部署 Oracle 資料庫遷移到適用於 PostgreSQL 的 Amazon Relational Database Service 服務 (Amazon RDS) 或亞馬遜彈性運算雲端 (亞馬遜 EC2) 上託管的甲骨文資料庫遷移到 Amazon RDS (適用於 PostgreSQL) 或 Aurora PostgreSQL 相容。

先決條件和限制

先決條件

限制

產品版本

架構

源, 技術, 堆棧

  • 設定 Oracle 作用中資料保全待命的內部部署 Oracle 資料庫

目標技術堆疊

  • Aurora 郵政兼容 

資料移轉架構

將甲骨文數據庫遷移到 Aurora 兼容

工具

  • AWS DMS-AWS Database Migration Service (AWS DMS) 支援多個來源和目標資料庫。如需支援的 Oracle 來源和目標資料庫版本和版本清單,請參閱 AWS DMS 文件中的使用 Oracle 資料庫做為 AWS DMS 的來源。如果 AWS DMS 不支援來源資料庫,您必須選取另一種移轉階段 6 中的資料的方法 (在「史詩」區段中)。 重要注意事項:由於這是異質移轉,因此您必須先檢查資料庫是否支援商業 off-the-shelf (COTS) 應用程式。如果應用程式為 COTS,請在繼續之前諮詢廠商以確認是否支援 Aurora PostgreSQL 相容。如需詳細資訊,請參閱 AWS 文件中的 AWS DMS 逐步移轉逐步解說。

  • AWS SCT-AWS S chema Conversion Tool (AWS SCT) 會自動將來源資料庫結構描述和大部分自訂程式碼轉換為與目標資料庫相容的格式,以促進異質資料庫遷移。該工具轉換的自定義代碼包括視圖,存儲過程和函數。該工具無法自動轉換的任何代碼都會清楚標記,以便您可以自行轉換。 

史诗

任務描述所需技能
驗證來源和目標資料庫版本。DBA
安裝 AWS SCT 和驅動程式。DBA
新增和驗證 AWS SCT 先決條件使用者和補助金來源資料庫。DBA
為工作負載建立 AWS SCT 專案,並連線到來源資料庫。DBA
產生評估報告並評估可行性。DBA,應用程式擁有者
任務描述所需技能
建立與 Aurora PostgreSQL 相容的目標資料庫。DBA
從來源資料庫擷取使用者、角色和授權清單。DBA
將現有的資料庫使用者對應至新的資料庫使用者。應用所有者
在目標資料庫中建立使用者。DBA
將上一個步驟中的角色套用至目標 Aurora PostgreSQL 相容資料庫。DBA
複查來源資料庫中的資料庫選項、參數、網路檔案和資料庫連結,並評估它們對目標資料庫的適用性。DBA,應用程式擁有者
將任何相關設定套用至目標資料庫。DBA
任務描述所需技能
設定與目標資料庫的 AWS SCT 連線。DBA
在 AWS SCT 中轉換結構描述,並將轉換後的程式碼儲存為 .sql 檔案。DBA,應用程式擁有者
手動轉換任何無法自動轉換的資料庫物件。DBA,應用程式擁有者
優化數據庫代碼轉換。DBA,應用程式擁有者
根據物件類型,將 .sql 檔案分隔成多個 .sql 檔案。DBA,應用程式擁有者
驗證目標資料庫中的 SQL 指令碼。DBA,應用程式擁有者
任務描述所需技能
建立 AWS DMS 複寫執行個體。DBA
建立來源端點和目標端點。

如果 PKS 和 FK 的資料類型是從 Oracle 中的數字轉換為 PostgreSQL 中的 BIGINT,請考慮在建立來源端點numberDataTypeScale=-2時指定連線屬性。

DBA
任務描述所需技能
在目標資料庫中建立結構描述和表格。DBA
透過將資料表分組或根據資料表大小分割大型資料表,來建立 AWS DMS 全負載任務。DBA
短時間停止來源 Oracle 資料庫上的應用程式。應用所有者
確認 Oracle 待命資料庫與主要資料庫是否同步,並停止從主要資料庫複製到待命資料庫。DBA,應用程式擁有者
在來源 Oracle 資料庫上啟動應用程式。應用所有者
從 Oracle 待命資料庫到 Aurora PostgreSQL 相容的資料庫,以 parallel 方式啟動 AWS DMS 全負載任務。DBA
在滿載完成後建立 PKs 和次要索引。DBA
驗證資料。DBA
任務描述所需技能
透過指定自訂 CDC 開始時間或系統變更編號 (SCN),以建立 AWS DMS 進行中的複寫任務,方法是在 Oracle 待命與主資料庫同步化時,以及在先前的任務中重新啟動應用程式之前。DBA
parallel 啟動 AWS DMS 任務,將進行中的變更從 Oracle 待命資料庫複寫到 Aurora PostgreSQL 相容的資料庫。DBA
重新建立從 Oracle 主要資料庫到待命資料庫的複製。DBA
當目標 Aurora PostgreSQL 相容資料庫幾乎與來源 Oracle 資料庫同步時,請監視記錄檔並停止 Oracle 資料庫上的應用程式。DBA,應用程式擁有者
當目標與來源 Oracle 資料庫完全同步時,請停止 AWS DMS 任務。DBA
建立 SDK 並驗證目標資料庫中的資料。DBA
在目標資料庫中建立函數、檢視、觸發程序、序列及其他物件類型。DBA
在目標資料庫中套用角色授與。DBA
任務描述所需技能
使用 AWS SCT 分析和轉換應用程式程式碼中的 SQL 陳述式。應用所有者
在 AWS 上建立新的應用程式伺服器。應用所有者
將應用程式程式碼移轉至新伺服器。應用所有者
設定目標資料庫和驅動程式的應用程式伺服器。應用所有者
修正應用程式中原始碼資料庫引擎專屬的任何程式碼。應用所有者
最佳化目標資料庫的應用程式程式碼。應用所有者
任務描述所需技能
將新的應用程式伺服器指向目標資料庫。DBA,應用程式擁有者
執行完整性檢查。DBA,應用程式擁有者
去直播吧。DBA,應用程式擁有者
任務描述所需技能
關閉臨時 AWS 資源。DBA, 系統管理員
審核並驗證專案文件。DBA,應用程式擁有者
收集移轉時間的指標、手動與工具使用的百分比、節省成本,以及類似資料。DBA,應用程式擁有者
關閉專案並提供意見反應。DBA,應用程式擁有者

相關資源

參考

教學課程