企业上云数据库迁移场景

场景描述

企业上云最大的难点在于业务数据库迁移,很多企业在上云前,数据库域名或IP往往是已被写入应用客户端代码中,当从本地构建的数据库迁移到RDS时,需要用户修改客户端代码进行应用改造,此过程复杂,且风险高。

解决方案

通过内网DNS解析创建一个与之前相同的数据库域名,然后通过CNAME记录指向RDS分配的系统内网域名,这样在数据库上云过程中,企业用户无需修改客户端代码,能够减少应用改造,降低迁移风险。

image

资源准备

在进行操作前,请先按照以下列表进行资源准备。

资源

数量

示例值

线下数据库连接域名

1

db.example.com

Ecs服务器

1&more

1.1.XX.XX、2.2.XX.XX

RDS数据库实例

1

rm-2ze44q293vs56l9po*****.mysql.rds.aliyuncs.com

操作步骤

image

服务开通

  1. 登录云解析DNS产品控制台

  2. 前往页面,并单击 立即开通,具体步骤请参考开通内网DNS解析

添加内置权威域名及解析记录

  1. 前往RDS管理控制台,单击左侧导航栏的 实例列表,在实例列表页面单击 实例ID/名称 下的实例ID。

  2. 左侧导航栏选择 数据库连接,然后复制 内网地址 后方的域名。image.png

  3. 前往云解析DNS产品控制台,在左侧导航栏单击 内网DNS解析(PrivateZone),在 内网DNS解析 页面右上方选择 管理配置模式,然后选择 内置权威 页面下的 用户域名 页签。

  4. 单击 添加域名(Zone) 按钮,在 添加内置权威域名(Zone) 对话框中输入域名,本示例输入 db.example.com,域名类型根据您的实际需求选择,推荐选择 内置权威加速区, 然后单击 确定

  5. 用户域名 页面,单击目标域名 db.example.com 操作 列的 解析记录 按钮。

  6. 解析记录 页面单击 添加记录记录类型:CNAME,主机记录@解析请求来源:默认,记录值:rm-2ze44q293vs56l9po*****.mysql.rds.aliyuncs.com(此域名为测试域名,您根据实际情况将数据库的内网地址粘贴进去),完成上述参数填写后单击 确定

  7. 返回 用户域名 页面,单击目标域名 db.example.com 操作 列的 生效范围设置,在 域名设置 页面设置 域名生效范围,需要关联数据库所在VPC。

效果测试

  1. 登录域名生效VPC网络内的ECS服务器,进行解析生效测试,返回如下图即为成功。若返回结果异常,请排查解析记录是否正确配置。

    dig db.example.com

    数据库迁移-15

  2. RDS连接测试:登录域名生效VPC网络内的ECS服务器,进行远程命令测试,返回如下图即为成功。

    mysql -utest_dns -ptest_dns -hdb.example.com -P3306 -Dtest_dns

    数据库迁移-16

三、常见错误

  1. ERROR 2003 (HY000): Can’t connect to MySQL server on ‘db.example.com’(110)请检查数据库白名单设置,将ECSIP加入白名单中。数据库迁移-17