使用具體化視觀表和 AWS DMS 從甲骨文 8i 或 9i 遷移到適用於後續執行的 Amazon RDS - AWS Prescriptive Guidance

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

使用具體化視觀表和 AWS DMS 從甲骨文 8i 或 9i 遷移到適用於後續執行的 Amazon RDS

由庫馬爾巴布 P G(AWS)創建

R 類型 重新架構

來源:資料庫:關聯

目標:Amazon RDS for PostgreSQL/Amazon RDS for PostgreSQL

建立者:AWS

PoC 或試驗

技術:資料庫; 移轉

工作負載:Oracle

AWS 服務:Amazon RDS; Amazon Aurora

Summary

此模式說明如何將現場部署舊版 Oracle 8i 或 9i 資料庫遷移到適用於 PostgreSQL 或 Amazon Amazon Aurora Amazon Relational Database Service (Amazon RDS)。 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

  • 中間數據庫的甲骨文 10g 或 11g

  • PostgreSQL 9.6 或更新版

Architecture

來源技術堆疊

  • 甲骨文 8i 或 9i 數据庫 

目標技術堆疊

  • Amazon RDS for PostgreSQL 或 Aurora PostgreSQL

目標架構

Tools

  • AWS DMSAWS Database Migration Service(AWS DMS) 可協助快速且安全地遷移資料庫。來源資料庫在遷移期間仍然能夠維持完全正常運作,以便將倚賴資料庫的應用程式停機時間縮到最短 AWS DMS 可以在最廣為使用的商業資料庫及開放原始碼資料庫之間來回遷移您的資料。

  • AWS SCTAWS Schema Conversion Tool(AWS SCT) 讓異質資料庫遷移變得更容易預測,因為它會自動將來源資料庫結構描述和大多數的資料庫程式碼物件,包括檢視、儲存程序及函數,轉換成與目標資料庫相容的格式。無法自動轉換的物件會清楚標示,以便進行手動轉換以完成遷移。AWS SCT 也可以掃描您的應用程式原始程式碼以尋找嵌入式 SQL 陳述式,並將其轉換為資料庫結構描述轉換專案的一部分。在此程序期間,AWS SCT 會將舊版 Oracle 和 SQL Server 函數轉換為其 AWS 對等項目,以執行雲端原生程式碼最佳化,協助您在移轉資料庫的同時,將應用程式現代化。結構描述轉換完成後,AWS SCT 可以使用內建的資料遷移代理程式,協助將資料從一系列資料倉儲遷移到 Amazon Redshift。 

Epics

任務描述必要技能
設定 EC2 執行個體的網路。

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

AWS SysAdmin
建立 EC2 執行個體。

選取 EC2 執行個體的 Amazon Machine Image (AMI)。選擇執行個體大小並設定執行個體詳細資料:執行個體數目 (1)、上一個步驟中的 VPC 和子網路、自動指派公用 IP 以及其他選項。新增儲存體、設定安全性群組,然後啟動執行個體。出現提示時,請建立並儲存 key pair 以供下一個步驟使用。

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
設定資料庫選項。

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

資料庫管理員、AWS SysAdmin
設定備份。

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

AWS SysAdmin, DBA
設定監控選項。

啟用或停用增強型監控和效能深入資訊。

AWS SysAdmin, DBA
設定維護選項。

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

AWS SysAdmin, DBA
從 AWS SCT 執行移轉前指令碼。

在目標適用於 PostgreSQL 執行個體的 Amazon RDS 上,透過使用 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) 以及複寫執行個體。若要測試連線,請選擇 Run test (執行測試),然後建立端點。您也可以設定下列進階設定:最大檔案大小和 numberDataTypeScale 小。

AWS SysAdmin, DBA
將 AWS DMS Connect 至 Amazon RDS for PostgreSQL。

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

AWS SysAdmin, DBA
建立目標資料庫端點。

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

AWS SysAdmin, DBA
建立 AWS DMS 複寫任務。

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

AWS SysAdmin, DBA
設定 AWS DMS 複寫任務設定。

對於目標表格準備模式,請選擇「不執行任何動作」。完全載入完成後停止工作 (建立主索引鍵)。指定有限或完整 LOB 模式,並啟用控制表。或者,您可以設定「確認率」進階設定。

DBA
設定表格對映。

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

DBA
啟動任務。

啟動複寫任務。請確定完整負載正在執行。在主要 Oracle 資料庫上執行變更系統切換記錄檔,以啟動此工作。

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

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

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

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

DBA
任務描述必要技能
檢查 AWS DMS 日誌和驗證表格。

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

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

停止所有 Oracle 相依性、關閉 Oracle 資料庫上的監聽器,然後執行變更系統切換記錄檔。當 AWS DMS 任務沒有顯示任何活動時停止。

DBA
從 AWS SCT 執行移轉後指令碼。

在 Amazon RDS for PostgreSQL 中,運行以下腳本:create_foreign_key_constraint.sql 和 create_triggers.sql。確定序列為最新狀態。

DBA
完成 Amazon RDS for PostgreSQL 步驟。

增量序列以符合 Oracle(如果需要),請執行真空和分析,並拍攝相容性的快照。

DBA
打開 Amazon RDS for PostgreSQL。

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

DBA
清理 AWS DMS 物件。

移除端點、複寫工作、複寫執行個體和 EC2 執行個體。

SysAdmin, DBA