使用具體化視圖和 AWS DMS,從甲骨文 8i 或 9i 遷移到亞馬遜 RDS - AWS 規範指導

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

使用具體化視圖和 AWS DMS,從甲骨文 8i 或 9i 遷移到亞馬遜 RDS

由庫馬爾巴布 P G(AWS)和普利納斯·帕特爾(AWS)創建

環境:PoC 或試點

資料來源:甲骨文 8i 或 9i

目標:Amazon RDS for PostgreSQL 或 Aurora 兼容

R 型:重新建築

工作量:甲骨文

技術:移轉;資料庫

AWS 服務:亞馬遜 RDS; Amazon Aurora

總結

此模式說明如何將現場部署舊版 Oracle 8i 或 9i 資料庫遷移到 Amazon Relational Database Service 服務 (亞馬遜 RDS),適用於 PostgreSQL 或 Amazon Aurora PostgreSQL 相容版本。 

AWS Database Migration Service (AWS DMS) 不支援 Oracle 8i 或 9i 做為來源,因此此模式使用與 AWS DMS 相容的中繼 Oracle 資料庫執行個體,例如甲骨文 10g 或 11g。它也會使用具體化視觀表功能,將資料從來源 Oracle 8i/9i 執行處理移轉至中繼 Oracle 10g/11g 執行處理。

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

此模式可協助想要在最短的資料庫停機時間內從舊版 Oracle 資料庫移轉的使用者。在此實作中,停機時間會限制在建立或驗證目標資料庫上所有外部索引鍵、觸發程序和序列所需的時間長度。 

該模式使用 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體和 Oracle 10g/11g 資料庫執行個體,可協助 AWS DMS 串流資料。您可以暫時暫停從現場部署 Oracle 資料庫到中繼 Oracle 執行個體的串流複寫,讓 AWS DMS 能夠 catch 資料驗證或使用其他資料驗證工具。當 AWS DMS 完成移轉目前的變更時,PostgreSQL 資料庫執行個體和中繼 Oracle 資料庫將擁有相同的資料。

先決條件和限制

先決條件

限制

  • 資料庫大小限制為 64 TB

產品版本

  • 來源資料庫的甲骨文 8i 或 9i

  • 中繼資料庫的甲骨文 10 克或 11 克

  • PostgreSQL 10.17 或更高版

架構

源, 技術, 堆棧

  • 甲骨文 8i 或 9i 数据库 

目標技術堆疊

  • Amazon RDS (適用於 Aurora stgreSQL)

目標架構

從舊型甲骨文資料庫遷移到亞馬遜 RDS 或 Aurora 的架構

工具

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

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

最佳實務

如需重新整理具體化視觀表的最佳作法,請參閱下列 Oracle 文件:

史诗

任務描述所需技能

設定 EC2 執行個體的網路。

建立 VPC (VPC)、子網路、網際網路閘道、路由表和安全群組。

AWS SysAdmin

建立 EC2 執行個體。

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

AWS SysAdmin

在 EC2 執行個體上安裝 Oracle。

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

DBA

設定甲骨文網路。

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

DBA

建立具體化檢視。

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

DBA

建置命令檔以依需要的間隔重新整理具體化視觀

開發和部署指令碼,以便在 Amazon EC2 Oracle 10g/11g 執行個體上按需要的間隔重新整理具體化視圖。使用累加式重新整理選項重新整理具體化視觀表

DBA
任務描述所需技能

設定 AWS SCT。

創建一個新的報告,然後連接到甲骨文作為源和 PostgreSQL 作為目標。在專案設定中,開啟 [SQL 指令碼] 索引標籤。將目標 SQL 腳本更改為「多個文件」。(AWS SCT 不支援 Oracle 8i/9i 資料庫,因此您必須在中繼 Oracle 10g/11g 執行個體上還原僅結構描述的傾印,並將其用作 AWS SCT 的來源。)

DBA

轉換 Oracle 資料庫結構描述。

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

DBA

修改 SQL 指令碼。

根據最佳做法進行修改。例如,切換至適當的資料類型,並針對 Oracle 特定函數開發 PostgreSQL 對等項目。

DBA,開發人員資料庫
任務描述所需技能

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

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

AWS SysAdmin、DBA

設定資料庫執行個體。

指定資料庫引擎版本、資料庫執行個體類別、異地同步備份部署、儲存類型和配置的儲存體。輸入資料庫執行個體識別碼、主要使用者名稱和主要密碼。

AWS SysAdmin、DBA

設定網路和安全性。

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

DBA, SysAdmin

設定資料庫選項。

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

資料庫管理 (AWS) SysAdmin

設定備份。

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

AWS SysAdmin、DBA

設定監控選項。

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

AWS SysAdmin、DBA

設定維護選項。

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

AWS SysAdmin、DBA

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

在目標 Amazon RDS for PostgreSQL SQL 執行個體上,透過使用 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和「numberDataType縮放」。

AWS SysAdmin、DBA

將 AWS DMS Connect 到 Amazon RDS for PostgreSQL)。

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

AWS SysAdmin、DBA

建立目標資料庫端點。

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

AWS SysAdmin、DBA

建立 AWS DMS 複寫任務。

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

AWS SysAdmin、DBA

設定 AWS DMS 複寫任務設定。

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

DBA

設定資料表對應。

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

DBA

開始工作。

啟動複寫任務。確定滿載正在執行。ALTER SYSTEM SWITCH LOGFILE在主要 Oracle 資料庫上執行以啟動作業。

DBA

從 AWS SCT 執行中間移轉指令碼。

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

DBA

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

VACUUM在適用 Amazon RDS for PostgreSQL 的資料庫執行個體上執行,然後重新啟動 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,VACUUM然後執行和ANALYZE,並建立快照以符合性。

DBA

開啟連接到 Amazon RDS for PostgreSQL)。

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

DBA

清理 AWS DMS 物件。

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

SysAdmin, DBA

相關資源