分享一个处理mysql数据量大的话迁移的方法mysql
一天晚上,生产环境下,一个用户分析数据库挂掉了,缘由是服务器磁盘只读了,可是又不敢重启只好迁移了。sql
找到datadir目录下du -sh * 看了一下吓死了。240G大!数据库
通常咱们都会作一个主从数据库,就是为了备份数据方便宕机的时候快速切换过来,但是这台机器很早就有,如今没有从库备份,这就麻烦了。服务器
如今脑子里两种方案:测试
数据文件和库表结构文件直接拷贝到新服务器,挂载到一样配置的MySQL服务下。spa
第一种方案时间太长240G啊什么概念,那要导到何时,虽说第二种方案也是很是耗时的,可是想不第一种还较为快点。犹豫了一会采用第二种方案。blog
服务器只读了,并不表明不能够传文件。因此找了一台磁盘容量大点的能够存放的下这240G大量数据的服务器。内存
迁过去后有个报错:innodb
这时候才想起来用rsync传的时候目录使用的nobody权限,启动是要MySQL用户权限的。查了查资料也是说要修改目录权限。修改完以后,启动没有问题了。配置
若是遇到启动不起来而后报错是与ibdata1有关的,建议把my.cnf里面的innodb_buffer_pool_size = 2G参数改下,这个是要根据服务器内存考虑的。或者把他删了重建也行。