使用 DTS 实现腾讯云数据库 MySQL 多节点和单节点互相转换

本文最后更新于 2024年11月24日 凌晨

之前在腾讯云上购买了 MySQL 的 DBaaS 服务,发现单节点和多节点之间是无法转换的。但是可以使用 DTS 来间接实现单节点和多节点的互相转换。

首先要明确: 单节点和多节点因为架构不一样,其实相当于是两个不同的产品,直接转换目前是不行的。我们可以间接使用 DTS 数据迁移方法间接转换,即: 新购数据库服务器,之后迁移数据,最后销毁旧数据库。

DBaaS

这里给小伙伴一个小科普,DBaaS 服务全称是 Database as a Service,即: 数据库即服务。可以认为是我们以为 SaaS 服务的一种。是不是有小伙伴问,为什么我不在自己的服务器上搭建数据库呢?比如: 购买一台 CVM 或者 Lighthouse,同样是云服务,也不用考虑磁盘阵列、CPU 和内存老化等问题,是不是很香?

为什么呢?

选择 DBaaS 原因

其实,现在有了 docker,在 CVM 上搭建数据库,也是比较方便的,比如:

1
2
# 部署 mariadb,并且完成目录映射和基础配置
docker run --name mariadb -p 3306:3306 --network=OnlineTool -e MYSQL_ROOT_PASSWORD="**********" -v /dockerData/mariaDB:/var/lib/mysql -d -e TZ=Asia/Shanghai mariadb:lts

后续如果想定期备份数据,也可以使用快照等工具实现。

但是,如果想数据闪回、节点集群等等操作呢? 那么如果是自建的服务,就有些麻烦了,最好是专业的数据库工程团队来维护。而 DBaaS 服务,可以大幅度降低数据库运维的门槛,让数据库运维更简单。

具体的对比,可以参考腾讯云的官方文档: 云数据库 MySQL 与自建 MySQL 对比优势

当然,如果你想要性价比。那么,自建数据库也是不错的选择。尤其是对于个人用户,一台 Lighthouse,就可以满足大部分需求了,相比单节点的数据库,在构建数据库的同时,还可以部署网站。

运维更简单

多/单节点

首先,在腾讯云的控制台,单节点和多节点的数据库是分开的,如下图所示:

单节点和多节点

参考: 云数据库 MySQL>产品简介>产品概述

本质上,单节点版本的架构,就是一台服务器上部署一个数据库实例,而多节点版本的架构,不仅仅是多台服务器上部署多个数据库实例,还涉及到数据同步、读写分离、故障切换等操作。所以,单节点和多节点的数据库无法转换也正常。

都是多节点的数据库,就可以在腾讯云的控制台进行互相转换:

双节点转三节点

配置升级中

同理,三节点也可以回退到双节点:
三节点转双节点

至于单节点和多节点的数据库互相转换,可以使用 DTS 数据传输服务间接实现。

支持创作

制作教程不易,如果热心的小伙伴,想支持创作,可以加入我们的电圈(还可以解锁远程协助、好友位😃):

WebChart Recognise

志同道合的小伙伴也是知音难觅。

  • 开发者爱好群: 👉 如果你对云服务器、CDN、云数据库和Linux等云计算感兴趣,亦或者喜欢编程、设计、产品、运营等领域,欢迎加入我们的开发者爱好群,一起交流学习(目前可能就我一个人?🤔,毕竟才刚刚创建~)。
QQ_Group Recognise

当然,也欢迎在B站或YouTube上关注我们:

更多:

DTS 迁移

腾讯云的控制台,提供了数据传输服务,之前我们都是用来迁移其他 DBaaS 服务的数据到腾讯云的,今天,我们也可以用它来迁移单节点的数据库到多节点的数据库: 数据传输服务 - 数据迁移

数据传输服务控制台入口

DTS文档: 数据传输服务

使用起来,有一定的局限。比如: 我有一个 MariaDB 是在腾讯云轻量应用服务器上使用 Docker 部署的 LTS 版本, 使用 MaraDB 迁移数据到 MySQL ,检测到 MariaDB 的版本还不在支持的范围内:

不支持

在支持的情况下,相比起自己导出 SQL/CSV 文件后,再导入目标数据库,方便太多了。

好在,DTS 服务用于多节点转换再合适不过了。腾讯云目前正在售卖的云数据库,DTS 都是支持的,那么两个腾讯云的 MySQL 数据库,即使是架构不一样,同样可以使用 DTS 完成数据同步和迁移,甚至还可以走内网直连的模式,进一步加快迁移速度。

不知所措

回到正题,我们有一个是单节点和一个是多节点的,如下图所示:

准备两个数据库

在数据传输服务下的数据迁移内,新建迁移任务:

新建迁移任务

之后进行配置: 源数据库、目标数据库、迁移模式、迁移对象、迁移方式、迁移配置等,如下图所示:

配置DTS任务

之后,你可以按需选择迁移对象,比如: 只迁移表、只迁移库、迁移表和库等,如下图所示:
设置迁移部分表和数据库

等待校验通过后,就可以开始迁移了,如下图所示:
校验通过

最后,开始任务即可:
开始迁移

迁移完成后,你就可以销毁源数据库来退费回血了。当然,强烈建议大家验证数据是否迁移成功,查看数据是否一致

Q&A

如果是双节点升级三节点,那么费用如何计算?

如果是双节点升级三节点,如果是按量计费,那么后续按量会切换为三节点费用;如果是包年包月,那么切换为三节点后,需要给补齐剩余套餐时长内,三节点和双节点的差价。同理,如果三节点降级为双节点,费用也会进行相应的调整。

如果数据迁移中,源数据库不断有新的数据写入,那么迁移任务会一直进行吗?

会一直进行,直到迁移完成。你也可以在迁移任务内,手动停止迁移任务。已经迁移的数据,不会丢失。

思考🤔

END

总的来说,DTS 数据传输服务,还是非常好用的,可以用来迁移数据,也可以用来转换数据库架构。相比起自己自建数据库,云数据库的操作都是比较简单的。

最近刚好又是双十一,大家也可以趁此机会,购买云数据库,享受云服务带来的便利:

如果你觉得本篇教程对你有帮助,欢迎在B站、知乎、公众号、博客园等平台分享给更多人。也欢迎加入我们的开发者交流群: 812198734 ,一起交流学习,共同进步。



使用 DTS 实现腾讯云数据库 MySQL 多节点和单节点互相转换
https://www.mintimate.cn/2024/11/23/QCloudSqlMultiToSingleNode/
作者
Mintimate
发布于
2024年11月23日
许可协议