阿里云瑶池数据库来开课啦!自建数据库迁移至云数据库 RDS原来只要一步操作就能搞定!
点击阅读
原文完成实验就可获得一本日历哦~
在业务初期,您可能会为了控制成本选择在应用服务器上自建数据库。但随着业务增长,这种应用和数据库部署在一个服务器上的架构,会有性能、安全、扩展性方面的隐患。
在业务开始增长阶段,为了消除性能、安全、扩展性方面的隐患,您可能会选择将数据库和应用分开部署。但数据库迁移工作并不简单,并且实现高可用和读写分离也很复杂,需要大量的时间和人力成本。
如果您的业务在未来会持续增长,建议您将数据库迁移到云数据库上。云数据库 RDS 可以让您使用一写多读、故障自动切换、自动备份等关键特性的同时,无需关注复杂的数据库运维工作。云数据库 RDS采用高可用架构,支持跨可用区容灾,可以给业务带来数据安全、可用性、性能和成本方面收益。
在没有过往经验的情况下,您可能会担心自己不够熟悉数据库迁移,而无法完成这项工作。阿里云云起实验室为您提供了一个快速体验环境,模拟了一遍数据库迁移所需的工作,帮助你快速熟悉这一流程。6月19日,阿里云数据库专家也将开设直播,带你陪跑数据库迁云全流程,对过程中你可能遇到的操作、选型、成本等问题进行一一解答。
实验地址:
https://developer.aliyun.com/adc/scenario/311000460018
本实验将快速为您创建一个云服务器ECS实例和一个云数据库RDS实例,ECS实例上已经部署了网站以及自建数据库。本实验以WordPress网站为例。
-
签署同意服务协议并授权云起实验室创建、读取及释放实操相关资源权限后,进入创建资源。创建资源需要5分钟左右的时间,请您耐心等待。
-
在
云产品资源
列表,您可以查看本场景涉及的云产品资源信息。
资源创建完成后,为了保护您阿里云主账号上资源的安全,请您重置云服务器ECS的登录密码、设置安全组端口和重置云数据库RDS的数据库密码。
-
重置云服务器ECS的登录密码。
-
在
云产品资源
列表的
ECS云服务器
区域,单击
管理
。
-
在
实例详情
页签的
基本信息
区域,单击
重置密码
。
-
在
重置实例密码
对话框中,设置
新密码
和
确认密码
,
重置密码的方式
选择
在线重置密码
,
配置SSH密码登录策略
选择
开启
,单击
确认修改
。
返回如下结果,表示ECS实例root用户的登录密码重置成功。
4. 设置安全组端口。
-
在
云产品资源
列表的
安全
组
区域,单击
管理
。
5. 在
访问规则
区域的
入方向
中,添加
SSH(22)
、
HTTP(80)
、
HTTPS(443)
和
MySQL(3306)
端口。
重要
添加端口时,授权对象建议选择您的本机IP地址。
6. 重置云数据库RDS的高权限账号的密码。
-
在
云产品资源
列表的
云数据库RDS实例
区域,单击
管理
。
7. 在左侧导航栏中,单击
账号管理
。
8. 在
用户账号
页签,单击高权限账号右侧
操作
列下的
重置密码
。
9. 在
重置密码
对话框中,设置
新密码
和
确认新密码
,单击
确定
。
资源创建完成后,ECS实例上会安装LNMP环境,但是还需要您自己创建WordPress网站和DTS数据传输时所用的数据库账号和密码。
-
在
云产品资源列表
的
ECS云服务器区域
,单击
远程连接
。
-
在
登录实例
对话框中,输入
用户自定义密码
,单击
确定
。
-
执行如下命令,创建WordPress网站所用数据库账号和密码。
警告
mysql -e "CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'WordPressuser密码';"
mysql -e "GRANT ALL PRIVILEGES ON wordpressdb.* TO 'wordpressuser'@'localhost';"
mysql -e "FLUSH PRIVILEGES;"
-
执行如下命令,创建DTS数据传输所用数据库账号和密码。
警告
mysql -e "CREATE USER dtssync1 IDENTIFIED BY 'dtssync1密码';"
mysql -e "GRANT ALL ON *.* TO 'dtssync1'@'%';"
mysql -e "FLUSH PRIVILEGES;"
mysql -e "SET GLOBAL binlog_format = 'ROW';"
资源创建完成后,ECS实例上已下载WordPress安装包,您还需要手动安装并配置WordPress,然后进入WordPress安装页面,完成WordPress安装。
-
执行如下命令,进入到WordPress安装包的目录。
-
执行如下命令,解压WordPress安装包。
-
执行如下命令,将WordPress文件夹重命名并授权。
mv WordPress-6.5.3 wordpress
cp -R wordpress
-
执行如下命令,复制配置文件。
cp wp-config-sample.php wp-config.php
-
执行如下命令,修改WordPress配置文件中的数据库信息。
说明
您需要将命令中的WordPressuser密码修改为用户自定义密码。
sed -i "s/database_name_here/wordpressdb/" wp-config.php
sed -i "s/username_here/wordpressuser/" wp-config.php
sed -i "s/password_here/WordPressuser密码/" wp-config.php
sed -i "s/localhost/localhost/" wp-config.php
-
执行如下命令,重启Nginx和PHP服务。
systemctl restart nginx
systemctl restart php-fpm
-
在浏览器地址栏中,输入http://ECS实例公网IP,访问WordPress网站。
说明
您可在
云产品资源
列表查看ECS实例公网IP。
-
在WordPress安装页面,填写网站相关信息,然后单击
Install WordPress
。
说明
请记住设置的网站管理员用户名和密码,用于登录网站管理页面。
现在,您可以使用数据传输服务DTS,配置源库和目标库信息,开始迁移数据库的库表结构、全量数据和增量数据。
-
在
云产品资源
列表的
云数据库RDS实例
区域,单击
管理
。
-
在左侧导航栏中,单击
数据迁移及同步
。
-
选择
数据迁移
页签,单击
创建迁移任务
。
-
配置源库及目标库信息。
说明
如果您是首次使用数据传输服务DTS,会弹出未授权DTS的错误弹窗,您需要单击前往RAM授权,根据页面提示完成授权,即可正常使用DTS。
-
源库信息。
-
-
-
-
-
-
-
数据库账号和密码:输入前面创建的DTS数据传输所用的数据库账号和密码。本示例为dtssync1和用户自定义密码。
-
连接方式:非加密连接。
-
目标库信息。
-
数据库账号和密码:输入RDS实例的高权限账号和密码。本示例为
dbuser
和用户自定义密码。
-
连接方式:非加密连接。
-
单击
测试连接以进行下一步
,会自动为ECS添加DTS安全组、为RDS添加DTS服务器IP至白名单,以允许DTS访问ECS和RDS。
说明
如果有失败信息,参考对应的错误提示进行修改即可。
-
配置任务对象。
-
勾选
库表结构迁移
、
全量迁移
、
增量迁移
。
-
在
源库对象
框中选择要迁移的wordpressdb库,再单击
图标将其移动至
已选择对象框
,然后单击
下一步保存任务并预检查
。
-
在
高级配置
区域,勾选
全量校验
、
增量校验
和
结构校验
,然后单击
下一步保存任务并预检查
。
-
在
预检查
页面,
预检查通过率
达到100%后,单击
下一步购买
。
-
在购买页面,选择数据迁移实例的链路规格(本案例以small规格为例),阅读并选中
《数据传输(按量付费)服务条款》
,单击
购买并启动
。
-
迁移任务正式开始。
在
数据迁移
页面,单击迁移任务ID,可以查看具体进度。
当您看到如下界面,表示存量数据已迁移完成,增量数据会实时同步。此时您可以进入下一步,验证RDS里的数据。
您可以登录到云数据库RDS实例,查询RDS中是否具备了全量数据,并在网站新增加一条评论,验证该新评论是否从自建数据库同步到RDS。
-
登录RDS实例。
-
在
云产品资源
列表的
云数据库RDS实例区域
,单击
登录
。
-
在
登录实例
对话框中,填写RDS高权限数据库账号和密码,然后单击
登录
。
说明
本示例中,RDS高权限数据库账号为dbuser,密码为用户自定义密码。
如果报错“您暂未获取当前数据库实例的登录权限”,请单击
点此申请
,并由主账号完成审批。
-
验证全量数据。
在SQLConsole窗口,在左侧选择
数据库实例>已登录实例>test for database migration实例
,双击目标数据库名称wordpressdb,可以看到自建数据库所有库、表数据已经完成迁移。
说明
如果找不到wordpressdb库,请右键单击RDS实例ID,选择
刷新/同步数据字典
。