本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用具體化視圖和 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 資料庫將擁有相同的資料。
先決條件和限制
先決條件
有效的 AWS 帳戶
內部部署資料中心中的來源 Oracle 8i 或 9i 資料庫
AWS Direct Connect 在內部部署資料中心和 AWS 的 AWS 直接連接
適用於 AWS SCT 連接器的 Java 資料庫連線能力 (JDBC) 驅動程式,可安裝在本機電腦或已安裝 AWS SCT 的 EC2 執行個體上
限制
資料庫大小限制為 64 TB
產品版本
來源資料庫的甲骨文 8i 或 9i
中繼資料庫的甲骨文 10 克或 11 克
PostgreSQL 10.17 或更高版
架構
源, 技術, 堆棧
甲骨文 8i 或 9i 数据库
目標技術堆疊
Amazon RDS (適用於 Aurora stgreSQL)
目標架構

工具
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 |
設定甲骨文網路。 | 在中修改或新增項目 | 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 |
開始工作。 | 啟動複寫任務。確定滿載正在執行。 | DBA |
從 AWS SCT 執行中間移轉指令碼。 | 在 Amazon RDS for PostgreSQL 中,執行下列指令碼: | DBA |
繼續任務,繼續變更變更資料擷取 (CDC)。 |
| 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 |