AWS上Migration实验(二)--- 使用DMS迁移数据

DMS是AWS Database Migration Service的简称,主要是帮助客户将本地数据库安全高效的迁移到AWS云上。本实验使用AWS DMS迁移MySQL数据库到AWS的RDS上。

本次实验架构图

本次实验架构图如下:

在这里插入图片描述

1. 实验准备

1.1 准备Corporate Data Center

本实验有一台Web服务器,访问地址为:http://ec2-54-149-186-172.us-west-2.compute.amazonaws.com;一台数据库服务器,访问地址为:ec2-52-42-121-115.us-west-2.compute.amazonaws.com:3306

访问Web入下:

在这里插入图片描述

本次实验为了方便,在AWS上的另外VPC部署2台EC2,分别部署Web和DB。

1.2 准备AWS VPC网络环境

准备一个VPC,CIDR为10.0.0.0/16。该VPC分布在2个AZ中,每个AZ有3个子网,包含1个含有NAT Gateway的共有子网,2个私有子网,1个是Web子网,另一个是DB子网。

该VPC可以使用这个 AWS上DevOps实验(二)— 使用Terraform创建VPC网络文章中的代码来完成。

本实验假设DMS可以访问到本地数据库实例。实际上可能会用VPN或者AWS Direct Connect访问本地服务器

1.3 配置源数据库
  1. 在源数据库实例上,向wordpress-user数据库用户授予权限(我们将在 CDC 功能中使用该用户)
mysql> GRANT REPLICATION CLIENT ON *.* to 'wordpress-user';
Query OK, 0 rows affected (0.01 sec)

mysql> GRANT REPLICATION SLAVE ON *.* to 'wordpress-user';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT SUPER ON *.* to 'wordpress-user';
Query OK, 0 rows affected (0.01 sec)
  1. 在 MySQL 中,二进制日志 包含描述数据库更改的“事件”,例如表创建操作或表数据更改。这对于 DMS 的连续复制任务至关重要。
mkdir /var/lib/mysql/binlogs
chown -R mysql\:mysql /var/lib/mysql/binlogs
  1. 修改MySQL配置以启用二进制日志
cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf
chown -R mysql\:mysql /etc/mysql/my.cnf
cat <<EOF >> /etc/mysql/my.cnf
server_id=1
log-bin=/var/lib/mysql/binlogs/log
binlog_format=ROW
expire_logs_days=1
binlog_checksum=NONE
binlog_row_image=FULL
log_slave_updates=TRUE
performance_schema=ON
EOF
  1. 要实施更改,需要重新启动 MySQL 服务
systemctl restart mysql
  1. 查看MYSQL的配置是否生效
select variable_value as "BINARY LOGGING STATUS (log-bin) :: "
from performance_schema.global_variables where variable_name='log_bin';

select variable_value as "BINARY LOG FORMAT (binlog_format) :: "
from performance_schema.global_variables where variable_name='binlog_format';

在这里插入图片描述

2. 部署目标DRS

2.1 创建安全组
  1. 在 AWS 控制台上,访问服务 > 计算 > EC2

在这里插入图片描述

  1. 在左侧菜单中选择 “安全组”,然后单击顶部的 “创建安全组”按钮

在这里插入图片描述

  1. 使用以下参数填写安全组创建表单,然后单击底部的创建安全组:
ParameterValue
Security group nameDB-SG
DescriptionSecurity Group for RDS Target Database
VPCTargetVPC
Inbound rules(Keep default: Empty)
Outbound rules(Keep default: All Traffic, 0.0.0.0/0)

在这里插入图片描述

2.2 设置网络子网组
  1. 在 AWS 控制台中,访问服务 > 数据库 > RDS

在这里插入图片描述

  1. 然后从左侧菜单中选择子网组,然后单击右上角的创建数据库子网组按钮:

在这里插入图片描述

  1. 使用以下参数填写数据库子网组创建表单,然后单击底部的创建:
ParameterValue
Namedatabase-subnet-group
DescriptionSubnets where RDS will be deployed
VPCTargetVPC
Availability ZonesSelect us-west-2a and us-west-2b
Add subnetsAdd 10.0.101.0/24, 10.0.201.0/24

在这里插入图片描述

2.3 创建目标数据库
  1. 单击左侧菜单中的数据库选项,然后单击顶部的创建数据库按钮

在这里插入图片描述

  1. 引擎选项中,选择MySQL,并为Engine Version选择 5.7系列中的最新版本:

在这里插入图片描述

  1. 模板部分中,选择免费套餐

在这里插入图片描述

  1. “设置” 部分中,配置以下参数:
ParameterValue
DB instance identifierdatabase-1
Master usernameadmin
Master passwordVeryHardPassword

在这里插入图片描述

  1. 实例配置部分中,从Burstable DB 实例类中选择db.t3.micro

在这里插入图片描述

  1. “存储” 部分中,配置以下参数:
ParameterValue
Storage typeGeneral Purpose SSD (gp3)
Allocated storage20
Storage autoscaling > Enable storage autoscalingUnchecked

在这里插入图片描述

  1. “连接” 部分中,配置以下参数
ParameterValue
Virtual private cloud (VPC)Select TargetVPC
DB subnet groupSelect database-subnet-group
VPC security group (firewall)Select Choose Existing
Existing VPC security groupsChoose DB-SG only

在这里插入图片描述

  1. 对于数据库身份验证部分,选择密码身份验证

在这里插入图片描述

  1. 对于 “监控” 部分,请确保未选中 “启用增强监控”

在这里插入图片描述

  1. 对于 “其他配置” 部分,请确保 未选中“启用自动备份”“启用自动次要版本升级” ,以避免不必要的成本和中断:

在这里插入图片描述

  1. 查看“估计每月成本” 部分的成本,然后单击底部的 “创建数据库” 按钮。

在这里插入图片描述

在这里插入图片描述

  1. RDS 数据库实例创建将需要几分钟的时间,您可以从左侧菜单中关注数据库选项的状态。请等待状态变为可用

在这里插入图片描述

3. 部署DMS

3.1 创建安全组
  1. 在 AWS 控制台上,访问 服务 > 计算 > EC2

在这里插入图片描述

  1. 在左侧菜单中选择 “安全组”,然后单击顶部的 “创建安全组” 按钮:

在这里插入图片描述

  1. 使用以下参数填写安全组创建表单,然后单击底部的 创建安全组
ParameterValue
Security group nameRI-SG
DescriptionSecurity Group for DMS Replication Instance
VPCTargetVPC
Inbound rules(Keep default: Empty)
Outbound rules(Keep default: All Traffic, 0.0.0.0/0)

在这里插入图片描述

3.2 修改RDS安全组
  1. 选中步骤2.1中创建的安全组,点击操作-> 编辑入站规则

在这里插入图片描述

  1. 点击添加规则

在这里插入图片描述

  1. 类型中选择MYSQL/Aurora,在源中选择步骤3.1中的安全组

在这里插入图片描述

3.3 创建复制实例网络组
  1. 在 AWS 控制台中,访问服务 > 迁移和传输 > 数据库迁移服务

在这里插入图片描述

  1. 从左侧菜单中选择 子网组,然后单击创建子网组按钮

在这里插入图片描述

使用以下参数填写 “创建复制子网组” 表单,然后单击底部的 “创建子网组”

ParameterValue
Namedms-subnet-group
DescriptionDefault VPC Subnet Group for DMS
VPCTargetVPC
Add subnetsTargetVPC-public-a, TargetVPC-public-b

在这里插入图片描述

3.4 创建复制实例
  1. AWS 控制台中访问服务> 迁移与传输 > Database Migration Service

在这里插入图片描述

  1. 从左侧菜单中选择 “复制实例” ,然后单击右上角的 “创建复制实例” 按钮:

在这里插入图片描述

  1. 创建复制实例创建表单的设置部分中,填写以下参数:
ParameterValue
Namereplication-instance
Descriptive Amazon Resource Name (ARN)(Keep default: Empty)
DescriptionDMS replication instance

在这里插入图片描述

  1. 对于实例配置存储部分,除了需要 开发或测试工作负载(单可用区)高可用性(以避免不必要的成本)之外,将大部分保留为默认值

在这里插入图片描述

  1. 在连接和安全的高级设置中,确保选择复制子网组、可用区 (us-west-2a) 和您之前创建的复制实例安全组。

在这里插入图片描述

  1. 然后点击底部的创建按钮

在这里插入图片描述

  1. DMS 复制实例可能需要长达 10-15 分钟才能达到可用状态

在这里插入图片描述

  1. 复制实例启动后,记下分配给我们的 DMS 复制实例的公共 IP 地址

在这里插入图片描述

在这里插入图片描述

4. 创建复制任务

4.1 创建源端点
  1. 在 AWS 控制台中访问服务> 迁移与传输 > Database Migration Service

在这里插入图片描述
在这里插入图片描述

  1. 从左侧菜单中选择 “端点” ,然后单击右上角的 “创建端点” 按钮:

在这里插入图片描述

  1. 使用以下参数填写创建端点创建表单:
ParameterValue
Endpoint typeSource endpoint
Endpoint identifiersource-endpoint
Descriptive Amazon Resource Name (ARN)(Keep default: Empty)
Source engineMySQL
Access to endpoint databaseProvide access information manually
Server nameUse the ‘DBServerDNSName’ Output section of the workshop dashboard (or in the CloudFormation stack )
Port3306
SSL mode(Keep default: none)
User namewordpress-user
PasswordAWSRocksSince2006

在这里插入图片描述

  1. 在单击 “创建端点” 之前,请务必展开 “测试端点连接(可选)” 部分并执行测试连接。TargetVPC应使用之前创建的和来预先填充这些值replication-instance。如果测试成功,则单击创建端点

在这里插入图片描述

4.2 创建源端点
  1. AWS DMS服务页面,从左侧菜单中选择 “端点” ,然后单击右上角的 “创建端点” 按钮:

在这里插入图片描述

  1. 使用以下参数填写创建端点创建表单:
ParameterValue
Endpoint typeTarget endpoint
Select RDS DB instancechecked
RDS InstanceSelect your RDS instance from the drop-down (if it’s not visible enter values manually)
Endpoint Identifiertarget-endpoint
Descriptive Amazon Resource Name (ARN)(Keep default: Empty)
Target EngineMySQL (keep pre-populated value)
Access to endpoint databaseProvide access information manually
Server NameDNS name of your RDS database (keep pre-populated value)
Port3306 (keep pre-populated value)
SSL mode(Keep default: none)
User nameadmin (keep pre-populated value)
PasswordEnter password you used when you creating the RDS database (Default: VeryHardPassword)

在这里插入图片描述

  1. 在单击 “创建端点” 之前,请务必展开 “测试端点连接(可选)” 部分并执行测试连接。TargetVPC应使用之前创建的和来预先填充这些值replication-instance。如果测试成功,则单击创建端点

在这里插入图片描述

4.3 创建并运行复制任务
  1. AWS DMS服务页面,左侧菜单中选择数据库迁移任务,然后单击右上角的创建任务按钮:

在这里插入图片描述

  1. 使用以下参数填写创建数据库迁移任务表单:
ParameterValue
Task identifierreplication-cdc
Descriptive Amazon Resource Name (ARN)(Keep default: Empty)
Replication instancereplication-instance
Source endpointsource-endpoint
Target endpointtarget-endpoint
Migration typeMigrate existing data and replicate ongoing changes

在这里插入图片描述

  1. “任务设置” 面板中,选择 “向导” 并按照下图所示进行设置:

在这里插入图片描述

  1. 表映射面板中选择向导模式,按添加新选择规则按钮并wordpress-db在架构下拉列表中选择:

在这里插入图片描述

  1. 在**“迁移任务启动配置”部分中,选择“创建时自动”。然后滚动到屏幕底部并单击创建任务**按钮以创建任务并开始数据复制:

在这里插入图片描述

  1. 监视任务,直到状态更改为Load Complete、复制正在进行且进度为100%

在这里插入图片描述

在这里插入图片描述

  1. 该任务将一直运行直到我们停止它,因为它是连续复制。您可以查看其详细信息以查看有关表和复制的行数的信息:

在这里插入图片描述

本实验完成。

  • 52
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值