使用 Oracle 旁觀者和 將內部部署 Oracle 資料庫遷移至 Amazon RDS for PostgreSQL AWS DMS - AWS 方案指引

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

使用 Oracle 旁觀者和 將內部部署 Oracle 資料庫遷移至 Amazon RDS for PostgreSQL AWS DMS

由 Cady Motyka 建立 (AWS)

Summary

此模式說明如何將現場部署 Oracle 資料庫遷移至下列任一 Postgre SQL相容AWS資料庫服務,並將停機時間降至最低:

  • Postgre 的 Amazon Relational Database Service (Amazon RDS)SQL

  • Amazon Aurora Postgre SQL相容版本

解決方案使用 AWS Database Migration Service (AWS DMS) 來遷移資料、AWSSchema Conversion Tool (AWS SCT) 來轉換資料庫結構描述,以及 Oracle 旁觀者資料庫來協助管理遷移。在此實作中,停機時間僅限於建立或驗證資料庫上所有外部金鑰所需的時間。 

解決方案也使用 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體搭配 Oracle 旁觀者資料庫,以協助透過 AWS 控制資料串流DMS。您可以暫停從現場部署 Oracle 資料庫到 Oracle 旁觀者的串流複寫,以啟用 AWS DMS 來跟上資料驗證,或使用其他資料驗證工具。Amazon RDS for PostgreSQL 資料庫執行個體或 Aurora Postgre SQL相容資料庫執行個體和旁觀者資料庫在完成AWSDMS遷移目前變更時,將具有相同的資料。 

先決條件和限制

先決條件

限制

  • 資料庫大小限制:64 TB

產品版本

  • AWS DMS 支援 10.2 版和更新版本 (適用於 10.x 版)、11g 和最多 12.2、18c 和 19c 的所有 Oracle 資料庫版本。如需支援版本的最新清單,請參閱使用 Oracle 資料庫做為 AWS 的來源DMS。我們建議您使用最新版本的 AWSDMS,以取得最完整的版本和功能支援。如需 AWS 支援的 Oracle 資料庫版本的相關資訊SCT,請參閱 AWS SCT 文件

  • AWS DMS 支援 PostgreSQL 9.4 版和更新版本 (適用於 9.x 版)、10.x、11.x、12.x 和 13.x。如需最新資訊,請參閱 AWS 文件AWS中的使用 PostgreSQL 資料庫做為 的目標DMS

架構

來源技術堆疊

  • 內部部署 Oracle 資料庫

  • 保留 Oracle 資料庫旁觀者的EC2執行個體

目標技術堆疊

  • Amazon RDS for PostgreSQL 或 Aurora PostgreSQL 執行個體,PostgreSQL 9.3 及更新版本

目標架構

下圖顯示使用 AWSDMS和 Oracle 旁觀者將 Oracle 資料庫遷移至 Postgre SQL相容AWS資料庫的範例工作流程:

在 上將內部部署 Oracle 資料庫遷移至 PostgreSQLAWS。

工具

史詩

任務描述所需的技能

設定 AWS SCT。

建立新的報告,並連接至 Oracle 做為來源,而 PostgreSQL 做為目標。在專案設定中,前往SQL指令碼索引標籤。將目標SQL指令碼變更為多個檔案。這些檔案將在稍後使用,並命名如下:

  • create_database.sql

  • create_sequence.sql

  • create_table.sql

  • create_view.sql

  • create_function.sql

DBA

轉換 Oracle 資料庫結構描述。

動作索引標籤中,選擇產生報告。然後選擇轉換結構描述,然後選擇另存為 SQL

DBA

修改指令碼。

例如,如果來源結構描述中的數字已在 Postgre 中轉換為數值格式SQL,但您想要BIGINT 改用 來提升效能,則建議您修改指令碼。

DBA
任務描述所需的技能

建立 Amazon RDS 資料庫執行個體。

在正確的AWS區域中,建立新的 PostgreSQL 資料庫執行個體。如需詳細資訊,請參閱《Amazon RDS 文件》中的建立 PostgreSQL 資料庫執行個體並連線至 PostgreSQL 資料庫執行個體上的資料庫。

AWS SysAdmin, DBA

設定資料庫執行個體規格。

指定資料庫引擎版本、資料庫執行個體類別、異地同步備份部署、儲存類型和配置的儲存。輸入資料庫執行個體識別符、主要使用者名稱和主要密碼。

AWS SysAdmin, DBA

設定網路和安全性。

指定虛擬私有雲端 (VPC)、子網路群組、公有可存取性、可用區域偏好設定和安全群組。

DBA, SysAdmin

設定資料庫選項。

指定資料庫名稱、連接埠、參數群組、加密和KMS金鑰。

AWS SysAdmin, DBA

設定備份。

指定備份保留期、備份時段、開始時間、持續時間,以及是否要將標籤複製到快照。

AWS SysAdmin, DBA

設定監控選項。

啟用或停用增強型監控和效能洞察。

AWS SysAdmin, DBA

設定維護選項。

指定自動次要版本升級、維護時段和開始日期、時間和持續時間。

AWS SysAdmin, DBA

從 AWS 執行遷移前指令碼SCT。

在 Amazon AWS RDS執行個體上,執行 產生的下列指令碼SCT:

  • create_database.sql

  • create_sequence.sql

  • create_table.sql

  • create_view.sql

  • create_function.sql

AWS SysAdmin, DBA
任務描述所需的技能

設定 Amazon 的網路EC2。

建立新的 VPC、子網路、網際網路閘道、路由表和安全群組。

AWS SysAdmin

建立EC2執行個體。

在適當的AWS區域中,建立新的EC2執行個體。選取 Amazon Machine Image (AMI)、選擇執行個體大小,並設定執行個體詳細資訊:執行個體數量 (1)、您在先前任務中建立的 VPC 和子網路、自動指派公有 IP 和其他選項。新增儲存、設定安全群組和啟動。出現提示時,請為下一個步驟建立並儲存金鑰對。

AWS SysAdmin

將 Oracle 來源資料庫連接至EC2執行個體。

將IPv4公有 IP 地址DNS和 複製到文字檔案,並使用 進行連線SSH,如下所示:ssh -i "your_file.pem" ec2-user@<your-IP-address-or-public-DNS>

AWS SysAdmin

在 Amazon 中為旁觀者設定初始主機EC2。

設定SSH金鑰、低音設定檔ORATAB、 和符號連結。建立 Oracle 目錄。

AWS SysAdmin、Linux Admin

在 Amazon 中設定旁觀者的資料庫複本 EC2

使用 RMAN建立資料庫複本、啟用補充記錄,以及建立待命控制檔案。複製完成後,將資料庫置於復原模式。

AWS SysAdmin, DBA

設定 Oracle Data Guard。

修改您的 listener.ora 檔案並啟動接聽程式。設定新的封存目的地。將旁觀者置於復原模式、取代暫存檔案以避免未來損毀、視需要安裝 crontab 以防止封存目錄空間不足,以及編輯來源和待命的 manage-trclog-files-oracle.cfg 檔案。

AWS SysAdmin, DBA

準備 Oracle 資料庫以同步運送。

新增待命日誌檔案並變更復原模式。在來源主要和來源待命SYNCAFFIRM上變更傳送至 的日誌。在主要 上切換日誌,透過 Amazon EC2 bystander 警示日誌確認您正在使用待命日誌檔案,並確認重做串流正在 中流動SYNC。

AWS SysAdmin, DBA
任務描述所需的技能

在 AWS 中建立複寫執行個體DMS。

完成名稱、執行個體類別 VPC(與 Amazon EC2執行個體相同)、異地同步備份和公有可存取性的欄位。在進階下,指定配置的儲存、子網路群組、可用區域、VPC安全群組和AWS金鑰管理服務 (AWSKMS) 金鑰。

AWS SysAdmin, DBA

建立來源資料庫端點。

指定端點名稱、類型、來源引擎 (Oracle)、伺服器名稱 (Amazon EC2私有DNS名稱)、連接埠、SSL模式、使用者名稱、密碼、 SIDVPC(指定VPC具有複寫執行個體的 ) 和複寫執行個體。若要測試連線,請選擇執行測試,然後建立端點。您也可以設定下列進階設定: maxFileSizenumberDataType擴展

AWS SysAdmin, DBA

AWS DMS 連線至 Amazon RDS for PostgreSQL。

建立跨 連線的遷移安全群組VPCs。

AWS SysAdmin, DBA

建立目標資料庫端點。

指定端點名稱、類型、來源引擎 (PostgreSQL)、伺服器名稱 (Amazon RDS端點)、連接埠、SSL模式、使用者名稱、密碼、資料庫名稱 VPC(指定VPC具有複寫執行個體的 ) 和複寫執行個體。若要測試連線,請選擇執行測試,然後建立端點。您也可以設定下列進階設定: maxFileSize numberDataType擴展

AWS SysAdmin, DBA

建立AWSDMS複寫任務。

指定任務名稱、複寫執行個體、來源和目標端點,以及複寫執行個體。針對遷移類型,選擇遷移現有資料並複寫進行中的變更。清除建立時啟動任務核取方塊。

AWS SysAdmin, DBA

設定AWSDMS複寫任務設定。

針對目標資料表準備模式,選擇不執行任何動作。完全載入完成後停止任務 (建立主索引鍵)。指定有限或完整LOB模式,並啟用控制資料表。或者,您可以設定CommitRate進階設定。

DBA

設定資料表映射。

資料表映射區段中,為遷移中包含的所有結構描述中的所有資料表建立包含規則,然後建立排除規則。新增三個轉換規則,將結構描述、資料表和資料欄名稱轉換為小寫,並新增此特定遷移所需的任何其他規則。

DBA

啟動任務。

啟動複寫任務。確定完全載入正在執行中。在主要 Oracle 資料庫ALTERSYSTEMSWITCHLOGFILE上執行 以啟動任務。

DBA

從 AWS 執行中遷移指令碼SCT。

在 Amazon RDS for Postgre AWS 中SQL,執行 產生的下列指令碼SCT:

  • create_index.sql

  • create_constraint.sql

DBA

重新啟動任務以繼續變更資料擷取 (CDC)。

在 Amazon RDS for PostgreSQL 資料庫執行個體VACUUM 上執行,然後重新啟動AWSDMS任務以套用快取CDC的變更。

DBA
任務描述所需的技能

檢閱AWSDMS日誌和驗證資料表是否有任何錯誤。

檢查並修正任何複寫或驗證錯誤。

DBA

停止所有 Oracle 相依性。

停止所有 Oracle 相依性、關閉 Oracle 資料庫上的接聽程式,然後執行 ALTER SYSTEM SWITCH LOGFILE。當AWSDMS任務未顯示活動時停止任務。

DBA

從 AWS 執行遷移後指令碼SCT。

在 Amazon RDS for Postgre AWS 中SQL,執行 產生的下列指令碼SCT:

  • create_foreign_key_constraint.sql

  • create_triggers.sql

DBA

完成其他 Amazon RDS for PostgreSQL 步驟。

視需要增加符合 Oracle 的遞增序列、執行 VACUUMANALYZE,並拍攝快照以符合規範。

DBA

開啟 Amazon RDS for Postgre 的連線SQL。

從 Amazon RDS for Postgre 移除AWSDMS安全群組SQL、新增生產安全群組,並將您的應用程式指向新的資料庫。

DBA

清除AWSDMS物件。

移除端點、複寫任務、複寫執行個體和EC2執行個體。

SysAdmin, DBA

相關資源