從 Amazon RDS for Oracle 轉換到 Amazon RDS for MySQL - AWS Prescriptive Guidance

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

從 Amazon RDS for Oracle 轉換到 Amazon RDS for MySQL

由吉特·庫馬爾 (AWS) 創作

R 類型 重新架構

來源:資料庫:關聯

目標:Amazon RDS for MySQL

建立者:AWS

:Conment PoC 或試驗

Technologies 資料庫; 移轉

工作負載:Oracle

AWS 服務:Amazon RDS

Summary

此模式提供使用 AWS Database Migration Service (AWS DMS) 和 AWS 結構描述轉換工具 (AWS SCT) 將適用於 Oracle 資料庫執行個體的 Amazon RDS 針對 MySQL 資料庫執行個體移轉的指導方針。 

該模式涵蓋處理存儲過程的遷移和代碼更改以支持應用程序層的最佳實踐。

此外,此模式使用 AWS 工作負載資格架構 (AWS WQF) 來估算執行此遷移所需的工作。AWS WQF 會將此遷移分類為工作負載類別 1

先決條件和限制

先決條件

  • 作用中的 AWS 帳戶

  • Amazon RDS for Oracle 來源資料庫。

  • Amazon RDS for MySQL 目標資料庫。來源和目標資料庫應位於相同的虛擬私有雲 (VPC) 中,或者如果您使用多個 VPC,則必須具有必要的存取權限。

  • 允許來源和目標資料庫、AWS SCT、應用程式伺服器和 AWS DMS 之間進行連線的安全群組。

  • 具有在來源資料庫上執行 AWS SCT 所需權限的使用者帳戶。

  • 啟用補充記錄功能,以在來源資料庫上執行 AWS DMS。

限制

  • 來源和目標亞馬遜 RDS 資料庫大小限制為 64 TB。

  • Oracle 對於數據庫對象不區分大小寫,但 MySQL 不是。AWS SCT 可以在建立物件時處理此問題;但是,需要一些手動工作才能支援完全不區分大小寫。

  • 此移轉不會使用 MySQL 擴充功能來啟用 Oracle 原生函數。AWS SCT 會處理大部分的轉換,但手動變更程式碼需要部分工作。

  • Java Database Connectivity (JDBC) 驅動程式必須在應用程式中做出變更。

產品版本

  • Amazon RDS for Oracle 11.2.0.4.v20

  • Amazon RDS for MySQL 8.0.15

  • AWS DMS 3.3.0 版

  • AWS SCT 1.0.628 版

Architecture

來源技術堆疊

目標技術堆疊

遷移架構

Tools

  • AWS Schema Conversion Tool— AWS SCT 會自動將來源資料庫結構描述和大多數資料庫程式碼物件 (包括檢視、儲存程序及函數) 轉換成與目標資料庫相容的格式,從而讓異質資料庫遷移變得更容易預測。

  • AWS 資料遷移服務— AWS DMS 可以在最廣為使用的商業資料庫及開放原始碼資料庫之間來回遷移您的資料。AWS DMS 支援同質遷移 (例如 Oracle 至 Oracle) 以及不同資料庫平台之間的異質遷移 (例如 Oracle 或 Microsoft SQL Server 至 Amazon Aurora)。

  • AWS 工作負載資格架構— AWS WQF 使用 AWS SCT 收集資訊以建立現有 Oracle 和 Microsoft SQL Server 資料庫工作負載的模型,並提供將其轉換為 AWS 資料庫的指示。

Epics

任務描述所有技能
驗證來源與目標資料庫版本與引擎。

DBA
使用 AWS WQF 估算此遷移所需的努力。

DBA, 系統管理員
識別目標伺服器執行處理的硬體需求。

DBA, SysAdmin
識別儲存需求 (儲存類型和容量)。

DBA, SysAdmin
選擇適當的執行個體類型 (容量、儲存功能、網路功能)。

DBA, SysAdmin
識別來源和目標資料庫的網路存取安全性需求。

DBA, SysAdmin
選擇應用程式移轉策略。

請考慮您是否想要完全停機或部分停機,以進行轉換活動。

DBA、SysAdmin、委任者
任務描述所有技能
建立 VPC 和子網路。

SysAdmin
建立安全群組和網路存取控制清單 (ACL)。

SysAdmin
設定並啟動適用於 Oracle 執行個體的 Amazon RDS。

DBA, SysAdmin
設定並啟動適用於 MySQL 的 Amazon RDS for MySQL RDS 執行個體。

DBA, SysAdmin
準備代碼轉換驗證的測試用例。

這將有助於對轉換代碼進行單元測試。

DBA, 開發人員
設定 AWS DMS 執行個體。

在 AWS DMS 中設定來源和目標端點。

任務描述所有技能
使用 AWS SCT 產生目標資料庫指令碼。

檢查 AWS SCT 轉換的程式碼的正確性。需要一些手動工作。

DBA, 開發人員
在 AWS SCT 中,選擇「不區分大小寫」設定。

在 AWS SCT 中,選擇 [專案設定]、[目標區分大小寫]、[不區分大小寫]。

DBA, 開發人員
在 AWS SCT 中,選擇不使用 Oracle 原生函數。

在「專案設定」中,勾選「至 _ 圖表/至 _ 號碼/至日期」的功能。

DBA, 開發人員
對「找不到 sql%" 程式碼進行變更。

您可能必須手動轉換代碼。

查詢存儲過程中的表和對象(使用小寫查詢)。

DBA, 開發人員
在進行所有變更之後,建立主要指令碼,然後在目標資料庫上部署主要指令碼。DBA, 開發人員
使用範例資料單元測試預存程序和應用程式呼叫。

清理單元測試期間創建的數據。

DBA, 開發人員
刪除目標資料庫的外部索引鍵限制。

此步驟需要載入初始資料。如果您不想刪除外部索引鍵條件約束,則必須為主要和次要資料表特定的資料建立移轉工作。

DBA, 開發人員
刪除目標資料庫的主索引鍵和唯一索引鍵。

這個步驟可以為初始負載提供更好的效能。

DBA, 開發人員
在來源資料庫上啟用補充記錄。

DBA
在 AWS DMS 中為初始載入建立移轉任務,然後執行它。

選擇遷移現有資料的選項。

DBA
將主索引鍵和外鍵新增到目標資料庫。

需要在初始載入之後加入約束。

DBA, 開發人員
建立持續複寫的移轉任務。

進行中的複寫可讓目標資料庫與來源資料庫保持同步。

DBA
任務描述所有技能
用 MySQL 本地函數替換 Oracle 本地函數。

委任人
請確定 SQL 查詢中的資料庫物件只使用小寫名稱。

DBA、SysAdmin、委任者
任務描述所有技能
關機應用程式伺服器。

委任人
驗證來源和目標資料庫是否同步。

DBA, 委任人
停止 Amazon RDS for Oracle 資料庫執行個體。

DBA
停止遷移任務。

這會在您完成上一個步驟後自動停止。

DBA
將 JDBC 連線從 Oracle 變更為 MySQL。

委任人, DBA
啟動應用程式。

DBA、SysAdmin、委任者
任務描述所有技能
複查並驗證專案文件。

DBA, SysAdmin
收集有關移轉時間的指標、手動與工具任務的百分比、節省成本等。

DBA, SysAdmin
停止並刪除 AWS DMS 執行個體。

DBA
移除來源和目標端點。

DBA
移除遷移任務。

DBA
建立 Amazon RDS for Oracle 資料庫執行個體的快照。

DBA
刪除 Amazon RDS for Oracle 資料庫執行個體。

DBA
關閉並刪除任何其他您使用的臨時 AWS 資源。

DBA, SysAdmin
關閉專案並提供任何意見反應。

DBA