这几天有个需求,就是把机器 A 的 MySQL 的数据转储到机器 B 的 MySQL 中,看了这个数据库只有一个表,但是这个表有 132215932
条记录,转储时出了些问题。
刚开始是 Oracle 的数据,经过 dump 放入 Oracle 然后转入 MySQL, 文件大小占 15.5
G。
虽然数据量并不是很大,但是这却让原本的常规操作出问题。
1、使用 Navicat
使用转储功能
直接用 Navicat 之类的工具转储,数据量不大的时候妥妥的,但这次不一样,开始认为不论哪个版本基本运行 sql 文件应该不会出问题,后来在 B、C 机器还原时候报错很多,所以还原算是失败了。
使用传输功能
这个在 Oracle 转 MySQL 时用到过,如果两台机器在同一个局域网,那这个方法妥妥的。
2、文件直接转储
这算是一种很快的转储方式,但要求很苛刻,这个方法对于两个机器的 MySQL 版本要求得很一致才行,在 MySQL5.x 的版本中,data 文件夹各个数据库存的基本上有 opt、frm、ibd 文件,而 MySQL8 只有 ibd 文件,先不说 5 和 8 的区别,在 5.x 各版本之间也是有差异的,至少在文件直接转储时候出错了,报 不存在xxx表
之类的错误,甚至连 MySQL 服务都无法重启。
3、mysqldump 转储
直接使用 MySQL 自带的工具 mysqldump 来转储,经过实践,这个方法可行,耗时 1.7 小时。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以邮件至feicyblog@hotmail.com