使用具體化視觀表從 Oracle 8i 或 9i 遷移至 Amazon RDS for PostgreSQL 和 AWS DMS - AWS 方案指引

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

使用具體化視觀表從 Oracle 8i 或 9i 遷移至 Amazon RDS for PostgreSQL 和 AWS DMS

由 Kumar Babu P G (AWS) 和 Pragnesh Patel (AWS) 建立

環境:PoC 或試行

來源:Oracle 8i 或 9i

目標:Amazon RDS for PostgreSQL 或 Aurora Postgre SQL– 相容

R 類型:重新架構

工作負載:Oracle

技術:遷移;資料庫

AWS 服務:Amazon RDS;Amazon Aurora

Summary

此模式說明如何將內部部署舊版 Oracle 8i 或 9i 資料庫遷移至 PostgreSQL 的 Amazon Relational Database Service (Amazon RDS) 或 Amazon Aurora Postgre SQL-Compatible Edition。 

AWS 資料庫遷移服務 (AWS DMS) 不支援 Oracle 8i 或 9i 作為來源,因此此模式使用與 相容的中繼 Oracle 資料庫執行個體DMS,例如 Oracle 10g AWS 或 11g。它也會使用具體化檢視功能,將資料從來源 Oracle 8i/9i 執行個體遷移至中繼 Oracle 10g/11g 執行個體。

AWS Schema Conversion Tool (AWS SCT) 會轉換資料庫結構描述,並將資料AWSDMS遷移至目標 PostgreSQL 資料庫。 

此模式可協助想要從舊版 Oracle 資料庫遷移的使用者,將資料庫停機時間降至最低。在此實作中,停機時間會限制在建立或驗證目標資料庫中所有外部金鑰、觸發條件和序列所需的時間長度。 

此模式使用已安裝 Oracle 10g/11g 資料庫的 Amazon Elastic Compute Cloud AWS DMS (Amazon EC2) 執行個體來協助串流資料。您可以暫停從內部部署 Oracle 資料庫到中繼 Oracle 執行個體的串流複寫,AWSDMS以便 能夠跟上資料驗證的進度或使用其他資料驗證工具。PostgreSQL 資料庫執行個體和中繼 Oracle 資料庫在遷移目前變更AWSDMS完成後,將具有相同的資料。

先決條件和限制

先決條件

限制

  • 資料庫大小限制為 64 TB

產品版本

  • 來源資料庫的 Oracle 8i 或 9i

  • 適用於中繼資料庫的 Oracle 10g 或 11g

  • PostgreSQL 10.17 或更新版本

架構

來源技術堆疊

  • Oracle 8i 或 9i 資料庫 

目標技術堆疊

  • Amazon RDS for PostgreSQL 或 Aurora Postgre SQL- 相容

目標架構

從舊版 Oracle 資料庫遷移至 Amazon RDS或 Aurora 的架構

工具

  • AWS DMS 有助於快速安全地遷移資料庫。來源資料庫在遷移期間保持完全運作,將依賴資料庫的應用程式停機時間降到最低。AWS DMS 可以將您的資料遷移到最廣泛使用的商業和開放原始碼資料庫或從資料庫遷移。

  • AWS SCT 自動將來源資料庫結構描述和大多數資料庫程式碼物件,包括檢視、預存程序和函數,轉換為與目標資料庫相容的格式。無法自動轉換的物件會清楚標示,以便手動轉換完成遷移。AWS SCT 也可以掃描應用程式原始程式碼以取得內嵌SQL陳述式,並將其轉換為資料庫結構描述轉換專案的一部分。在此過程中, 會透過將舊版 Oracle 和 SQL Server 函數轉換為其AWS對等函數AWSSCT來執行雲端原生程式碼最佳化,協助您在遷移資料庫的同時現代化應用程式。結構描述轉換完成後, AWS SCT 可以使用內建的資料遷移代理程式,協助將資料從一系列資料倉儲遷移至 Amazon Redshift。 

最佳實務

如需重新整理具體化檢視的最佳實務,請參閱下列 Oracle 文件:

史詩

任務描述所需的技能

設定EC2執行個體的網路。

建立虛擬私有雲端 (VPC)、子網路、網際網路閘道、路由表和安全群組。

AWS SysAdmin

建立EC2執行個體。

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

AWS SysAdmin

在EC2執行個體上安裝 Oracle。

取得授權和必要的 Oracle 二進位檔,並在EC2執行個體上安裝 Oracle 10g 或 11g。

DBA

設定 Oracle 網路。

在 中修改或新增項目listener.ora,以連線至內部部署來源 Oracle 8i/9i 資料庫,然後建立資料庫連結。

DBA

建立具體化視觀表。

識別要在來源 Oracle 8i/9i 資料庫中複寫的資料庫物件,然後使用資料庫連結為所有物件建立具體化檢視。

DBA

部署指令碼以按所需的間隔重新整理具體化檢視。

開發和部署指令碼,以在 Amazon EC2 Oracle 10g/11g 執行個體上以必要的時間間隔重新整理具體化檢視。使用增量重新整理選項來重新整理具體化檢視。

DBA
任務描述所需的技能

設定 AWS SCT。

建立新的報告,然後連接至 Oracle 作為來源,並將 PostgreSQL 作為目標。在專案設定中,開啟SQL指令碼索引標籤。將目標SQL指令碼變更為多個檔案 。(AWS SCT 不支援 Oracle 8i/9i 資料庫,因此您必須在中間 Oracle 10g/11g 執行個體上還原僅限結構描述的傾印,並將其用作 AWS 的來源SCT。)

DBA

轉換 Oracle 資料庫結構描述。

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

DBA

修改SQL指令碼。

根據最佳實務進行修改。例如,切換到適當的資料類型,並開發適用於 Oracle 特定函數的 PostgreSQL 對等項目。

DBA、開發DBA
任務描述所需的技能

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

在 Amazon RDS主控台中,建立新的 PostgreSQL 資料庫執行個體。

AWS SysAdmin, DBA

設定資料庫執行個體。

指定資料庫引擎版本、資料庫執行個體類別、多可用區域部署、儲存類型和配置的儲存。輸入資料庫執行個體識別符、主要使用者名稱和主要密碼。

AWS SysAdmin, DBA

設定網路和安全性。

指定 VPC、子網路群組、公有可存取性、可用區域偏好設定和安全群組。

DBA, SysAdmin

設定資料庫選項。

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

DBA, AWS SysAdmin

設定備份。

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

AWS SysAdmin, DBA

設定監控選項。

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

AWS SysAdmin, DBA

設定維護選項。

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

AWS SysAdmin, DBA

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

在目標 Amazon RDS for PostgreSQL 執行個體上,使用 的SQL指令碼AWSSCT搭配其他修改來建立資料庫結構描述。這些可能包括執行多個指令碼,包括使用者建立、資料庫建立、結構描述建立、資料表、檢視、函數和其他程式碼物件。

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

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

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

AWS SysAdmin, DBA

建立來源資料庫端點。

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

AWS SysAdmin, DBA

AWS DMS 連線至 Amazon RDS for Postgre SQL。

如果您的 PostgreSQL 資料庫位於另一個 中VPCs,請建立跨 連線的遷移安全群組VPC。

AWS SysAdmin, DBA

建立目標資料庫端點。

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

AWS SysAdmin, DBA

建立AWSDMS複寫任務。

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

AWS SysAdmin, DBA

設定AWSDMS複寫任務設定。

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

DBA

設定資料表映射。

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

DBA

啟動任務。

啟動複寫任務。確定完整載入正在執行中。在主要 Oracle 資料庫ALTER SYSTEM SWITCH LOGFILE上執行 以啟動任務。

DBA

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

在 Amazon RDS for Postgre 中SQL,執行下列指令碼: create_index.sqlcreate_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 中SQL,執行這些指令碼:create_foreign_key_constraint.sql and 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

相關資源