近些天,应公司要求需要加快mysql数据库备份还原的速度。目前备份用的是mysql自带的mysqldump命令,结果输出到一个sql文件中。还原使用mysql命令还原的,由于是单线程还原,所以速度比较慢。近些天的研究历程。
首先研究了mydumper,(原备份的sql文件10GB左右)备份20多分钟,还原10个小时,没有体现出多线程应有的效果。
接着研究了xtrabackup,由于TA只能装在linux上,而且需要和mysql在同一台服务器上,所以对于mysql在windows服务器上的情况,就不适用了。
然后想通过手动挂载ibd文件的方式来达到备份还原,对于小文件可以挂载成功,对于1G的大文件,就会出现挂载失败,搜集了各种解决方法,最终没有达到效果。
再次,使用了mysqlpump,发现备份时,报错提示 no database selected,这种方式也崩殂。
最后使用mysqldump --tab,导出数据表模式和txt raw data文件。通过mysqlimport命令导入进去。配合上mysql的一些参数设置。能够达到4分钟400万数据的效果。