使用 將 Db2 資料庫從 Amazon 遷移EC2至 Aurora My SQL相容 AWS DMS - AWS 方案指引

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

使用 將 Db2 資料庫從 Amazon 遷移EC2至 Aurora My SQL相容 AWS DMS

由 Pinesh Singal 建立 (AWS)

Summary

IBMLUW資料庫的 Db2 遷移至 Amazon Elastic Compute Cloud (Amazon EC2) 之後,請考慮移至 Amazon Web Services (AWS) 雲端原生資料庫來重新架構資料庫。此模式涵蓋將 Amazon EC2執行個體上執行之LUW資料庫的 IBM Db2 遷移至 上的 Amazon Aurora MySQL-Compatible Edition 資料庫AWS。 

此模式說明線上遷移策略,其具有大量交易的多 TB Db2 來源資料庫停機時間最短。 

此模式使用AWSSchema Conversion Tool (AWS SCT) 將 Db2 資料庫結構描述轉換為 Aurora MySQL-Compatible 結構描述。然後, 模式會使用 AWS Database Migration Service (AWS DMS) 將資料從 Db2 資料庫遷移至 Aurora MySQL-Compatible 資料庫。未由 轉換的程式碼需要手動轉換AWSSCT。

先決條件和限制

先決條件

  • 具有虛擬私有雲端 (VPC) 的作用中AWS帳戶

  • AWS SCT

  • AWS DMS

產品版本

  • AWS SCT 最新版本

  • 適用於 Linux 的 Db2 11.1.4.4 版及更新版本

架構

來源技術堆疊

  • DB2/Linux x86-64 位元掛載在EC2執行個體上 

目標技術堆疊

  • Amazon Aurora MySQL-Compatible Edition 資料庫執行個體

來源和目標架構

下圖顯示來源 Db2 與目標 Aurora MySQL-Compatible 資料庫之間的資料遷移架構。AWS 雲端上的架構包含虛擬私有雲端 (VPC) (虛擬私有雲端)、可用區域、Db2 執行個體和AWSDMS複寫執行個體的公有子網路,以及 Aurora MySQL-Compatible 資料庫的私有子網路。

來源 Db2 與目標 Aurora My SQL相容資料庫之間的資料遷移架構。

工具

AWS 服務

  • Amazon Aurora 是一種全受管關聯式資料庫引擎,專為雲端而建置,並與 MySQL 和 Postgre 相容SQL。

  • AWS Database Migration Service (AWS DMS) 可協助您將資料存放區遷移至AWS雲端,或在雲端和內部部署設定的組合之間遷移。

  • Amazon Elastic Compute Cloud (Amazon EC2) 在AWS雲端中提供可擴展的運算容量。您可以視需要啟動任意數量的虛擬伺服器,,並快速進行擴展或縮減。

  • AWS Schema Conversion Tool (AWSSCT) 支援異質資料庫遷移,方法是自動將來源資料庫結構描述和大部分自訂程式碼轉換為與目標資料庫相容的格式。 AWSSCT支援 做為 9.1、9.5、9.7、10.1、10.5、11.1 和 11.5 LUW版的來源 IBM Db2。

最佳實務

如需最佳實務,請參閱 AWS Database Migration Service 的最佳實務

史詩

任務描述所需的技能

在 Amazon 上建立 IBM Db2 資料庫EC2。

您可以透過使用 AWS Marketplace 中的 Amazon Machine Image (AMI) 或在EC2執行個體上安裝 IBM Db2 軟體,在EC2執行個體上建立 Db2 資料庫。

透過選取AMI適用於 IBM Db2 的 (例如 IBM Db2 v11.5.7 RHEL 7.9) 來啟動EC2執行個體,這類似於內部部署資料庫。

DBA,一般 AWS

設定安全群組。

分別使用TCP連接埠 22 和 50000 設定 SSH(安全殼層) 和 VPC的安全群組傳入規則。

一般 AWS

建立資料庫執行個體。

建立新的執行個體 (使用者) 和資料庫 (結構描述),或使用預設db2inst1執行個體和範例資料庫。

  1. 使用終端機連線至 Db2 資料庫,以連線至EC2執行個體。或者,您可以安裝任何將連接到 Db2 資料庫的資料庫用戶端軟體。

  2. 若要設定 db2inst1 使用者的密碼,請執行命令 sudo passwd db2inst1

  3. 若要連線至 db2inst1 執行個體,請執行命令 sudo su - db2inst1

  4. 若要連線至 Db2 資料庫,請執行命令 db2

  5. 若要連線至範例資料庫,請使用 命令 connect to sample。或者,連線到您建立的資料庫。

  6. 連線至資料庫執行個體後,請使用 Db2 SQL陳述式建立物件並將資料插入這些物件。

DBA

確認 Db2 資料庫執行個體可用。

若要確認 Db2 資料庫執行個體已啟動並執行,請使用 Db2pd -命令。

DBA
任務描述所需的技能

建立 Aurora MySQL-Compatible 資料庫。

使用來自 AWSRDS服務的我的SQL相容性資料庫建立 Amazon Aurora

  • 在 Amazon Aurora 上建立資料庫,並搭配我的SQL相容性和您選擇的版本,例如 Aurora (MySQL)–5.6.10a

  • 安裝 MySQL Workbench 應用程式或您偏好的資料庫用戶端軟體,可讓您連線至我的SQL資料庫

DBA,一般 AWS

設定安全群組。

設定 SSH和 TCP連線VPC的安全群組傳入規則。

一般 AWS

確認 Aurora 資料庫可用。

若要確保 Aurora MySQL-Compatible 資料庫已啟動並執行,請執行下列動作:

  1. 透過 連線至EC2執行個體SSH。

  2. 從 My Workbench 設定並連線至 Aurora MySQLSQL 相容執行個體。使用端點做為主機名稱,如下列範例所示。

     mysql-cluster-instance-1.cokmvis0v46q.us-east-1.rds.amazonaws.com
  3. 建立並連線至新的結構描述 (例如 mysql-sample-db2)。

  4. 執行 MySQL 陳述式來檢查資料庫中的結構描述和物件。

DBA
任務描述所需的技能

安裝 AWS SCT。

下載並安裝最新版本的 AWSSCT(最新版本 1.0.628)。

一般 AWS

設定 AWS SCT。

  1. 下載適用於 IBM Db2 (4.22.X 版本JDBC) 和 MySQL (8.x) 的 Java Database Connectivity () 驅動程式。

  2. 若要在 AWS 中設定驅動程式SCT,請選擇設定全域設定驅動程式

一般 AWS

建立AWSSCT專案。

建立使用 Db2 LUW做為來源資料庫引擎的AWSSCT專案和報告,以及 Aurora MySQL-Compatible 作為目標資料庫引擎。

若要識別連線至LUW資料庫的 Db2 所需的權限,請參閱使用 Db2 LUW 做為 AWS 的來源SCT

一般 AWS

驗證物件。

選擇載入結構描述,驗證物件。更新目標資料庫上任何不正確的物件:

  1. 提供連線詳細資訊,然後選擇測試連線,以連線至 Amazon Aurora MySQL-Compatible 伺服器。

    來源和目標連線都必須成功,AWSSCT才能啟動遷移報告。

  2. 報告完成後,輸入要轉換的結構描述,然後選擇完成

    AWS SCT 列出任何轉換且有錯誤的來源和目標物件。

  3. 檢閱錯誤,並手動清除。

  4. 清除所有錯誤後,開啟結構描述的內容 (按一下滑鼠右鍵) 選單,然後選擇載入結構描述

  5. 選擇套用至資料庫

  6. 在 MySQL Workbench 中,連線至 Aurora MySQL-Compatible 資料庫,並檢查結構描述和物件。

DBA,一般 AWS
任務描述所需的技能

建立複寫執行個體。

登入 AWS 管理主控台,導覽至 AWSDMS服務,並建立具有您為來源和目標資料庫設定之VPC安全群組有效設定的複寫執行個體。

一般 AWS

建立端點。

建立 Db2 資料庫的來源端點,並為 Aurora MySQL-Compatible 資料庫建立目標端點:

  1. 選擇選取資料庫執行個體,然後選擇您建立的 Db2 執行個體,以建立 IBM Db2 的端點做為來源。 RDS Db2 會自動填入端點組態詳細資訊。

  2. 在端點特定的設定中,新增下列額外的連線屬性。

    CurrentLSN=<scan>; MaxKBytesPerRead=64; SetDataCaptureChanges=true

    如果您未提及這些屬性,來源端點測試連線將不會成功。如需詳細資訊,請參閱使用 IBM Db2 LUW 做為 AWS 的來源DMS

  3. 選擇選取資料庫執行個體,然後選擇您建立的 Aurora MySQL-Compatible 執行個體,以建立 Aurora MySQL-Compatible 做為目標的端點。 RDS 會自動填入端點組態詳細資訊。如需詳細資訊,請參閱使用 My SQL相容資料庫做為 AWS Database Migration Service 的目標

  4. 測試來源和目標端點。確認兩者都成功且可用

  5. 如果測試失敗,請確定安全群組傳入規則有效。

一般 AWS

建立遷移任務。

建立單一遷移任務或多個遷移任務,以進行完全載入和CDC/或資料驗證:

  1. 若要建立資料庫遷移任務,請選擇複寫執行個體、來源資料庫端點、目標資料庫端點。將遷移類型指定為遷移現有資料 (完全載入)、僅複寫資料變更 (CDC)遷移現有資料,並複寫持續變更 (完全載入和 CDC)。

  2. 資料表映射下,您可以設定 GUI或 JSON 格式的選擇規則和轉換規則。

  3. 選取規則下,選取結構描述,輸入資料表名稱,然後選取要設定的動作 (包含/排除) (例如,結構描述:SAMPLE;資料表名稱:%,動作:包含)。

  4. 轉換規則下,選取目標 (結構描述、資料表或資料欄)。選取結構描述名稱,然後選擇動作 (大小寫、字首、尾碼);例如目標:結構描述;mysql-sample-db動作:小寫。

  5. 開啟 Amazon CloudWatch Logs 監控。

一般 AWS

規劃生產執行。

與應用程式擁有者等利益相關者確認停機時間,以便在AWSDMS生產系統中執行。

遷移潛在客戶

執行遷移任務。

  1. 啟動狀態為就緒AWSDMS的任務。

  2. 監控 Amazon Logs 中的遷移任務 CloudWatch 日誌是否有任何錯誤。

一般 AWS

驗證資料。

檢閱來源 Db2 和目標我的SQL資料庫中的遷移任務結果和資料:

  1. 如果狀態為載入完成持續複寫,則會完成CDC資料遷移的完整載入,且驗證正在進行中。

  2. 連線至 Aurora MySQL-Compatible 資料庫,並檢查資料。

  3. 在 Db2 資料庫中插入或更新資料,以檢查進行中的變更。

DBA

停止遷移任務。

成功完成資料驗證後,請停止驗證遷移任務。

一般 AWS

故障診斷

問題解決方案

AWS SCT 來源和目標測試連線失敗。

設定JDBC驅動程式版本和VPC安全群組傳入規則,以接受傳入流量。

Db2 來源端點測試執行失敗。

設定額外的連線設定 CurrentLSN=<scan>;

AWSDMS 任務無法連線至 Db2 來源,並傳回下列錯誤。

database is recoverable if either or both of the database configuration parameters LOGARCHMETH1 and LOGARCHMETH2 are set to ON

若要避免錯誤,請執行下列命令:

  1. $ db2 update db cfg for sample using LOGARCHMETH1 DISK:/home/db2inst1/logs

  2. $ db2stop

  3. $ db2start

  4. $ db2 connect to sample

    SQL1116N A connection to or activation of database "SAMPLE" cannot be made because of BACKUP PENDING.  SQLSTATE=57019
  5. $ db2 backup database sample to ../logs

    SQL2036N The path for the file or device "../logs" is not valid
  6. $ cd

  7. $ pwd

     /home/db2inst1
  8. $ mkdir /tmp/backup

  9. $ db2 backup database sample to /tmp/backup

    Backup successful. The timestamp for this backup image is : 20190530084921
  10. $ db2 connect to sample

    Database Connection Information Database server = DB2/LINUX 9.7.1 SQL authorization ID = DB2INST1 Local database alias = SAMPLE

相關資源

Amazon EC2

資料庫

AWS SCT

AWS DMS