使用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.mzph.cn/news/231223.shtml

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

相关文章

可视化 | 基于CBDB的唐代历史人物分析

文章目录 📚人口统计🐇唐朝历年人数统计🐇唐朝人口金字塔🐇唐朝历年出生死亡人数统计🐇唐朝人口分布🐇享年数据分布 📚唐朝人口迁徙🐇人口迁徙🐇生卒地变迁 &#x1f4da…

IDEA代码补全不能导入某个类了

问题 今天写单元测试时,突然发现idea自动补全代码时不能自动导入类了, 比如在编辑器中输入Test,正常情况下通过快捷键atl/智能补全提示后可以自动生成导入import org.junit.Test ,但是现在不行了。 解决办法 由于在导入Test时不小…

【JavaWeb学习笔记】11 - WEB工程路径专题

一、工程路径问题 1.引入该问题 通过这几个去访问很麻烦 二、工程路径解决方案 1.相对路径 1.说明:使用相对路径来解决,一 个非常重要的规则:页面所有的相对路径,在默认情况下,都会参考当前浏览器地址栏的路径http:/ /ip:port/工程名/来进…

Go集成elasticsearch8极简demo,光速入门

Go集成elasticsearch8极简demo,光速入门 配置go环境创件go mod工程代码实现配置go环境 编辑器添加goproxy GO111MODULE=on;GOPROXY=https://mirrors.wps.cn/go/,https://goproxy.cn,direct;GOSUMDB=off创件go mod工程 mkdir demo cd demo go mod init demo代码实现 在demo…

JMESPath语言

JMESPath(JSON Matching Expression Path) 一种查询语言。 主要用于从JSON文档中检索和过滤数据。 通过写表达式提取和处理JSON数据,而无需编写复杂的代码。 功能:数据提取、过滤、转换、排序。 场景:处理API响应…

CentOS7安装Docker及添加阿里云镜像加速详细教程

Docker官方安装教程网站:Install Docker Engine on CentOS | Docker Docs 具体流程如下: 1.确定你是CentOS7及以上版本 cat /etc/redhat-release 2.yum安装gcc相关 yum -y install gcc yum -y install gcc-c 3.安装需要的软件包 3.1安装docker引擎…

MetaSploit工具的使用

在命令行输入:msfconsole 启动msf msfconsole 另外的方式 msfdb init msfdb run 查看数据库连接状态 db_status 扫描端口并存储 db_nmap 查看扫描到的数据信息 services MSF常用的模式和命令 搜索模块 search 模块名字 使用模块 use 编号 查看模块使用 sho…

对偶问题笔记(1)

目录 1 从 Lagrange 函数引入对偶问题2. 强对偶性与 KKT 条件3. 对偶性的鞍点特征 1 从 Lagrange 函数引入对偶问题 考虑如下优化问题 { min ⁡ f 0 ( x ) s . t f i ( x ) ≤ 0 , i 1 , ⋯ , p , h j ( x ) 0 , j 1 , ⋯ , q , x ∈ Ω , \begin{align} \begin{cases}\min…

在linux上基于shell自动部署Java项目

一,安装git yum list git 列出git安装包 yum install git 在线安装git 使用 git -varsion 查看是否安装成功 安装成功 二, Git克隆代码 git clone 远程仓库地址 三,创建shell脚本 touch shell.sh shell脚本 #!/bin/sh echo echo 自动…

健康手表数据洞察台

健康手表数据洞察台 1. 背景介绍2. 数据获取与处理3. Django平台搭建4. 数据可视化5. 整体数据分析6. 数据监控与紧急警报7. 用户界面优化8. 创新点结语 1. 背景介绍 在当今健康意识不断提升的社会,人们越来越关注身体健康。本文将介绍如何使用Pandas进行数据分析&…

NTC和温度的关系

一、NTC介绍 NTC(nagative temperature coefficient)负温度系数的热敏电阻。随着温度的升高,电阻越来越小 二、NTC和温度的关系 生产NTC的厂家会提供一个RT表格,里面记录了温度和电阻的关系,他们的关系是一一对应的…

C# 使用FluentHttpClient请求WebApi

写在前面 FluentHttpClient 是一个REST API 异步调用 HTTP 客户端,调用过程非常便捷,采用流式编程,可以将所有请求所需的参数一次性发送,并直接获取序列化后的结果。 老规矩从NuGet上安装该类库: 这边一定要认准是 P…

React系列:配置@别名路径并配置联想

🍁 作者:知识浅谈,CSDN签约讲师,CSDN博客专家,华为云云享专家,阿里云专家博主 📌 擅长领域:全栈工程师、爬虫、ACM算法 💒 公众号:知识浅谈 🔥网站…

汽车火花塞行业分析:全球市场需求量约为26.3亿个

在汽车日常保养里,更换火花塞算是比较常见的一种,爱车懂车的车主们都非常清楚火花塞对于汽车的重要性,可以说火花塞直接影响到发动机的运作,决定了汽车能否顺利启程。 火花塞(sparkplug),俗称火咀,它的作用是把高压导线(火嘴线)送来的脉冲高压电放电&…

zkSend — — 在Sui上发红包像发电子邮件一样简单

*12月14日,知名区块链媒体平台The Block发表了这篇关于对Mysten Labs联合创始人Adeniyi Abiodun的采访,文中“我们”指代该媒体,数据均为截止撰写文章时数据,以下是正文。 两年前,当五名前Facebook工程师创立Mysten L…

MySQL数据库 函数

目录 函数概述 字符串函数 数值函数 日期函数 流程函数 函数概述 函数是指一段可以直接被另一段程序调用的程序或代码。也就意味着,这一段程序或代码在MysQL中已经给我们提供了,我们要做的就是在合适的业务场景调用对应的函数完成对应的业务需求即…

如何提高股票交易速度?极速交易哪家好?

极速交易模式是一种交易方式,它以最短的时间进行快速交易。这种模式通常用于贵金属、外汇、原油、期权等金融产品的交易。 在极速交易模式中,交易者可以在最短时间内进行买卖操作,从而快速获取利润。这种交易方式通常需要高超的技术和经验&a…

【03】GeoScene创建海图或者电子航道图数据

1 配置Nautical属性 1.1 管理长名称 长名称(LNAM)是一个必要的对象标识符,是生产机构(AGEN)、要素识别号码(FIDN)和要素识别子项(FIDS)组件的串联。这三个子组件用于数…

【Spring】09 BeanClassLoaderAware 接口

文章目录 1. 简介2. 作用3. 使用3.1 创建并实现接口3.2 配置 Bean 信息3.3 创建启动类3.4 启动 4. 应用场景总结 Spring 框架为开发者提供了丰富的扩展点,其中之一就是 Bean 生命周期中的回调接口。本文将聚焦于其中的一个接口 BeanClassLoaderAware,介…

11889个字带你彻底弄清tcp/ip协议栈

tcpip协议栈 tcpip模型以太网协议ARP地址解析协议TCP协议 tcpip模型 OSI模型linux tcpip模型常用协议网络设备应用层应用层telnet/DHCP/TFTP/FTP/MQTT/NFS/DNS/FTP/SNMP表示层会话层传输层传输层TCP/UDP四层交换机网络层网络层IP/ICMP/IGMP/ARP路由器,三层交换机…