本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用具體化視觀表和 AWS DMS 從 Oracle 8i 或 9i 遷移至 Amazon RDS for PostgreSQL
由 Kumar Babu P G (AWS) 和 Pragnesh Patel (AWS) 建立
Summary
此模式說明如何將內部部署舊版 Oracle 8i 或 9i 資料庫遷移至 PostgreSQL 或 Amazon Aurora PostgreSQL 相容版本的 Amazon Relational Database Service (Amazon RDS)。 PostgreSQL
AWS Database Migration Service (AWS DMS) 不支援 Oracle 8i 或 9i 作為來源,因此此模式會使用與 AWS DMS 相容的中繼 Oracle 資料庫執行個體,例如 Oracle 10g 或 11g。它也會使用具體化視觀表功能,將資料從來源 Oracle 8i/9i 執行個體遷移至中繼 Oracle 10g/11g 執行個體。
AWS Schema Conversion Tool (AWS SCT) 會轉換資料庫結構描述,而 AWS DMS 會將資料遷移至目標 PostgreSQL 資料庫。
此模式可協助想要從舊版 Oracle 資料庫遷移的使用者,將資料庫停機時間降至最低。在此實作中,停機時間會受限於在目標資料庫上建立或驗證所有外部金鑰、觸發條件和序列所需的時間長度。
此模式使用已安裝 Oracle 10g/11g 資料庫的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體,以協助 AWS DMS 串流資料。您可以暫停從現場部署 Oracle 資料庫到中繼 Oracle 執行個體的串流複寫,讓 AWS DMS 能夠跟上資料驗證的進度,或使用其他資料驗證工具。當 AWS DMS 已完成遷移目前的變更時,PostgreSQL 資料庫執行個體和中繼 Oracle 資料庫將具有相同的資料。
先決條件和限制
先決條件
作用中的 AWS 帳戶
內部部署資料中心中的來源 Oracle 8i 或 9i 資料庫
在內部部署資料中心和 AWS 之間設定的 AWS Direct Connect
在本機電腦或安裝 AWS SCT 的 EC2 執行個體上安裝的 AWS SCT 連接器的 Java Database Connectivity (JDBC) 驅動程式
限制
資料庫大小限制為 64 TB
產品版本
來源資料庫的 Oracle 8i 或 9i
適用於中繼資料庫的 Oracle 10g 或 11g
PostgreSQL 10.17 或更新版本
架構
來源技術堆疊
Oracle 8i 或 9i 資料庫
目標技術堆疊
Amazon RDS for PostgreSQL 或 Aurora PostgreSQL 相容
目標架構

工具
AWS DMS 有助於快速安全地遷移資料庫。來源資料庫在遷移期間仍可維持完全運作,將依賴資料庫的應用程式停機時間降到最低。AWS DMS 可以將您的資料遷移到最廣泛使用的商業和開放原始碼資料庫。
AWS SCT 會自動將來源資料庫結構描述和大多數資料庫程式碼物件,包括檢視、預存程序和函數,轉換為與目標資料庫相容的格式。無法自動轉換的物件會清楚標示,以便手動轉換以完成遷移。AWS SCT 也可以掃描您的應用程式原始程式碼以取得內嵌 SQL 陳述式,並將其做為資料庫結構描述轉換專案的一部分進行轉換。在此過程中,AWS SCT 會透過將舊版 Oracle 和 SQL Server 函數轉換為其 AWS 對等函數來執行雲端原生程式碼最佳化,協助您在遷移資料庫的同時現代化應用程式。當結構描述轉換完成時,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 聯網。 | 在 中修改或新增項目 | 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、DevDBA |
任務 | 描述 | 所需技能 |
---|---|---|
建立 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 執行個體上,使用 AWS SCT 中的 SQL 指令碼和其他修改來建立資料庫結構描述。這些可能包括執行多個指令碼,以及包括使用者建立、資料庫建立、結構描述建立、資料表、檢視、函數和其他程式碼物件。 | AWS SysAdmin、DBA |
任務 | 描述 | 所需技能 |
---|---|---|
在 AWS DMS 中建立複寫執行個體。 | 完成名稱、執行個體類別、VPC (與 EC2 執行個體相同)、異地同步備份和公有存取性的欄位。在進階組態區段中,指定配置的儲存、子網路群組、可用區域、VPC 安全群組和 AWS Key Management Service (AWS KMS) 金鑰。 | AWS SysAdmin、DBA |
建立來源資料庫端點。 | 指定端點名稱、類型、來源引擎 (Oracle)、伺服器名稱 (EC2 執行個體的私有 DNS 名稱)、連接埠、SSL 模式、使用者名稱、密碼、SID、VPC (指定具有複寫執行個體的 VPC) 和複寫執行個體。若要測試連線,請選擇執行測試,然後建立端點。您也可以設定下列進階設定:maxFileSize 和 numberDataTypeScale。 | AWS SysAdmin、DBA |
將 AWS DMS 連線至 Amazon RDS for PostgreSQL。 | 如果您的 PostgreSQL 資料庫位於另一個 VPCs,請建立跨 VPC 連線的遷移安全群組。 | AWS SysAdmin、DBA |
建立目標資料庫端點。 | 指定端點名稱、類型、來源引擎 (PostgreSQL)、伺服器名稱 (Amazon RDS 端點)、連接埠、SSL 模式、使用者名稱、密碼、資料庫名稱、VPC (指定具有複寫執行個體的 VPC) 和複寫執行個體。若要測試連線,請選擇執行測試,然後建立端點。您也可以設定下列進階設定:maxFileSize 和 numberDataTypeScale。 | AWS SysAdmin、DBA |
建立 AWS DMS 複寫任務。 | 指定任務名稱、複寫執行個體、來源和目標端點,以及複寫執行個體。針對遷移類型,選擇遷移現有資料並複寫持續變更。清除建立時啟動任務核取方塊。 | AWS SysAdmin、DBA |
設定 AWS DMS 複寫任務設定。 | 針對目標資料表準備模式,選擇不執行任何動作。完全載入完成後停止任務 (建立主索引鍵)。指定有限或完整 LOB 模式,並啟用控制資料表。或者,您可以設定 CommitRate 進階設定。 | DBA |
設定資料表映射。 | 在資料表映射區段中,為遷移中包含的所有結構描述中的所有資料表建立包含規則,然後建立排除規則。新增三個轉換規則,將結構描述、資料表和資料欄名稱轉換為小寫,並新增此特定遷移所需的任何其他規則。 | DBA |
啟動任務。 | 啟動複寫任務。確定完全載入正在執行中。在主要 Oracle 資料庫 | DBA |
從 AWS SCT 執行中遷移指令碼。 | 在 Amazon RDS for PostgreSQL 中,執行下列指令碼: | DBA |
繼續任務以繼續變更資料擷取 (CDC)。 | 在 Amazon RDS for PostgreSQL 資料庫執行個體 | DBA |
任務 | 描述 | 所需技能 |
---|---|---|
檢查 AWS DMS 日誌和驗證資料表。 | 檢查並修正任何複寫或驗證錯誤。 | DBA |
停止使用現場部署 Oracle 資料庫及其相依性。 | 停止所有 Oracle 相依性、關閉 Oracle 資料庫上的接聽程式,然後執行 | DBA |
從 AWS SCT 執行遷移後指令碼。 | 在 Amazon RDS for PostgreSQL 中,執行這些指令碼: | DBA |
完成其他 Amazon RDS for PostgreSQL 步驟。 | 視需要遞增序列以符合 Oracle、執行 | DBA |
開啟 Amazon RDS for PostgreSQL 的連線。 | 從 Amazon RDS for PostgreSQL 移除 AWS DMS 安全群組、新增生產安全群組,並將您的應用程式指向新的資料庫。 | DBA |
清除 AWS DMS 物件。 | 移除端點、複寫任務、複寫執行個體和 EC2 執行個體。 | SysAdmin、DBA |