朋友让我去迁移下他们的DB 数据量原库大概1.27T
然后这个人给我挖了个坑 使用了mysqlpump 导出了所有的数据。。。。(这里不得不吐槽下 超过100G的数据建议用xtrabackup 去做) =======》 800G的sql文件
这里还得吐槽 不建议用win系列跑DB
这里导入到1.6G 的时候抛错 mysql server has gone away
开始查 my.cnf 发现
(这个抛错 特别是在imp 大数据量的时候 引发这个问题的基本上是max_allowed_pack 这个参数影响 并不是连接超时)
innodb_buffer_pool_size是默认的8M。。。。
max_allowed_pack 4M。。。
调整参数 继续开干
讲道理 exp出来的东西应该是没问题的 出现了这个问题 谷歌了一把 说是字符集的问题(也可以-f 强制忽视抛错)
我去原库查了一下 是utf-8..导入的库是latin。。。(又是一个坑)
这个就简单了 直接set utf8 字符集
这里是朋友给挖的坑,总结一下 以后可以优化的地方
mysql的配置参数很重要,还有字符集设置
还有就是 超过100G 的数据 真的不要用exp类的方法 逻辑备份恢复起来真的太慢了 一出问题就得从头开始(用xtabackup)
在做这个事情的时候 第一次抛错就想用source去解决
source 导入的 记得把
sql_log_bin 这个参数关闭 (binlog开启的时候 如果没开那也没啥事)