使用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时不小…

html5新增特性

对于这行代码&#xff0c;要写在html页面的最前端&#xff1a; <!DOCTYPE html> 为什么要写在前面&#xff1f; 这是声明&#xff0c;是html5的新特性 对于html4来说&#xff0c;它有三种声明格式&#xff0c;而html5只需要统一声明&#xff0c;用来告诉浏览器文档使用…

Vue系列之指令 v-once

文章の目录 1、介绍2、用法3、作用写在最后 1、介绍 v-once 指令可以用于任何元素或组件&#xff0c;并在绑定数据后&#xff0c;将其内容标记为一次性的&#xff0c;不再响应数据的更新。v-once 是一个不需要表达式的指令。 2、用法 <span v-once>{{ message }}</…

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

一、工程路径问题 1.引入该问题 通过这几个去访问很麻烦 二、工程路径解决方案 1.相对路径 1.说明:使用相对路径来解决&#xff0c;一 个非常重要的规则:页面所有的相对路径&#xff0c;在默认情况下&#xff0c;都会参考当前浏览器地址栏的路径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&#xff08;JSON Matching Expression Path&#xff09; 一种查询语言。 主要用于从JSON文档中检索和过滤数据。 通过写表达式提取和处理JSON数据&#xff0c;而无需编写复杂的代码。 功能&#xff1a;数据提取、过滤、转换、排序。 场景&#xff1a;处理API响应…

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

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

如何在Windows上安装 PHP?

安装 PHP 的步骤会根据你使用的操作系统而有所不同。以下是在一些主流操作系统上安装 PHP 的基本指南&#xff1a; 在 Windows 上安装 PHP&#xff1a; 下载 PHP&#xff1a; 访问 PHP for Windows 网站。 下载你需要的 PHP 版本&#xff08;通常是线程安全版本&#xff09;。…

MetaSploit工具的使用

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

leetcode 572. 另一颗树的子树

这道题重在思路&#xff0c;默认大家会判断两个树是否完全相同 我会把一些基础的简单的&#xff08;包括 判断两个树是否完全相同 和之前的 求结点个数 &#xff09;单独出博客&#xff0c;或者放在介绍堆和树的知识点里面 572. 另一颗树的子树 题目 给你两棵二叉树 root 和…

对偶问题笔记(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…

比 Spring Cloud Zuul 更好用的 API 网关

推荐一个 比 spring cloud 更好用的 API 网关。它是一个低代码 API 网关。 https://github.com/fiber-net-gateway/fiber-net-gateway 特性 同样是使用 java 开发&#xff0c;相比与 SpringCloud Zuul&#xff0c;它有很多 鲜明的特点。 低代码 它实现了一个灵活好用的脚本…

《从晨到夜:在日常繁忙中寻找成长与平衡的艺术》

早上8点11分&#xff0c;我睁开眼睛&#xff0c;开始了新的一天。不到半小时&#xff0c;我匆匆出门&#xff0c;开始了日常的“搬砖”工作。从9点15分到公司&#xff0c;到下午6点15分结束工作&#xff0c;我的一天被紧凑的工作安排填满。我在完成技术任务的同时&#xff0c;也…

Redis系列之事务机制

什么是Redis事务 学习mysql数据库的时候&#xff0c;我们知道了事务的ACID特性&#xff0c;Redis也是支持事务的&#xff0c;不过和数据库的事务又有什么区别&#xff1f;在mysql数据库中&#xff0c;我们使用begin开启事务&#xff0c;提交是commit&#xff0c;回滚是rollbac…

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

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

健康手表数据洞察台

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

NTC和温度的关系

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

C# 使用FluentHttpClient请求WebApi

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

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

&#x1f341; 作者&#xff1a;知识浅谈&#xff0c;CSDN签约讲师&#xff0c;CSDN博客专家&#xff0c;华为云云享专家&#xff0c;阿里云专家博主 &#x1f4cc; 擅长领域&#xff1a;全栈工程师、爬虫、ACM算法 &#x1f492; 公众号&#xff1a;知识浅谈 &#x1f525;网站…