mysql数据库迁移

分享一个处理mysql数据量大的话迁移的方法mysql

一天晚上,生产环境下,一个用户分析数据库挂掉了,缘由是服务器磁盘只读了,可是又不敢重启只好迁移了。sql

找到datadir目录下du -sh * 看了一下吓死了。240G大!数据库

通常咱们都会作一个主从数据库,就是为了备份数据方便宕机的时候快速切换过来,但是这台机器很早就有,如今没有从库备份,这就麻烦了。服务器

如今脑子里两种方案:测试

  1. 数据库直接导出,拷贝文件到新服务器,在新服务器上导入。
  2. 数据文件和库表结构文件直接拷贝到新服务器,挂载到一样配置的MySQL服务下。spa

第一种方案时间太长240G啊什么概念,那要导到何时,虽说第二种方案也是很是耗时的,可是想不第一种还较为快点。犹豫了一会采用第二种方案。blog

操做步骤

服务器只读了,并不表明不能够传文件。因此找了一台磁盘容量大点的能够存放的下这240G大量数据的服务器。内存

  1. 两台服务器保证Mysql版本一致,安装配置一致
  2. 中止两边的Mysql服务
  3. 删除B服务器Mysql的datadir(my.cnf里面设置的datadir参数)目录下全部文件
  4. 用rsync服务开始传datadir下面的文件(A服务器--迁移-->B服务器)
  5. 启动B服务器的Mysql服务,测试

迁过去后有个报错:innodb

这时候才想起来用rsync传的时候目录使用的nobody权限,启动是要MySQL用户权限的。查了查资料也是说要修改目录权限。修改完以后,启动没有问题了。配置

 若是遇到启动不起来而后报错是与ibdata1有关的,建议把my.cnf里面的innodb_buffer_pool_size         = 2G参数改下,这个是要根据服务器内存考虑的。或者把他删了重建也行。

相关文章
相关标签/搜索