本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 AWS SCT 和 AWS DMS 將適用於甲骨文的亞馬遜 RDS 遷移到適用於 PostgreSQL 的 CLI 馬遜 RDS CloudFormation
創建者:皮尼什辛格爾(AWS)
環境:PoC 或試點 | 資料來源:Amazon RDS for Oracle | 目標:Amazon RDS for PostgreSQL |
R 型:重新建築 | 工作負載:甲骨文; 開源 | 技術:移轉;資料庫 |
AWS 服務:AWS DMS; Amazon RDS; AWS SCT |
Summary
此模式顯示如何使用 AWS Command Line Interface (AWS CLI) (AWS CLI) 將適用於甲骨文資料庫執行個體的多 TB Amazon Relational Database Service 服務 (Amazon RDS) 遷移到適用於 PostgreSQL 的資料庫執行個體。此方法提供最短的停機時間,而且不需要登入 AWS 管理主控台。
使用 AWS Schema Conversion Tool (AWS SCT) 和 AWS Database Migration Service (AWS DMS) 主控台,此模式有助於避免手動設定和個別遷移。此解決方案會為多個資料庫設定一次性組態,並在 AWS CLI 上使用 AWS SCT 和 AWS DMS 來執行遷移。
該模式使用 AWS SCT 將資料庫架構物件從亞馬遜 RDS 轉換為適用 Amazon RDS for PostgreSQL,然後使用 AWS DMS 遷移資料。使用 AWS CLI 中的 Python 指令碼,您可以使用 AWS 範本建立 AWS SCT 物件和 AWS DMS 任務。 CloudFormation
先決條件和限制
先決條件
作用中的 AWS 帳戶
適用於甲骨文資料庫執行個體的現有 Amazon RDS。
現有的亞馬遜 RDS 資料庫執行個體。
具有 Windows 或 Linux 作業系統的 Amazon EC2 執行個體或本機電腦,用於執行指令碼。
瞭解下列 AWS DMS 移轉任務類型:
full-load
、cdc
、full-load-and-cdc
。 如需詳細資訊,請參閱 AWS DMS 文件中的建立任務。使用適用於甲骨文和 PostgreSQL 資料庫引擎的 Java 資料庫連接 (JDBC) 驅動程式進行安裝和設定的 AWS SCT。如需詳細資訊,請參閱 AWS SCT 文件中的安裝 AWS SCT 和安裝所需的資料庫驅動程式。
已安裝 AWS SCT 資料夾中的
AWSSchemaConversionToolBatch.jar
檔案,已複製到您的工作目錄。
cli-sct-dms-cft.zip
文件(附加),下載並提取到您的工作目錄中。
最新的 AWS DMS 複寫執行個體引擎版本。如需詳細資訊,請參閱 AWS Support 文件中的如何建立 AWS DMS 複寫執行個
體,以及 AWS DMS 文件中的 AWS DMS 3.4.4 版本說明。 AWS CLI 第 2 版,使用您的存取金鑰 ID、秘密存取金鑰和執行指令碼的 Amazon 彈性運算雲端 (Amazon EC2) 執行個體或作業系統 (OS) 的預設 AWS 區域名稱進行安裝和設定。如需詳細資訊,請參閱 AWS CLI 文件中的安裝、更新和解除安裝 AWS CLI 第 2 版和設定 AWS CLI。
熟悉 AWS CloudFormation 範本。如需詳細資訊,請參閱 AWS CloudFormation 文件中的 AWS CloudFormation 概念。
Python 版本 3,在執行指令碼的亞馬遜 EC2 執行個體或作業系統上安裝和設定。如需詳細資訊,請參閱 Python 文件
。
限制
適用於 Oracle 資料庫執行個體的來源 Amazon RDS 執行個體的最低需求為:
甲骨文版本 12c(v12.1.0.2,版 12.2.0.1),18c(v18.0.0.0)和 19c(版 19.0.0.0),適用於企業版,標準版,標準版和標準二版。
雖然 Amazon RDS 支援甲骨文 18c (v18.0.0.0),但此版本處於淘汰的路徑上,因為甲骨文在該日期之後不再提供 18c 的修補程式。 end-of-support 如需詳細資訊,請參閱 Amazon RDS 文件中的甲骨文。
Amazon RDS for Oracle 11g 不再受支持。
適用於 PostgreSQL 資料庫執行個體的目標 Amazon RDS 資料庫執行個體的最低需求為:
第 9 版 PostgreSQL 版本 9.5 和 9.6 版)、第 10.x 版、11.x 版、第 12 版和第 13.x 版
產品版本
Amazon RDS for Oracle 文資料庫執行個體 12.1.0.2 及更新版本
Amazon RDS for PostgreSQL 庫執行個體 11.5 版及更新版本
AWS CLI 第 2 版
最新版本的 AWS SCT
Python 3 的最新版本
架構
源, 技術, 堆棧
Amazon RDS for Oracle
目標技術堆疊
Amazon RDS for PostgreSQL
來源與目標架構
下圖顯示使用 AWS DMS 和 Python 指令碼將 Amazon RDS for Oracle 文資料庫執行個體遷移到 Amazon RDS 適用於 PostgreSQL 的資料庫執行個體。
此圖表顯示下列移轉工作流程:
Python 指令碼使用 AWS SCT 連線到來源和目標資料庫執行個體。
使用者使用 Python 指令碼啟動 AWS SCT,將甲骨文程式碼轉換為 PostgreSQL 程式碼,然後在目標資料庫執行個體上執行該程式碼。
Python 指令碼會為來源和目標資料庫執行個體建立 AWS DMS 複寫任務。
使用者部署 Python 指令碼以啟動 AWS DMS 任務,然後在資料遷移完成後停止任務。
自動化和規模
您可以通過在單個程序中向 Python 腳本中添加多個功能的其他參數和安全相關更改來自動執行此遷移。
工具
AWS Command Line Interface (AWS CLI) (AWS CLI) 是一種開放原始碼工具,可協助您透過命令列殼層中的命令與 AWS 服務互動。
AWS 可 CloudFormation協助您設定 AWS 資源、快速且一致地佈建 AWS 資源,並在 AWS 帳戶和區域的整個生命週期中進行管理。這種模式使用 Python 腳本將 .csv 輸入文件轉換為 .json 輸入文件。在 AWS CLI 命令中使用 .json 檔案來建立 AWS 堆疊,該 CloudFormation 堆疊會使用 Amazon 資源名稱 (ARN)、遷移類型、任務設定和表格對映建立多個 AWS DMS 複寫任務。
AWS Database Migration Service (AWS DMS) 可協助您將資料存放區遷移到 AWS 雲端,或在雲端和現場部署設定的組合之間遷移資料存放區。此模式使用 AWS DMS 透過命令列執行的 Python 指令碼建立、啟動和停止任務,並建立 AWS CloudFormation 範本。
AWS Schema Conversion Tool (AWS SCT) 會自動將來源資料庫結構描述和大部分自訂程式碼轉換為與目標資料庫相容的格式,藉此支援異質資料庫遷移。此模式需要已安裝 AWS SCT 目錄中的
AWSSchemaConversionToolBatch.jar
檔案。
Code
該cli-sct-dms-cft.zip
文件(附件)包含此模式的完整源代碼。
史诗
任務 | 描述 | 所需技能 |
---|---|---|
將 AWS SCT 設定為從 AWS CLI 執行。 | 1. 使用下列格式,在
2. 根據下列檔案中的需求修改 AWS SCT 組態參數: | DBA |
執行 run_aws_sct.py Python 本。 | 使用下列命令執行
Python 腳本將數據庫對象從甲骨文轉換為 PostgreSQL,並創建在 PostgreSQL 格式的 SQL 文件。此指令碼也會建立 | DBA |
在 Amazon RDS for PostgreSQL。 |
| DBA |
任務 | 描述 | 所需技能 |
---|---|---|
建立 AWS DMS 複寫執行個體。 | 登入 AWS 管理主控台,開啟 AWS DMS 主控台,然後建立根據您的需求設定的複寫執行個體。 如需詳細資訊,請參閱 AWS DMS 文件中的建立複寫執行個體和 AWS Support 文件中的如何建立 AWS DMS 複寫執行 | DBA |
建立來源端點。 | 在 AWS DMS 主控台上,選擇端點,然後根據您的需求為 Oracle 資料庫建立來源端點。 注意:額外的連接屬性必須是 如需詳細資訊,請參閱 AWS DMS 文件中的建立來源和目標端點。
| DBA |
建立目標端點。 | 在 AWS DMS 主控台上,選擇端點,然後根據您的需求為 PostgreSQL 資料庫建立目標端點。 如需詳細資訊,請參閱 AWS DMS 文件中的建立來源和目標端點。 | DevOps 工程師 |
設定要從 AWS CLI 執行的 AWS DMS 複寫詳細資訊。 | 使用下列格式,使用來源端點 ARN、目標端點 ARN 和複寫執行個體 ARN,在
| DBA |
執行 dms-create-task .py 指 Python 碼以建立 AWS DMS 任務。 | 1. 使用下列命令執行
2. 視您的遷移類型而定,您可以使用下列命令建立三種類型的 AWS DMS 任務:
3. 已建立 AWS CloudFormation 堆疊和 AWS DMS 任務
| DBA |
檢查 AWS DMS 任務是否已準備就緒。 | 在 AWS 主控台中,在「狀態」區段中檢查 AWS DMS 任務是否處於 | DBA |
任務 | 描述 | 所需技能 |
---|---|---|
啟動 AWS DMS 任務。 | 使用下列命令執行
附註:開始日期和時間必須為 您可以在 AWS DMS 主控台的「任務」頁面上,在遷移任務的「表格統計資料」索引標籤中查看 AWS DMS 任務狀態。 | DBA |
驗證資料。 |
如需詳細資訊,請參閱 AWS DMS 文件中的 AWS DMS 資料驗證。 | DBA |
停止 AWS DMS 任務。 | 使用下列命令執行 Python 指令碼:
注意:根據驗證 | DBA |
故障診斷
問題 | 解決方案 |
---|---|
AWS SCT 來源和目標測試連線失敗 | 設定 JDBC 驅動程式版本和 VPC 安全群組輸入規則,以接受傳入流量。 |
來源或目標端點測試回合失敗 | 檢查端點設定和複製執行個體是否處於 如需詳細資訊,請參閱 AWS Support 文件中的如何對 AWS DMS 端點連線故障進行疑 |
完全負載運行失敗 | 檢查來源和目標資料庫是否具有相符的資料類型和大小。 如需詳細資訊,請參閱 AWS DMS 文件中的 AWS DMS 中的移轉任務疑難排解。 |
驗證執行錯誤 | 檢查表是否有一個主鍵,因為非主鍵表沒有被驗證。 如果資料表有主索引鍵和錯誤,請檢查來源端點中的額外連線屬性是否具有 如需詳細資訊,請參閱使用 Oracle 做為 AWS DMS 來源時的額外連線屬性 OracleSettings,以及 AWS DMS 文件中的疑難排解。 |
相關資源
附件
若要存取與此文件相關聯的其他內容,請解壓縮下列檔案:attachment.zip