1. 领取免费的ECS和PolarDB资源
一旦您注册了阿里云账号并填写了您的账号和支付信息,您就可以申请免费试用我们的产品(如ECS、PolarDB、RDS等服务)。
1.1. 申请 ECS 免费试用
1. 在
阿里云免费试用中心,找到ECS,单击“立即试用”>
2. 选择部署新ECS实例的地域,选择操作系统类型(如CentOS 7.8 x64),完成免费试用订单的所有配置:
3. 稍等片刻,然后检查刚刚启动的实例的状态。您还可以在实例状态变为 Running (运行中) 时自定义实例的名称。
1.2. 申请PolarDB免费试用
1.在阿里云免费试用中心,找到PolarDB,单击立即申请>
2. 填写表格并提交
3. 单击“开始免费试用”,启动PolarDB实例
4. 在表单中选择区域,完成免费试用订单的所有配置
5. 稍等片刻,检查刚刚启动的实例的状态
2. 准备自建MySQL并在ECS上生成测试数据
在实验室页面右侧,单击图标
以切换到 Web 终端。请输入用户名和密码登录ECS实例。
2.1. 在ECS上安装MySQL 8.0
执行以下命令,在ECS上安装MySQL 8.0及其扩展包。启动服务,检查服务状态,并在重新启动时启用自动启动。
注意:此实验基于 CentOS 7.8 x64 操作系统。如果您使用的是其他操作系统,则安装可能会有所不同,本实验中不对此进行讨论。
sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
sudo yum install -y mysql-community-server mysql-community-clientsudo systemctl start mysqld
sudo systemctl enable mysqld
systemctl status mysqld
运行以下命令以获取默认密码,该密码将在运行安全安装命令以初始化数据库时使用。在此过程中,您还可以设置自己的密码。之后,登录。
grep "password" /var/log/mysqld.log
sudo mysql_secure_installation
要保护您的MySQL安装,请在重置MySQL密码后输入“是”以解决所有问题。
之后,访问MySQL数据库。
sudo mysql -u root -p
当您看到上面的MySQL版本和SQL输入提示时,您已经成功安装了自建的MySQL并进入了数据库。
2.2. 在自建MySQL上准备测试数据
登录MySQL后,执行以下命令,创建数据库,创建表,并在迁移前将数据插入MySQL。然后,检查表的架构并选择生成的数据量。
create database testdb;
use testdb;CREATE TABLE `customer` (`customer_id` int(11) NOT NULL,`name` varchar(255) DEFAULT NULL,PRIMARY KEY (`customer_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;CREATE TABLE `product` (`product_id` int(11) NOT NULL,`name` varchar(255) DEFAULT NULL,`price` int(11) DEFAULT NULL,PRIMARY KEY (`product_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;INSERT INTO `customer` VALUES ('1', 'Marty1'), ('2', 'Marty2'),('3', 'Marty3'),('4', 'Marty4'),('5', 'Marty5'),('6', 'Marty6'),('7', 'Marty7'),('8', 'Marty8'),('9', 'Marty9'),('10', 'Marty10'),('11', 'Marty11'),('12', 'Marty12'),('13', 'Marty13'),('14', 'Marty14'),('15', 'Marty15'),('16', 'Marty16'),('17', 'Marty17'),('18', 'Marty18'),('19', 'Marty19'),('20', 'Marty20');INSERT INTO `product` VALUES ('1', 'Bread-1','4'), ('2','Bread-2','7'),('3', 'Bread-3','2'),('4', 'Bread-4','10'),('5', 'Bread-5','5'),('6', 'Bread-6','7'),('7', 'Bread-7','6'),('8', 'Bread-8','3');show tables;
show columns from customer;
show columns from product;
select * from customer;
select * from product;
请通过执行以下示例代码来查找创作摘要:
• 1 个数据库:testdb
• 2 个表:customer、product• 数据:customer 表中有 20 条记录,product
中有 8 条记录
2.3. 在自建MySQL上创建用户进行迁移
登录MySQL后,执行以下命令,新建用户进行迁移。
CREATE USER 'dtsmigration'@'%' IDENTIFIED BY 'Dts123456@';
GRANT ALL ON *.* TO 'dtsmigration'@'%';
flush privileges;
exit;
因此,将创建用户 dtsmigration。
3. 设置目标数据库实例
3.1. 在目标数据库实例上创建数据库帐户
源数据库数据准备好后,进入PolarDB控制台,切换到PolarDB所在地域,在目标数据库上创建用户进行迁移。请注意,需要特权帐户。请遵循以下指南,以确保您不会错过任何要点。
当状态变为“活动”时,表示数据库用户创建成功。
4.检查网络状况
你快到了!让我们完成准备工作并进入下一阶段。请进行最终环境检查,确认源端和目标端的网络条件完全满足要求。
4.1. 检查源数据库访问权限
4.1.1. 检查要迁移的用户帐户的远程访问
要访问刚刚创建的MySQL数据库,您需要重新登录ECS实例。在实验室页面右侧,单击图标
并切换到 Web 终端。输入用户名和密码登录ECS实例。如果您仍通过上述步骤登录,则可以在 Web 终端上使用相同的会话选项卡。
如果您退出了云服务器的MySQL数据库,您可以执行以下命令重新登录。
mysql -u root -p
然后,执行以下命令,查看自建MySQL是否允许远程访问。
SELECT user, host FROM mysql.user;
exit;
如上所示,带有 % 的行表示允许为迁移创建的用户从任何位置访问数据库服务器。
如果用于迁移的用户的主机值改为本地主机,则应努力执行本实验中未讨论的其他配置。否则,您可能会在迁移过程中遇到失败。
4.1.2. 检查系统防火墙状态
执行以下命令,查看弹性云服务器的防火墙状态。如果它处于打开状态,则可以暂时为实验室将其关闭,但如果使用的是生产环境,则不要直接禁用防火墙服务。在生产环境中,我们建议保持防火墙开启状态,并根据实际情况配置相关的入站和出站策略。
systemctl status firewalld
如上所示,在实验室中,防火墙处于关闭状态。
4.1.3. 查看弹性云服务器的安全规则
进入ECS控制台,切换到ECS实例所在的地域,编辑安全规则,允许目标RDS和DTS服务器连接MySQL服务端口。由于这是一个测试环境,为了方便起见,您可以直接参考以下示例,允许所有 IP 访问弹性云服务器上的所有端口。
与防火墙配置类似,如果是生产环境,则不应允许从任何地方访问任何端口。
4.2. 检查目标数据库访问权限
4.2.1. 配置目标数据库实例的白名单
进入PolarDB控制台,设置实例白名单,确定谁可以与实例建立连接。在本实验中,您可以参考以下示例来接受所有 IP。但是,如果您在生产环境中操作,则需要谨慎使用配置 0.0.0.0/0,因为它不安全。
5. 配置DTS迁移任务
5.1. 配置DTS迁移任务并预检查
进入DTS控制台,切换到目标数据库所在地域,创建迁移任务。您需要根据实际环境配置源数据库和目标数据库的信息,并指定迁移对象,如以下示例所示。
需要注意的是,对于迁移类型,在任务配置时只需要勾选全量数据迁移和Schema迁移。增量迁移可能会产生额外费用,因此请谨慎配置。
此外,DTS 还提供了按行或哈希验证数据的功能。您可以选择通过配置数据验证设置来探索此功能。本实验中用到了这个功能,如果想试用,可以参考以下配置。如果您不感兴趣,也可以跳过这部分配置。
5.2. 启动DTS迁移任务
预检查后,在控制台上单击“启动任务”。您可以见证任务的以下状态更改:
架构迁移 -> 完整迁移 -> 已完成
当任务变为“已完成”时,表示迁移已完成。
6. 验证数据
迁移后,需要检查源数据库和目标数据库的数据一致性。如果数据不是太多,很容易做到这一点。例如,在本实验中,您可以登录到目标数据库并运行一些基本的 SQL 语句,因此您可以通过比较记录计数或从表中选择所有数据来轻松了解一致性。但是,如果迁移的数据量很大,尤其是表库较多时,DTS的全量数据校验功能会非常有用。
6.1. 在DTS控制台查看全量数据校验详情
由于本实验中配置了 DTS 全量数据验证功能,因此您可以在下面看到此功能如何节省时间:
如图所示,该功能为您提供了双方数据的清晰摘要,以帮助您轻松区分并找到不一致的项目。
6.2. 检查目标数据库的数据
如果您没有配置 DTS 全量数据校验功能,您仍可以通过运行 SQL 语句手动进行数据校验,以获取表上的行和数据。迁移后,您最终会知道数据是否有效。
7. 可选 - 清理资源
至此,实验室已完成。您可以选择保留资源以供进一步使用,也可以立即清理它。对于通过申请免费试用进行探索的参与者,如果您不打算继续使用这些资源并且不想清理它,那没关系,您不会为此付费。但是,如果您不打算继续使用它,我们强烈建议您释放实例。您可以通过两个步骤释放所有资源:
- 将资源从包年包月转换为即用即付
- 点击释放清理
7.1. 释放ECS实例
进入ECS控制台,按照以下示例逐步释放实例:
7.2. 释放PolarDB实例
进入PolarDB控制台,按照以下示例逐步释放实例: