使用DTS将自建MySQL迁移至PolarDB MySQL引擎,探索DTS全量数据校验

1. 领取免费的ECS和PolarDB资源

一旦您注册了阿里云账号并填写了您的账号和支付信息,您就可以申请免费试用我们的产品(如ECS、PolarDB、RDS等服务)。

1.1. 申请 ECS 免费试用

1. 在
阿里云免费试用中心,找到ECS,单击“立即试用”>

1

2. 选择部署新ECS实例的地域,选择操作系统类型(如CentOS 7.8 x64),完成免费试用订单的所有配置:

2


 

3


 

4


 

5


 

6

7

3. 稍等片刻,然后检查刚刚启动的实例的状态。您还可以在实例状态变为 Running (运行中) 时自定义实例的名称。

8

1.2. 申请PolarDB免费试用

1.​在阿里云免费试用中心,找到PolarDB,单击立即申请>

9

2. 填写表格并提交

10

3. 单击“开始免费试用”,启动PolarDB实例

11

4. 在表单中选择区域,完成免费试用订单的所有配置

12


 

13

14

5. 稍等片刻,检查刚刚启动的实例的状态

15

16

2. 准备自建MySQL并在ECS上生成测试数据

在实验室页面右侧,单击图标

17

以切换到 Web 终端。请输入用户名和密码登录ECS实例。

18

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

19

运行以下命令以获取默认密码,该密码将在运行安全安装命令以初始化数据库时使用。在此过程中,您还可以设置自己的密码。之后,登录。

grep "password" /var/log/mysqld.log
sudo mysql_secure_installation

要保护您的MySQL安装,请在重置MySQL密码后输入“是”以解决所有问题。

20

21

之后,访问MySQL数据库。

sudo mysql -u root -p

22

当您看到上面的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;

23


 

24


 

25


 

26


 

27

28

请通过执行以下示例代码来查找创作摘要:

• 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;

29

因此,将创建用户 dtsmigration

3. 设置目标数据库实例

3.1. 在目标数据库实例上创建数据库帐户

源数据库数据准备好后,进入PolarDB控制台,切换到PolarDB所在地域,在目标数据库上创建用户进行迁移。请注意,需要特权帐户。请遵循以下指南,以确保您不会错过任何要点。

30


 

31


 

32


 

33

34

当状态变为“活动”时,表示数据库用户创建成功。

4.检查网络状况

你快到了!让我们完成准备工作并进入下一阶段。请进行最终环境检查,确认源端和目标端的网络条件完全满足要求。

4.1. 检查源数据库访问权限

4.1.1. 检查要迁移的用户帐户的远程访问

要访问刚刚创建的MySQL数据库,您需要重新登录ECS实例。在实验室页面右侧,单击图标

17

并切换到 Web 终端。输入用户名和密码登录ECS实例。如果您仍通过上述步骤登录,则可以在 Web 终端上使用相同的会话选项卡。

_35

如果您退出了云服务器的MySQL数据库,您可以执行以下命令重新登录。

mysql -u root -p

然后,执行以下命令,查看自建MySQL是否允许远程访问。

SELECT user, host FROM mysql.user;
exit;

35

如上所示,带有 % 的行表示允许为迁移创建的用户从任何位置访问数据库服务器。

如果用于迁移的用户的主机值改为本地主机,则应努力执行本实验中未讨论的其他配置。否则,您可能会在迁移过程中遇到失败。

4.1.2. 检查系统防火墙状态

执行以下命令,查看弹性云服务器的防火墙状态。如果它处于打开状态,则可以暂时为实验室将其关闭,但如果使用的是生产环境,则不要直接禁用防火墙服务。在生产环境中,我们建议保持防火墙开启状态,并根据实际情况配置相关的入站和出站策略。

systemctl status firewalld

36

如上所示,在实验室中,防火墙处于关闭状态。

4.1.3. 查看弹性云服务器的安全规则

进入ECS控制台​,切换到ECS实例所在的地域,编辑安全规则,允许目标RDS和DTS服务器连接MySQL服务端口。由于这是一个测试环境,为了方便起见,您可以直接参考以下示例,允许所有 IP 访问弹性云服务器上的所有端口。

与防火墙配置类似,如果是生产环境,则不应允许从任何地方访问任何端口。

37


 

38

39

4.2. 检查目标数据库访问权限

4.2.1. 配置目标数据库实例的白名单

进入PolarDB控制台​,设置实例白名单,确定谁可以与实例建立连接。在本实验中,您可以参考以下示例来接受所有 IP。但是,如果您在生产环境中操作,则需要谨慎使用配置 0.0.0.0/0,因为它不安全。

40

41

5. 配置DTS迁移任务

5.1. 配置DTS迁移任务并预检查

进入DTS控制台​,切换到目标数据库所在地域,创建迁移任务。您需要根据实际环境配置源数据库和目标数据库的信息,并指定迁移对象,如以下示例所示。

需要注意的是,对于迁移类型,在任务配置时只需要勾选全量数据迁移和Schema迁移。增量迁移可能会产生额外费用,因此请谨慎配置。

此外,DTS 还提供了按行或哈希验证数据的功能。您可以选择通过配置数据验证设置来探索此功能。本实验中用到了这个功能,如果想试用,可以参考以下配置。如果您不感兴趣,也可以跳过这部分配置。

42


 

43


 

44


 

45


 

46


 

47


 

48


 

49


 

50


 

51


 

52

53

5.2. 启动DTS迁移任务

预检查后,在控制台上单击“启动任务”。您可以见证任务的以下状态更改:

架构迁移 -> 完整迁移 -> 已完成

54


 

55


 

56


 

57


 

58


 

59

60

当任务变为“已完成”时,表示迁移已完成。

6. 验证数据

迁移后,需要检查源数据库和目标数据库的数据一致性。如果数据不是太多,很容易做到这一点。例如,在本实验中,您可以登录到目标数据库并运行一些基本的 SQL 语句,因此您可以通过比较记录计数或从表中选择所有数据来轻松了解一致性。但是,如果迁移的数据量很大,尤其是表库较多时,DTS的全量数据校验功能会非常有用。

6.1. 在DTS控制台查看全量数据校验详情

由于本实验中配置了 DTS 全量数据验证功能,因此您可以在下面看到此功能如何节省时间:

61

62

如图所示,该功能为您提供了双方数据的清晰摘要,以帮助您轻松区分并找到不一致的项目。

6.2. 检查目标数据库的数据

如果您没有配置 DTS 全量数据校验功能,您仍可以通过运行 SQL 语句手动进行数据校验,以获取表上的行和数据。迁移后,您最终会知道数据是否有效。

63


 

64


 

65


 

66


 

67


 

68


 

69

70

7. 可选 - 清理资源

至此,实验室已完成。您可以选择保留资源以供进一步使用,也可以立即清理它。对于通过申请免费试用进行探索的参与者,如果您不打算继续使用这些资源并且不想清理它,那没关系,您不会为此付费。但是,如果您不打算继续使用它,我们强烈建议您释放实例。您可以通过两个步骤释放所有资源:

  1. 将资源从包年包月转换为即用即付
  2. 点击释放清理

7.1. 释放ECS实例

进入ECS控制台​,按照以下示例逐步释放实例:

71


 

72


 

73


 

74

75

7.2. 释放PolarDB实例

进入PolarDB控制台​,按照以下示例逐步释放实例:

76


 

77

78

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/284476.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】八大排序之简单选择排序算法

🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 一.简单选择排序简介及思路 二.简单选择排序的代码实现 三.简单选择排序的优化 四.简单选择排序的时间复杂度分析 结语 一.简单选择排序简介及思路 简单选择排序算法…

力扣225. 用队列实现栈【附进阶版】

文章目录 力扣225. 用队列实现栈示例思路及其实现两个队列模拟栈一个队列模拟栈 力扣225. 用队列实现栈 示例 思路及其实现 两个队列模拟栈 队列是先进先出的规则,把一个队列中的数据导入另一个队列中,数据的顺序并没有变,并没有变成先进后…

羊大师之冷天喝羊的好处大揭秘!

最近,冷天喝羊已经成为了一种趋势,受到了越来越多人的关注与喜爱。你可能会好奇,为什么冷天喝羊有那么多的好处呢?今天小编羊大师将带大家一起探索这个问题,揭秘冷天喝羊带来的种种益处。 冷天喝羊对于保持身体温暖是…

pr-卡点

目录 自定义创建序列关闭拉动时音频 自定义创建序列 关闭拉动时音频 难点:寻找精准衔接画面

Transformer Decoder的输入

大部分引用参考了既安的https://www.zhihu.com/question/337886108/answer/893002189这篇文章,个人认为写的很清晰,此外补充了一些自己的笔记。 弄清楚Decoder的输入输出,关键在于图示三个箭头的位置: 以翻译为例: 输…

算法分析与设计课后练习25

问题描述 用LC分枝限界算法求解下面的0-1背包问题,并画出 所生成的状态空间树。 ① N 5, M12, (p1, p2, …, p5) (10, 15, 6, 8, 4), (w1, w2, …, w5) (4, 6, 3, 4, 2) 。 用FIFO分枝限界算法求解下面的0-1背包问题,并画 出所生成的状态空间树。 ②…

Peter算法小课堂—简单建模(4)

太戈编程1655题 一条直线上,你安排了n个哨兵站岗放哨,编号从1到n。其中i号哨兵的坐标位置是x[i]。不会有哨兵站在相同的位置。作为指挥官,你需要知道3个信息: 1.从左到右,每个哨兵的坐标依次是几? 2.从左到右&…

[ 8 种有效方法] 如何在没有备份的情况下恢复 Android 上永久删除的照片?

我们生命中最重要的时刻,但这样做有缺点,其中之一就是数据丢失的风险。您可能倾向于定期删除无意义的照片,同时保存可爱的照片,从而使您的 Android 设备井井有条。然而,有些人在删除自己珍视的图像时不小心犯了错误。您…

VMware----基于 VMware 玩转 CentOS 虚拟机创建、克隆以及配置后台运行

查看原文 文章目录 一、安装 Vmware二、创建 CentOS7 系统的虚拟机三、克隆虚拟机四、设置虚拟机后台运行 一、安装 Vmware (1)打开VMware下载地址页面,滑动页面,找到如下界面,点击【下载】 (2&#xff…

NPM的介绍和使用

初识npm npm是Node.js世界里最流行的包管理器,用于Node模块的发布、安装和管理。npm是Node Package Manager(Node包管理器)的缩写。 利用npm可以非常方便地安装各种第三方包,不需要关心包之间的各种依赖关系,因为npm会自动处理这些繁琐的工作。这极大地简化了项目的配置,使我们…

windows10-tdengine的安装及使用

win10-tdengine的安装及使用 一、下载及安装配置1.1 下载安装1.2 配置1.3 关闭防火墙和开放端口1.3.1 关闭防火墙1.3.2 开放6030端口 二、启动及关闭服务2.1 启动tdengine服务2.2 关闭tdengine服务2.2 开机自启动配置 四、可视化工具五、TDengine 命令行(CLI&#x…

mybatisplus使用雪花id通过swagger返回ID时精度丢失问题

在使用mybatisplus自带雪花的时候会发现返回的ID是19位的长度,因此在通过swagger页面展示的时候会发现后端返回的和页面展示的ID不一致问题。是因为精度丢失的问题。因此需要更改雪花ID的长度跟踪进去:发现是DefaultIdentifierGenerator类实现了Identifi…