使用以下方法将 Db2 数据库从亚马逊迁移EC2到 Aurora 我的SQL兼容 AWS DMS - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用以下方法将 Db2 数据库从亚马逊迁移EC2到 Aurora 我的SQL兼容 AWS DMS

由 Pinesh Singal 创作 () AWS

环境:PoC 或试点

来源:亚马逊上IBM的 Db2 EC2

目标:亚马逊 Aurora 我的SQL兼容版

R 类型:重构

工作量:IBM

技术:迁移;数据库

AWS服务:AWSDMS; 亚马逊; EC2 AWSSCT; 亚马逊 Aurora

Summary

IBMDb2 for LUW 数据库迁移到亚马逊弹性计算云 (AmazonEC2) 后,可以考虑通过迁移到 Amazon Web Services (AWS) 云原生数据库来重新架构数据库。此模式包括将亚马逊EC2实例上运行的LUW数据库的 IBM Db2 迁移到上的 A mazon Aurora 我的SQL兼容版数据库。AWS 

该模式描述了一种联机迁移策略,该策略对具有大量事务的多 TB Db2 源数据库的停机时间最短。 

AWS模式使用 Schema Conversion Tool (AWSSCT) 将 Db2 数据库架构转换为 Aurora 我的SQL兼容架构。然后,该模式使用 Dat AWSabase Migration Service (AWSDMS) 将数据从 Db2 数据库迁移到 Aurora 我的SQL兼容数据库。对于未由转换的代码,则需要手动转换AWSSCT。

先决条件和限制

先决条件

  • 拥有虚拟私有云的活跃AWS账户 (VPC)

  • AWS SCT

  • AWS DMS

产品版本

  • AWSSCT最新版本

  • Db2 for Linux V11.1.4.4 及更高版本

架构

源技术堆栈

  • DB2/Linux x86-64 位挂载在实例上 EC2 

目标技术堆栈

  • 亚马逊 Aurora 我的SQL兼容版数据库实例

源架构和目标架构

下图显示了源 Db2 和目标 Aurora 我的SQL兼容数据库之间的数据迁移架构。云上的架构包括虚拟私有AWS云 (VPC)(虚拟私有云)、可用区、Db2 实例和AWSDMS复制实例的公有子网,以及 Aurora My SQL-Compatible 数据库的私有子网。

源 Db2 和目标 Aurora 我的SQL兼容数据库之间的数据迁移架构。

工具

AWS服务

  • Amazon Aurora 是一款完全托管的关系数据库引擎,专为云而构建,与 My SQL 和 Postgre SQL 兼容。

  • AWSDat@@ abase Migration Service (AWSDMS) 可帮助您将数据存储迁移到AWS云端,或者在云端和本地设置的组合之间迁移。

  • 亚马逊弹性计算云 (AmazonEC2) 在AWS云中提供可扩展的计算容量。您可以根据需要启动任意数量的虚拟服务器,并快速扩展或缩减它们。

  • AWSSchema Conversion Tool (AWSSCT) 通过自动将源数据库架构和大部分自定义代码转换为与目标数据库兼容的格式来支持异构数据库迁移。AWSSCT支持作为LUW版本 9.1、9.5、9.7、10.1、10.5、11.1 和 11.5 的源 IBM Db2。

最佳实践

有关最佳实践,请参阅 AWSDatabase Migration Service 的最佳实践

操作说明

任务描述所需技能

在亚马逊EC2上创建 IBM Db2 数据库。

您可以使用来自 IBM M AWS arketplace 的亚马逊系统映像 (AMI) 或在EC2实例上安装 Db2 软件,在实例EC2上创建 Db2 数据库。

通过为 IBM Db2(EC2例如,D IBMb2 v11.5.7 RHEL 7.9)选择一个AMI来启动实例,该实例与本地数据库类似。

DBA,一般 AWS

配置安全组。

分别为SSH(VPC安全外壳)以及TCP端口 22 和 50000 配置安全组入站规则。

将军 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 我的SQL兼容数据库。

使用我的SQL兼容性数据库从AWSRDS服务中创建 Amazon Aurora

  • 使用我的SQL兼容性和你选择的版本在亚马逊 Aurora 上创建数据库,例如 Aurora(我的SQL)—5.6.10a

  • 安装 My SQL Workbench 应用程序或您首选的数据库客户端软件,这样您就可以连接到 “我的SQL数据库”

DBA,一般 AWS

配置安全组。

为SSH和TCP连接配置VPC安全组入站规则。

将军 AWS

确认 Aurora 数据库可用。

要确保 Aurora 我的SQL兼容数据库已启动并运行,请执行以下操作:

  1. 通过 Connect 连接到EC2实例SSH。

  2. 从 My SQL Workbench 配置并连接 Aurora 我的SQL兼容实例。使用端点作为主机名,如以下示例所示。

     mysql-cluster-instance-1.cokmvis0v46q.us-east-1.rds.amazonaws.com
  3. 创建并连接到新架构(例如,mysql-sample-db2)。

  4. 运行 My SQL 语句以检查数据库中的架构和对象。

DBA
任务描述所需技能

安装AWSSCT。

下载并安装最新版本的 AWSSCT(当前最新版本 1.0.628)。

将军 AWS

配置AWSSCT。

  1. 下载适用于 IBM Db2(4.22.X 版本JDBC)和 My(8.x)的 Java 数据库连接 SQL () 驱动程序。

  2. 要在中配置驱动程序 AWSSCT,请选择 “设置”、“全局设置”、“驱动程序”。

将军 AWS

创建AWSSCT项目。

创建一个AWSSCT项目和报告,将 Db2 LUW 用作源数据库引擎,使用 Aurora My SQL-Compatible 作为目标数据库引擎。

要确定连接到 Db2 for LUW 数据库所需的权限,请参阅使用 Db2 LUW 作为源。AWS SCT

将军 AWS

验证对象。

选择 加载架构,验证对象。更新目标数据库上任何不正确的对象:

  1. 通过提供连接详细信息连接到 Amazon Aurora 我的SQL兼容服务器,然后选择 “测试连接”。

    源连接和目标连接都必须成功AWSSCT才能启动迁移报告。

  2. 报告完成后,输入要转换的架构,然后选择 完成

    AWSSCT列出了所有已转换且存在错误的源对象和目标对象。

  3. 查看错误,并手动清除它们。

  4. 清除所有错误后,打开架构的上下文(右键单击)菜单,然后选择 加载架构

  5. 选择应用于数据库

  6. 在 My SQL Workbench 中,连接到 Aurora 我的SQL兼容数据库,然后检查架构和对象。

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

创建复制实例。

登录AWS管理控制台,导航到该AWSDMS服务,然后使用您为源数据库和目标数据库配置VPC的安全组的有效设置创建复制实例。

将军 AWS

创建端点。

为 Db2 数据库创建源终端节点,并为 Aurora 我的SQL兼容数据库创建目标终端节点:

  1. 选择 “选择数据库实例”,然后选择您创建的 RDS D IBM b2 实例,从而为 Db2 创建终端节点作为源。端点配置详细信息将自动填充。

  2. 在特定于端点的设置中,添加以下额外连接属性。

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

    如果不提及这些属性,源端点测试连接将不会成功。有关更多信息,请参阅使用 IBM Db2 LUW 作为的源。AWS DMS

  3. 选择 “选择RDS数据库实例”,然后选择您创建的 Aurora “我的SQLSQL兼容 Aurora” 实例,创建终端节点作为目标。端点配置详细信息将自动填充。有关更多信息,请参阅使用与我SQL兼容的数据库作为 Database Migration Servic AWS e 的目标

  4. 测试源和目标数据库端点。确认两者均成功且可用

  5. 如果测试失败,请检查安全组入站规则是否有效。

将军 AWS

创建迁移任务。

创建单个迁移任务或多个迁移任务以进行满载和 CDC /或数据验证:

  1. 要创建数据库迁移任务,请选择复制实例、源数据库端点、目标数据库端点。将迁移类型指定为 “迁移现有数据(满载)”、“仅复制数据更改”(CDC)或 “迁移现有数据并复制正在进行的更改(满载和CDC)”。

  2. 在 “表映射” 下,您可以配置GUI或JSON格式的选择规则和转换规则。

  3. 选择规则下,选择架构,输入表名,然后选择要配置的操作(包括/排除)(例如,架构:SAMPLE;表名:%,操作:包含)。

  4. 转换规则下,选择目标(“架构”、“表”或“列”)。选择架构名称,然后选择操作(大小写、前缀、后缀);例如,目标:架构;mysql-sample-db;动作:小写。

  5. 打开 Amazon CloudWatch 日志监控。

将军 AWS

计划生产运行。

与利益相关者(例如应用程序所有者)确认停机时间,以便AWSDMS在生产系统中运行。

迁移主管

运行迁移任务。

  1. 启动状态为 “就绪” 的AWSDMS任务。

  2. 在 Amazon 日志中监控迁移任务 CloudWatch 日志中是否存在任何错误。

将军 AWS

验证数据。

查看源 Db2 和目标 My SQL 数据库中的迁移任务结果和数据:

  1. 如果状态为 “加载已完成” 正在进行复制,则表示CDC数据迁移的满载已完成,并且验证正在进行中。

  2. 连接到 Aurora 我的SQL兼容数据库,然后检查数据。

  3. 通过在 Db2 数据库中插入或更新数据来检查正在进行的更改。

DBA

停止迁移任务。

数据验证成功完成后,停止验证迁移任务。

将军 AWS

故障排除

问题解决方案

AWSSCT源和目标测试连接失败。

配置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