選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

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

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

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

使用具體化視觀表和 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 資料庫將具有相同的資料。

先決條件和限制

先決條件

限制

  • 資料庫大小限制為 64 TB

產品版本

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

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

  • PostgreSQL 10.17 或更新版本

架構

來源技術堆疊

  • Oracle 8i 或 9i 資料庫 

目標技術堆疊

  • Amazon RDS for PostgreSQL 或 Aurora PostgreSQL 相容

目標架構

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

工具

  • 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 聯網。

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

DBA

建立具體化視觀表。

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

DBA

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

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

DBA

在 EC2 執行個體上安裝 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、DevDBA

將 Oracle 資料庫結構描述轉換為 PostgreSQL

任務描述所需技能

設定 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

建立並設定 Amazon RDS 資料庫執行個體以託管轉換後的資料庫

任務描述所需技能

建立 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) 和複寫執行個體。若要測試連線,請選擇執行測試,然後建立端點。您也可以設定下列進階設定:maxFileSizenumberDataTypeScale

AWS SysAdmin、DBA

將 AWS DMS 連線至 Amazon RDS for PostgreSQL。

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

AWS SysAdmin、DBA

建立目標資料庫端點。

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

AWS SysAdmin、DBA

建立 AWS DMS 複寫任務。

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

AWS SysAdmin、DBA

設定 AWS DMS 複寫任務設定。

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

DBA

設定資料表映射。

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

DBA

啟動任務。

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

DBA

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

在 Amazon RDS for PostgreSQL 中,執行下列指令碼: create_index.sqlcreate_constraint.sql(如果最初未建立完整的結構描述)。

DBA

繼續任務以繼續變更資料擷取 (CDC)。

在 Amazon RDS for PostgreSQL 資料庫執行個體VACUUM上執行,然後重新啟動 AWS DMS 任務以套用快取的 CDC 變更。

DBA

使用 AWS DMS 遷移資料

任務描述所需技能

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

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

AWS SysAdmin、DBA

建立來源資料庫端點。

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

AWS SysAdmin、DBA

將 AWS DMS 連線至 Amazon RDS for PostgreSQL。

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

AWS SysAdmin、DBA

建立目標資料庫端點。

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

AWS SysAdmin、DBA

建立 AWS DMS 複寫任務。

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

AWS SysAdmin、DBA

設定 AWS DMS 複寫任務設定。

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

DBA

設定資料表映射。

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

DBA

啟動任務。

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

DBA

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

在 Amazon RDS for PostgreSQL 中,執行下列指令碼: create_index.sqlcreate_constraint.sql(如果最初未建立完整的結構描述)。

DBA

繼續任務以繼續變更資料擷取 (CDC)。

在 Amazon RDS for PostgreSQL 資料庫執行個體VACUUM上執行,然後重新啟動 AWS DMS 任務以套用快取的 CDC 變更。

DBA
任務描述所需技能

檢查 AWS DMS 日誌和驗證資料表。

檢查並修正任何複寫或驗證錯誤。

DBA

停止使用現場部署 Oracle 資料庫及其相依性。

停止所有 Oracle 相依性、關閉 Oracle 資料庫上的接聽程式,然後執行 ALTER SYSTEM SWITCH LOGFILE。當 AWS DMS 任務未顯示任何活動時,停止該任務。

DBA

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

在 Amazon RDS for PostgreSQL 中,執行這些指令碼:create_foreign_key_constraint.sql and create_triggers.sql。請確定序列是最新的。

DBA

完成其他 Amazon RDS for PostgreSQL 步驟。

視需要遞增序列以符合 Oracle、執行 VACUUMANALYZE,並拍攝快照以符合規範。

DBA

開啟 Amazon RDS for PostgreSQL 的連線。

從 Amazon RDS for PostgreSQL 移除 AWS DMS 安全群組、新增生產安全群組,並將您的應用程式指向新的資料庫。

DBA

清除 AWS DMS 物件。

移除端點、複寫任務、複寫執行個體和 EC2 執行個體。

SysAdmin、DBA

切換到 PostgreSQL 資料庫

任務描述所需技能

檢查 AWS DMS 日誌和驗證資料表。

檢查並修正任何複寫或驗證錯誤。

DBA

停止使用現場部署 Oracle 資料庫及其相依性。

停止所有 Oracle 相依性、關閉 Oracle 資料庫上的接聽程式,然後執行 ALTER SYSTEM SWITCH LOGFILE。當 AWS DMS 任務未顯示任何活動時,停止該任務。

DBA

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

在 Amazon RDS for PostgreSQL 中,執行這些指令碼:create_foreign_key_constraint.sql and create_triggers.sql。請確定序列是最新的。

DBA

完成其他 Amazon RDS for PostgreSQL 步驟。

視需要遞增序列以符合 Oracle、執行 VACUUMANALYZE,並拍攝快照以符合規範。

DBA

開啟 Amazon RDS for PostgreSQL 的連線。

從 Amazon RDS for PostgreSQL 移除 AWS DMS 安全群組、新增生產安全群組,並將您的應用程式指向新的資料庫。

DBA

清除 AWS DMS 物件。

移除端點、複寫任務、複寫執行個體和 EC2 執行個體。

SysAdmin、DBA

相關資源

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。