关于 MYSQL 数据库迁移的求助

261 天前
 baiyekaslana
我想找个关于数据库迁移方面的知识,最好是热备份的,有什么推荐的书或者发布的帖子嘛
公司现在是想这样
场景:现在有 mysql5.7 数据库服务器 1 和 mysql5.7 数据库服务器 2 进行主从复制,上面的数据库有 db_a,db_b 。还有另一台 mysql5.7 数据库服务器 3 ,上面的数据库为 db_c,db_d 。
需求:现在需要把数据库服务器 3 上的 db_c 和 db_d 迁移到数据库服务器 1 上。
2784 次点击
所在节点    MySQL
40 条回复
baiyekaslana
260 天前
@dorothyREN 之前忘了说是要迁移的是阿里云数据库 RDS,这个刚才大概看了下应该是要搭建 tidb 的集群,通过集群完成的实时同步功能。这个我理解的大概没法用在阿里云数据库 RDS 。不知道这个能否在别的服务器搭建 tidb 服务,远程连接到阿里云数据库。
baiyekaslana
260 天前
@Hyson2023 好的,那我去看看
defunct9
260 天前
DTS 是可以的,前提你是用 ipsec 或者 vpn 打通阿里云和公司的网络,这样就可以了。这种方式搞过很多次
goodryb
260 天前
既然是阿里云的 RDS ,那强烈推荐使用 DTS 去做,同步的时候注意选择好库,不要搞错; 另外注意下存储空间,别打爆了
baiyekaslana
260 天前
@goodryb 好的,现在正在试,400G 的库大概多长时间
goodryb
260 天前
@baiyekaslana 如果是同 VPC ,那应该很快的,半天左右,全量+增量足够了
kestrelBright
260 天前
flink?
baiyekaslana
260 天前
@goodryb 谢谢
LostPrayers
260 天前
我之前迁移 40 个 G 的 mysql 数据库,是搜了几篇博客+ChatGPT🤣
nextvay
260 天前
我们上云步骤
1.旧数据库使用代理,代理后面挂载旧数据库
2.开启 DTS 数据同步+增量同步,
3.数据差不多了,凌晨某个时间点旧数据库开启只读,不准写入,此时切换代理挂载新数据库
dorothyREN
260 天前
@baiyekaslana 不需要搭建 tidb 集群,只需要部署 tidm 就行了,dm 工具会自动同步上游数据到下游,上下游都是你自己配置的 mysql 地址
chutianyao
259 天前
@baiyekaslana 你们是不是用的机械硬盘,io 速度上不去导致的.
我前天恢复 17G 的数据,使用机械盘,io 速度只有 10MBps; 后来换 SSD,速度到了 200MBps+,不到 1 小时就搞完了
root71370
259 天前
我来说一下我们的方案,第一步 mysqldump 全量数据,记录下 binlog 点位,第二步导入到新的 mysql 中,第三步通过主从根据第一步记录的 binlog 点位去消费达到增量同步,第四步关闭源实例,通知业务切换 dsn 。如果没有乱七八糟的存储过程触发器啥的,这一套还是能在生产跑的。
liu35118665
259 天前
1 、使用单表空间文件导入 InnoDB 表 https://dev.mysql.com/doc/refman/8.0/en/innodb-table-import.html
2 、也可以配合 xtrabackup ,用 xtrabackup 备份表,之后直接拷贝表空间文件到目标位置
liu35118665
259 天前
@liu35118665 mysql5.7 应该也可以 https://dev.mysql.com/doc/refman/5.7/en/innodb-table-import.html 拷贝文件的方式速度应该是最快的
fionasit007
259 天前
我现在 CloudCanal ,不过你那么大的数据量我不清楚 CloudCanal 稳定不;要是阿里云的数据库或者在阿里云服务器搭建的数据库都可以用阿里云的 DTS
baiyekaslana
258 天前
@chutianyao 公司服务器确实用的机械盘,好久的机子了。都没换过配置
baiyekaslana
258 天前
@root71370 binlog 点位要怎么记,要迁移的数据库是不让停的,随时都有读写,binlog 不是随时换的嘛。而且记录 binlog 点位要在全量迁移的什么时候记才能和全量迁移的数据保持一致
baiyekaslana
258 天前
@fionasit007 现在就用的 DTS,但是有个库的表结构报错了,说是可能发生死锁啥的,都不知道该怎么处理。哎
root71370
257 天前
@baiyekaslana binlog 点位 在 mysqldump 的时候导出数据中就已经记录了,提取出来即可。把全量数据恢复到目标库之后,就可以对源库进行写入禁止操作了,期间产生的数据量通过 mysql 主从增量恢复,这个时候源库和目标库是一个同步的状态,业务直接改 dsn 重启就行了。当然要保证所有使用源库的统一切换,最安全的方案是先禁止源库的写入权限,这个时候等业务系统 dsn 统一切换到目标库之后,再把主从断开就行了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1020449

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX