使用 Oracle SQL開發人員和 逐步從 Amazon RDS for Oracle 遷移至 Amazon RDS for PostgreSQL AWS SCT - AWS 方案指引

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

使用 Oracle SQL開發人員和 逐步從 Amazon RDS for Oracle 遷移至 Amazon RDS for PostgreSQL AWS SCT

由 Pinesh Singal 建立 (AWS)

環境:PoC 或試行

來源:Amazon RDS for Oracle

目標:Amazon RDS for PostgreSQL

R 類型:重新架構

工作負載:Oracle

技術:遷移;資料庫;現代化

AWS 服務:Amazon EC2;Amazon RDS

Summary

許多遷移策略和方法以多個階段執行,持續時間可能從數週到數個月。在此期間,由於要遷移至 PostgreSQL 資料庫執行個體的來源 Oracle 資料庫執行個體中的修補或升級,您可能會遇到延遲。為了避免這種情況,建議您將剩餘的 Oracle 資料庫程式碼逐步遷移至 PostgreSQL 資料庫程式碼。

此模式提供增量遷移策略,對於初始遷移後執行大量交易且必須遷移至 PostgreSQL 資料庫的多 TB Oracle 資料庫執行個體,其不會停機。您可以使用此模式 step-by-step的方法,將 Oracle 資料庫執行個體的 Amazon Relational Database Service (Amazon RDS) 逐步遷移至 Amazon RDS for PostgreSQL 資料庫執行個體,而無需登入 Amazon Web Services (AWS) 管理主控台。

此模式使用 Oracle SQL 開發人員來尋找來源 Oracle 資料庫中兩個結構描述之間的差異。然後,您可以使用AWSSchema Conversion Tool (AWS SCT) 將 Amazon RDS for Oracle 資料庫結構描述物件轉換為 Amazon RDS for PostgreSQL 資料庫結構描述物件。然後,您可以在 Windows 命令提示字元中執行 Python 指令碼,為來源資料庫AWSSCT物件的增量變更建立物件。

注意:在遷移生產工作負載之前,建議您在測試或非生產環境中,針對此模式的方法執行概念驗證 PoC)。

先決條件和限制

先決條件

  • 作用中的 AWS 帳戶。

  • 現有的 Amazon RDS for Oracle 資料庫執行個體。 

  • 現有的 Amazon RDS for PostgreSQL 資料庫執行個體。

  • AWS SCT,安裝並設定 Oracle 和 PostgreSQL 資料庫引擎的JDBC驅動程式。如需詳細資訊,請參閱 AWS SCT 文件中的安裝AWSSCT安裝所需的資料庫驅動程式。 

  • Oracle SQL 開發人員,已安裝並設定。如需詳細資訊,請參閱 Oracle SQL開發人員文件。 

  • incremental-migration-sct-sql.zip 檔案 (已連接),已下載至本機電腦。

限制

  • 來源 Amazon RDS for Oracle 資料庫執行個體的最低需求為:

    • Oracle 10.2 版及更新版本 (適用於 10.x 版)、11g (11.2.0.3.v1 版及更新版本),以及 Enterprise、Standard、Standard One 和 Standard Two 版的 18c

  • 您的目標 Amazon RDS for PostgreSQL 資料庫執行個體的最低需求為: 

    • PostgreSQL 9.4 版和更新版本 (適用於 9.x 版)、10.x 和 11.x 版

  • 此模式使用 Oracle SQL 開發人員。如果您使用其他工具尋找和匯出結構描述差異,結果可能會有所不同。

  • Oracle SQL開發人員產生的SQL指令碼可能會引發轉換錯誤,這表示您需要執行手動遷移。

  • 如果AWSSCT來源和目標測試連線失敗,請確定您已設定虛擬私有雲端 (VPC) 安全群組的JDBC驅動程式版本和傳入規則,以接受傳入流量。

產品版本

  • Amazon RDS for Oracle 資料庫執行個體 12.1.0.2 版 (10.2 版及更新版本)

  • Amazon RDS for PostgreSQL 資料庫執行個體 11.5 版 (9.4 版及更新版本)

  • Oracle SQL 開發人員 19.1 版及更新版本

  • AWS SCT 1.0.632 版及更新版本

架構

來源技術堆疊

  • Amazon RDS for Oracle 資料庫執行個體

目標技術堆疊

  • Amazon RDS for PostgreSQL 資料庫執行個體

來源和目標架構

下圖顯示 Amazon RDS for Oracle 資料庫執行個體遷移至 Amazon RDS for PostgreSQL 資料庫執行個體。

從 Amazon RDS for Oracle 遷移至 Amazon RDS for Postgre 的工作流程SQL。

圖表顯示下列遷移工作流程:

  1. 開啟 Oracle SQL 開發人員並連線至來源和目標資料庫。

  2. 產生 diff 報告,然後產生結構描述差異物件的SQL指令碼檔案。如需 diff 報告的詳細資訊,請參閱 Oracle 文件中的詳細 diff 報告

  3. 設定AWSSCT並執行 Python 程式碼。

  4. SQL 指令碼檔案會從 Oracle 轉換為 Postgre SQL。

  5. 在目標 PostgreSQL 資料庫執行個體上執行SQL指令碼檔案。 

自動化和擴展

您可以將單一程式中多個功能的其他參數和安全相關變更新增至 Python 指令碼,以自動化此遷移。

工具

  • AWS SCT – AWS Schema Conversion Tool (AWS SCT) 會將您現有的資料庫結構描述從一個資料庫引擎轉換為另一個資料庫引擎。

  • Oracle SQL開發人員 – Oracle SQL開發人員是一種整合的開發環境 (IDE),可簡化傳統和雲端部署中 Oracle 資料庫的開發和管理。

Code

incremental-migration-sct-sql.zip 檔案 (已連接) 包含此模式的完整原始碼。

史詩

任務描述所需的技能

在 Oracle SQL開發人員中執行資料庫差異。

  1. 登入來源 Oracle 資料庫執行個體,選擇 工具 ,然後選擇 資料庫差異

  2. 在來源連線 中選擇您的來源資料庫。

  3. 目的地連線 中選擇更新或修補的來源資料庫。

  4. 根據您的需求設定其餘選項,選擇下一步 ,然後選擇完成以產生差異報告。

DBA

產生SQL指令碼檔案。

選擇產生指令碼以產生SQL檔案中的差異。 

這會產生SQL指令碼檔案,AWSSCT用來將資料庫從 Oracle 轉換為 Postgre SQL。

DBA
任務描述所需的技能

AWS SCT 使用 Windows 命令提示字元進行 設定。

  1. 從預先安裝的AWSSCT資料夾複製 AWSSchemaConversionToolBatch.jar 檔案,並將其貼到您的工作目錄中。

  2. incremental-migration-sct-sql.zip 資料夾 (已連接) run_aws_sct_sql.py 的檔案部署 Python 程式碼。這會在projects目錄中建立 .xml 檔案和 .sct 檔案,其中包含您的來源和目標資料庫環境組態詳細資訊。它也會讀取您在 Oracle SQL 開發人員中產生的SQL指令碼檔案。最後,它會在output目錄中建立 .sql 檔案物件。

  3. 使用下列格式在 database_migration.txt 檔案中設定來源和目標環境組態詳細資訊:

#source_vendor,source_hostname,source_dbname,source_user,source_pwd,source_schema,source_port,source_sid,target_vendor,target_hostname,target_user,target_pwd,target_dbname,target_port ORACLE,myoracledb.cokmvis0v46q.us-east-1.rds.amazonaws.com,ORCL,orcl,orcl1234,orcl,1521,ORCL,POSTGRESQL,mypgdbinstance.cokmvis0v46q.us-east-1.rds.amazonaws.com,pguser,pgpassword,pgdb,5432

4. 根據您的需求修改AWSSCT組態參數,然後將SQL指令碼檔案複製到input子目錄中的工作目錄中。

DBA

執行 Python 指令碼。

  1. 使用以下命令執行 Python 指令碼: $ python run_aws_sct_sql.py database_migration.txt

  2. 這會建立資料庫物件SQL檔案。具有轉換錯誤的非轉換程式碼可以手動轉換。

DBA

在 Amazon RDS for Postgre 中建立物件SQL

在 Amazon RDS for PostgreSQL 資料庫執行個體中執行SQL檔案並建立物件。

DBA

相關資源

附件

若要存取與本文件相關聯的其他內容,請解壓縮下列檔案: attachment.zip