使用 Oracle SQL 開發人員和 AWS SCT,從適用於甲骨文的 Amazon RDS for PostgreSQL 遞增遷移到適用於甲骨文的亞馬遜 RDS - AWS Prescriptive Guidance

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

使用 Oracle SQL 開發人員和 AWS SCT,從適用於甲骨文的 Amazon RDS for PostgreSQL 遞增遷移到適用於甲骨文的亞馬遜 RDS

由皮尼什單身 (AWS) 創建

環境:PoC 或試驗

來源:資料庫:關聯

目標:Amazon RDS PostgreSQL

R 類型 重新架構

工作負載:Oracle; 開放原始碼

Technologies:移轉; 資料庫; 現代化

AWS 服務:Amazon EC2; Amazon RDS

Summary

許多遷移策略和方法分為多個階段執行,可以持續數週到數個月。在此期間,您可能會因為修補或升級要移轉至 PostgreSQL 資料庫執行個體的來源 Oracle 資料庫執行個體而發生延遲。若要避免這種情況,建議您以遞增方式將剩餘的 Oracle 資料庫程式碼移轉至 PostgreSQL 資料庫程式碼。

此模式為多 TB 的 Oracle 資料庫執行個體提供增量移轉策略,且該執行個體在初始移轉之後執行大量交易且必須移轉至 PostgreSQL 資料庫,提供不需停機的情況。您可以使用此模式的逐步方法,將適用於 Oracle 資料庫執行個體的 Amazon 關聯式資料庫服務 (Amazon RDS) 遞增地遷移到 Amazon RDS for PostgreSQL 資料庫執行個體,而無需登入 Amazon Web Services (AWS) 管理主控台。

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

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

先決條件和限制

先決條件

  • 作用中的 AWS 帳戶

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

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

  • AWS SCT,已安裝並設定適用於 Oracle 和 PostgreSQL 資料庫引擎的 JDBC 驅動程式。如需此項目的詳細資訊,請參閱安裝 AWS SCT安裝必要的資料庫驅動程式在 AWS SCT 文件中。 

  • Oracle SQL 開發人員,已安裝和配置。如需此項目的詳細資訊,請參閱Oracle SQL Developer文件中)。 

  • 所以此incremental-migration-sct-sql.zip檔案 (附加),下載至您的本機電腦。

 

限制

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

    • 適用於 Enterprise、Standard、Standard One 和 Standard Two 等版本的 Oracle 10.2 版和更新版本 (適用於 10.x 版)、11g 版 (11.2.0.3.v1 和更新版本) 且最高可達 12.2 版,以及 18c 版。

  • 您目標適用於 PostgreSQL 資料庫執行個體的 Amazon RDS 目標需求如下: 

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

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

  • 所以此SQL 命令檔可能會引發轉換錯誤,這表示您需要執行手動移轉。

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

 

產品版本

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

  • 適用於後續資料庫執行個體 11.5 版 (9.4 及更新版本)

  • Oracle SQL Developer 19.1 版及更新版本

  • AWS SCT 1.0.632 版和更新版本

Architecture

來源技術堆疊

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

目標技術堆疊

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

來源與目標架構

下圖顯示了將適用於 Oracle 資料庫的 Amazon RDS 執行個體遷移到適用於 PostgreSQL 資料庫的 Amazon RDS 執行個體。

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

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

  2. 產生差異報表,然後為模式差異對象生成 SQL 腳本文件。如需差異報告的詳細資訊,請參閱詳細差異報告在 Oracle 文件中。

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

  4. SQL 腳本文件從 Oracle 轉換到 PostgreSQL。

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

 

自動化和擴充

您可以通過在單個程序中添加額外的參數和與安全性相關的更改到您的 Python 腳本中的多個功能來自動進行此遷移。

Tools

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

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

 

Code

所以此incremental-migration-sct-sql.zip文件(附加)包含此模式的完整源代碼。

Epics

任務描述所有技能
在 Oracle SQL Developer 中執行資料庫差異。
  1. 登入您的來源 Oracle 資料庫執行個體,選擇工具,然後選擇資料庫差異

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

  3. 選擇已更新或修補的來源資料庫目標連線

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

DBA
產生 SQL 命令檔檔案。

選擇產生命令檔來生成 SQL 文件中的差異。 

這會產生 AWS SCT 用來將資料庫從 Oracle 轉換為 PostgreSQL 的 SQL 指令碼檔案。

DBA
任務描述所有技能
使用視窗命令提示字元設定 AWS SCT。
  1. 複製AWSSchemaConversionToolBatch.jar檔案,然後將其貼到您的工作目錄中。

  2. 部署從run_aws_sct_sql.py檔案incremental-migration-sct-sql.zip資料夾 (已貼附)。這會建立 .xml 檔案和 .sct 檔案,在projects目錄和來源和目標資料庫環境組態詳細資料。它也會讀取您在 Oracle SQL 開發人員中生成的 SQL 腳本文件。最後,它會在output目錄。

  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. 根據您的需求修改 AWS SCT 組態參數,然後將 SQL 指令碼檔案複製到input子目錄。

DBA
執行 Python 指令碼。
  1. 使用下列命令來執行 Python 指令碼:$ python run_aws_sct_sql.py database_migration.txt

  2. 這將創建數據庫對象的 SQL 文件。可以手動轉換具有轉換錯誤的未轉換代碼。

DBA
在 Amazon RDS for PostgreSQL

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

DBA

相關資源

Attachments

attachment.zip