使用 Oracle 旁觀者和 AWS DMS 將現場部署 Oracle 資料庫遷移到適用 Amazon RDS for PostgreSQL - AWS Prescriptive Guidance

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

使用 Oracle 旁觀者和 AWS DMS 將現場部署 Oracle 資料庫遷移到適用 Amazon RDS for PostgreSQL

由卡迪莫提卡 (AWS) 創作

環境:PoC 或試驗

來源:資料庫:關聯

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

R 類型 重新架構

工作負載:Oracle

Technologies:移轉; 資料庫

AWS 服務:Amazon RDS

Summary

此模式說明如何將現場部署 Oracle 資料庫遷移到 PostgreSQL 的 Amazon Relational Database Service 務 (Amazon RDS)、使用 AWS Database Migration Service (AWS DMS) 來遷移資料、AWS Schema Conversion Tool (AWS SCT) 來轉換資料庫架構,以及 Oracle 旁觀者協助管理移轉。

此模式可協助想要將資料庫停機時間降至最低的使用者 在這個實現中,停機時間將被限制為它需要創建或驗證數據庫上的所有外鍵的時間長度。 

此模式將 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體搭配 Oracle 旁觀者資料庫,以協助透過 AWS DMS 控制資料流。您可以暫時將串流複寫從現場部署 Oracle 資料庫暫停到 Oracle 旁觀者,以便 AWS DMS 能夠追上資料驗證或使用其他資料驗證工具。當 AWS DMS 完成移轉目前變更時,Amazon RDS for PostgreSQL 資料庫執行個體和旁觀者資料庫將具有相同的資料。 

先決條件和限制

先決條件

  • 作用中的 AWS 帳戶

  • 內部部署資料中心的來源 Oracle 資料庫,且已設定「作用中資料保全」待命資料庫

  • 在現場部署資料中心和 AWS Secrets Manager 之間設定的 AWS Direct Connect,用於儲存資料庫秘密

  • 適用於 AWS SCT 連接器的 Java 資料庫連線 (JDBC) 驅動程式,安裝在本機機器或安裝 AWS SCT 的 EC2 執行個體上

  • 熟悉使用 Oracle 資料庫做為 AWS DMS 的來源

  • 熟悉使用 PostgreSQL 資料庫做為 AWS DMS 的目標

限制

  • 資料庫大小限制:64 TB

產品版本

Architecture

來源技術堆疊

  • 內部署 Oracle 資料庫

  • 包含 Oracle 資料庫旁觀者的 EC2 執行處理

目標技術堆疊

  • Amazon RDS for PostgreSQL 9.3 版及更新版本

資料庫遷移架構

Tools

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

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

  • Amazon RDS-Amazon Relational Database Service(Amazon RDS) 可讓您在雲端中輕鬆設定、操作和擴展關聯式資料庫。它提供符合成本效益且可調整大小的容量,同時自動執行耗時的管理工作,例如硬體佈建、資料庫設定、修補和備份。 

Epics

任務描述所有技能
設定 AWS SCT。

建立新報表,並連線至 Oracle 做為來源,並連線至 PostgreSQL 做為目標。在項目設置中,轉到 SQL 腳本選項卡。將目標 SQL 腳本更改為多個文件。

DBA
轉換 Oracle 數据庫模式。

在「動作」頁籤中,選擇「產生報表」、「轉換綱要」,然後選擇「另存為 SQL」。

DBA
修改腳本。

例如,如果源模式中的數字已轉換為 PostgreSQL 中的數字格式,但您希望使用 BIGINT 來取代更好的性能,則可能需要修改腳本。

DBA
任務描述所有技能
建立 Amazon RDS 資料庫執行個體。

在正確的 AWS 區域中,在 Amazon RDS 主控台中建立新的 PostgreSQL 資料庫執行個體。

AWS SysAdmin, DBA
設定資料庫執行個體規格。

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

AWS SysAdmin, DBA
設定網路和安全性。

指定虛擬私有雲端 (VPC)、子網路群組、公有存取性、可用區域喜好設定和安全群組。

DBA、SysAdmin
設定資料庫選項。

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

AWS SysAdmin, DBA
設定備份。

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

AWS SysAdmin, DBA
設定監控選項。

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

AWS SysAdmin, DBA
設定維護選項。

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

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

在亞馬遜 RDS 執行個體上,執行下列指令碼:create_database.sql、create_sequence.sql、、、和執行。create_table.sql create_view.sql create_function.sql

AWS SysAdmin, DBA
任務描述所有技能
建立 Amazon EC2 網路。

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

AWS SysAdmin
建立 EC2 執行個體。

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

AWS SysAdmin 帳戶
將 Oracle 來源資料庫 Connect 到 EC2 執行處理。

將 IPv4 公共 IP 地址和 DNS 複製到文本文件中,並使用 SSH 連接,如下所示:ssh 我「你的文件 .pem」ec2 用戶 @ <your-IP-address-or-public-DNS>。

AWS SysAdmin
在 Amazon EC2 中設置旁觀者的初始主機。

設置 SSH 密鑰,bash 配置文件,ORATAB 和符號鏈接。建立 Oracle 目錄。

AWS SysAdmin,Linux 管理員
在 Amazon EC2 中設置旁觀者的數據庫副本

您可以使用 RMAN 來建立資料庫副本、啟用補充記錄日誌,以及建立待命控制檔。複製完成後,將資料庫置於復原模式。

AWS SysAdmin, DBA
設定 Oracle Data Guard。

修改您的監聽器 .ora 文件並啟動監聽器。設定新的歸檔目的地。將旁觀者置於修復模式、取代暫存檔案以避免未來損毀、必要時安裝 crontab 以防止封存目錄空間不足,並編輯 manage-trclog-files-oracle.cfg 檔案的來源和待命檔案。

AWS SysAdmin, DBA
準備好 Oracle 資料庫以同步運送。

新增待命記錄檔並變更復原模式。在來源主要和來源待命狀態上,將記錄傳送變更為 SYNC SLERM。切換主要記錄、透過 Amazon EC2 旁觀者警示日誌確認您正在使用備用日誌檔,並確認重做資料流在 SYNC 中流動。

AWS SysAdmin, DBA
任務描述所有技能
在 AWS DMS 中建立複寫執行個體。

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

AWS SysAdmin, DBA
建立來源資料庫端點。

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

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

為跨 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

相關資源