mysql数据库增量同步 mysql数据库迁移方式

微信公众号:PersistentCoder关注可了解更多的教程。问题或建议,请公众号留言;内容目录一、dum

内容目录

一、dump方式二、navicat数据传输三、阿里云DTS四、亚马逊DMS五、谷歌云DMS六、腾讯云DTS七、总结

之前有篇文章介绍过使用DataX同步mysql数据《如何基于DataX做增量数据同步?》,DataX是阿里云DTS的开源版本,但是只支持单表同步,但是有些场景我们需要对mysql整库迁移,那么开源DataX就有点力不从心了,今天就整理并介绍下mysql整库迁移的几种方式。

一、dump方式1.原生dump

使用mysqldump导出原始数据库的SQL文件:

mysqldump -u username -p database_name > source.sql

执行完该命令后,会生成一个名为backup.sql的SQL文件,包含了原始数据库的结构和数据。

将导出的SQL文件拷贝到目标服务器上:

scp  source.sql user@host:/xxx/

在目标服务器上创建一个数据库:

mysql -u username -p -e "CREATE DATABASE database_name"

或者登录进去再创建。

导入SQL文件到新的数据库:

mysql -u username -p database_name < source.sql

这样源数据库数据结构和数据就导入到目标数据库了,但是这种方式对于对于云原生架构有时候有缺陷,目前很多数据库,比如aws的rds和阿里云的rds等等,这些云服务mysql实例,是不允许你登录到宿主机操作的,所以dump出来的文件没办法上传到mysql服务器执行,但是可以在装有mysql客户端或命令行的机器上执行。

2.工具dump

像Navicat这种工具也提供了dump相关能力,也可以实现mysql整库迁移的能力。

打开工具选择源数据库导出数据库dump文件:

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

然后选择目标数据库导入源数据库的dump文件:

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

这样就实现了源数据库到目标数据库的数据迁移了。

二、navicat数据传输

Navicat也提供了数据传输工具来实现数据迁移的能力。

选择数据传输:

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

填入源数据库和目标数据库的连接信息:

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

最后开始开启同步表结构和数据:

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

三、阿里云DTS

阿里云提供了比较完善的数据库迁移和数据同步的产品能力,并且有一部分能力是完全免费的。

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

对于mysql整库迁移同步,我们可以选择结构迁移和全量数据迁移免费产品能力。

在控制台创建DTS任务:

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

如果源数据库和目标数据库是非阿里云rds和ecs搭建,那么选择公网ip即可,填入源数据库和目标数据库实例的连接信息,进入下一步:

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

这个提示是需要将DTS任务执行相关机器的ip加到源和目标数据的访问ip白名单中。

测试连接没问题后选择库表结构迁移和全量数据迁移,并将源数据库中的相关表勾选到目标数据库中:

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

然后启动DTS迁移任务即可。需要注意的是全量免费,增量收费。

四、亚马逊DMS

亚马逊提供了迁移数据的产品能力,叫DMS,使用方式与阿里云不太一样。需要分别创建源/目标端点、复制实例和任务等。

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

1.创建复制实例

复制实例是执行同步任务的中间机器。可以选择规格,我理解是收费的。

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

2.创建源端点

创建源端点并填写连接信息:

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

3.创建目标端点

另外创建端点选择目标端点并填入目标数据库连接信息:

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

4.创建同步任务

创建任务选择复制实例、源端点和目标端点,迁移类型选择迁移现有数据,然后即可启动任务开始迁移了。

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

5.创建无服务器复制

aws也提供了无复制实例的任务模式,其实使用的是aws的serverless能力,选择源端点和目标端点启动任务后,会自动调用serverless计算和存储相关能力,不需要用额外创建和选择复制实例。

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

五、谷歌云DMS

谷歌云也提供了DMS数据迁移相关产品能力,但是个人感觉目前做的比较简单,或者说产品能力定位就是这样,目标数据库必须是cloud sql for mysql,并且源和目标必须是同一个区域,有兴趣的可以了解使用。

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

六、腾讯云DTS

腾讯云也提供了DTS数据传输服务来实现数据库迁移能力,暂时没有发现免费产品能力版本。

创建数据迁移任务,选择源数据库和目标数据库实例类型以及区域,然后选择任务执行机器的规格,然后购买实力并启动任务即可。

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

mysql数据库增量同步_mysql数据库增量同步_mysql数据库增量同步

七、总结

对于整库迁移或者全量同步,当然除了上述各种同步类型,还有其他比较常用的的kettle和TurboDX等等,对于本篇介绍的几种方式,前边三种方式是免费的,后边三种是收费的,具体使用哪一种没有固定的答案,如果比较简单的场景可以选择dump和Navicat数据传输方式,对于数据量比较大或者追求稳定性可靠性的可以选择阿里云的免费DTS全量同步,如果是团队已经在使用亚马逊或者谷歌云了,那么选择在vpc内选择一种付费的服务也无可厚非,希望对大家开发工作有所帮助,不胜荣幸!

原创文章,作者:筱凯,如若转载,请注明出处:https://www.jingyueyun.com/ask/410.html

(0)
筱凯筱凯
上一篇 2024 年 7 月 11 日
下一篇 2024 年 7 月 11 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

云产品限时秒杀。精选云产品高防服务器,500M大带宽限量抢购  >>点击进入