使用甲骨文旁觀者和 AWS DMS 將現場部署甲骨文資料庫遷移到亞馬遜 RDS - AWS 方案指引

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

使用甲骨文旁觀者和 AWS DMS 將現場部署甲骨文資料庫遷移到亞馬遜 RDS

由凱迪·莫蒂卡(AWS)創建

環境:PoC 或試點

來源:數據庫:關係

目標:亞馬遜 RDS 後服務/Amazon Aurora

R 型:重新建築

工作量:甲骨文

技術:移轉;資料庫

AWS 服務:Amazon RDS

Summary

此模式說明如何在最短的停機時間內將現場部署 Oracle 資料庫遷移至下列任一 PostgreSQL 相容 AWS 資料庫服務:

  • Amazon Relational Database Service 服務 (Amazon RDS)

  • Amazon Aurora PostgreSQL-Compatible Edition

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

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

先決條件和限制

先決條件

限制

  • 資料庫大小限制:64 TB

產品版本

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

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

架構

源, 技術, 堆棧

  • 內部部署 Oracle 資料庫

  • 持有 Oracle 資料庫旁觀者的 EC2 執行個體

目標技術堆疊

  • Amazon RDS for PostgreSQL PostgreSQL 或 Aurora 執行個體

目標架構

下圖顯示使用 AWS DMS 和甲骨文旁觀者將 Oracle 資料庫遷移到與 PostgreSQL 相容的 AWS 資料庫的工作流程範例:

工具

史诗

任務描述所需技能

設定 AWS SCT。

創建一個新的報告,並連接到甲骨文作為源和 PostgreSQL 作為目標。在 [專案設定] 中,移至 [SQL 指令碼] 索引標籤。將「目標 SQL 命令檔」變更為「多個檔案」。這些文件將在以後使用並命名如下:

  • create_database.sql

  • create_sequence.sql

  • create_table.sql

  • create_view.sql

  • create_function.sql

DBA

轉換 Oracle 數據庫模式。

在「作」標籤中,選擇「產生報告」。然後,選擇「轉換結構描述」並選擇「另存為 SQL」。

DBA

修改指令碼。

例如,如果來源結構描述中的數字已在 PostgreSQL 中轉換為數字格式,但您想要改用 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

設定維護選項。

指定 auto 次要版本升級、維護時段,以及開始日期、時間和持續時間。

AWS SysAdmin、DBA

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

在 Amazon RDS 執行個體上,執行 AWS 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 以及其他選項。新增儲存區、設定安全群組,然後啟動。出現提示時,建立並儲存 key pair 以供下一個步驟使用。

AWS SysAdmin

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

IPv4 的公共 IP 地址和 DNS 複製到一個文本文件,並通過使用 SSH 連接,如下所示:ssh-我「你的文件. address-or-public

AWS SysAdmin

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

設置 SSH 密鑰,bash 配置文件,ORATAB 和符號鏈接。建立甲骨文目錄。

AWS SysAdmin 管理員

在 Amazon EC2 中為旁觀者設定資料庫副本

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

AWS SysAdmin、DBA

設定「Oracle 資料保全」。

修改您的偵聽器 .ora 文件並啟動監聽器。設定新的歸檔目的地。將旁觀者置於恢復模式,替換臨時文件以避免 future 的損壞,必要時安裝 crontab 以防止存檔目錄空間不足,並編輯源和待命文件的 manage-trclog-files-oracle.cfg 文件。

AWS SysAdmin、DBA

準備 Oracle 資料庫以同步出貨。

新增待命記錄檔並變更復原模式。在來源主要和來源待命狀態上,將記錄傳送變更為 SYNC AFFIRM。切換主日誌、透過 Amazon EC2 旁觀者警示日誌確認您正在使用待命日誌檔,並確認重做串流以 SYNC 方式流動。

AWS SysAdmin、DBA
任務描述所需技能

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

填寫名稱、執行個體類別、VPC (與 Amazon EC2 執行個體相同)、異地同步備份和公共協助工具的欄位。在進階下,指定已配置的儲存體、子網路群組、可用區域、VPC 安全群組和 AWS Key Management Service (AWS KMS) 金鑰。

AWS SysAdmin、DBA

建立來源資料庫端點。

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

AWS SysAdmin、DBA

將 AWS DMS Connect 到 Amazon RDS for PostgreSQL。

為跨 VPC 的連線建立移轉安全性群組。

AWS SysAdmin、DBA

建立目標資料庫端點。

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

AWS SysAdmin、DBA

建立 AWS DMS 複寫任務。

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

AWS SysAdmin、DBA

設定 AWS DMS 複寫任務設定。

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

DBA

設定表格對映。

在「表格對應」段落中,為移轉中含的所有綱要中的所有表格建立「包括」規則,然後建立「排除」規則。新增三個轉換規則,將結構描述、資料表和資料行名稱轉換為小寫,並新增此特定移轉所需的任何其他規則。

DBA

開始工作。

啟動複寫工作。確保滿載正在運行。在主要 Oracle 資料庫上執行 ALTER 系統交換器記錄檔,以啟動作業。

DBA

從 AWS SCT 執行中間移轉指令碼。

在 Amazon RDS for PostgreSQL 中,執行以下由 AWS SCT 產生的指令碼:

  • create_index.sql

  • create_constraint.sql

DBA

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

在適用 Amazon RDS for PostgreSQL 的資料庫執行個體上執行真空,然後重新啟動 AWS DMS 任務以套用快取的疾病控制中心變更。

DBA
任務描述所需技能

檢閱 AWS DMS 日誌和驗證表格是否有任何錯誤。

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

DBA

停止所有 Oracle 相依性。

停止所有的 Oracle 相依性、關閉 Oracle 資料庫上的監聽器,然後執行 ALTER 系統切換日誌檔案。如果沒有顯示任何活動,請停止 AWS DMS 任務。

DBA

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

在 Amazon RDS for PostgreSQL 中,執行以下由 AWS SCT 產生的指令碼:

  • create_foreign_key_constraint.sql

  • create_triggers.sql

DBA

完成其他 Amazon RDS for PostgreSQL 驟。

如果需要,增加序列以匹配 Oracle,運行真空分析,並拍攝快照以確保合規性。

DBA

開啟與 Amazon RDS for PostgreSQL。

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

DBA

清理 AWS DMS 物件。

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

SysAdmin, DBA

相關資源