本文转载自:http://blog.chinaunix.net/uid-28212952-id-3826777.html
对于数据迁移需求,如果在备份中心有备份集,直接从备份恢复过去是一种比较常规的方式,一般都会有脚本或系统来支持,从速度上说中规中矩,备份文件都是压缩过(pigz、pbzip2、gzip),不过发现解压过程始终无法耗尽恢复机器IO,怀疑解压使用单线程(这块尚未证实),如果没有备份集,需要恢复且时间上不宽裕,采用老路子就不行了,只好直接拷贝了,说来这种直接拷贝在日常生活中遇到问题的第一反应,但在工作上往往用不上,久而久之就遗忘了
对于需要迁移的数据一般是数据库数据文件,数据迁移从源机器上读取,[压缩] 网络传输 [解压],写到目标机器,速度优化提升目标就是在将目标机器IO压满,根据是否可以将网卡跑满来决定是否启用压缩,这就需要各方面的数据支持(这块目前欠缺),最近经常使用nc+qpress,速度不错
【1】文件迁移
目标机器:nohup nc -d -k -l 50863 | nohup /home/mysql/qpress -T32dif /data/ &
源机器:nohup /home/mysql/qpress -T32K20480orf /data |nohup nc IP 50863 &
【2】数据库迁移
目标机器:nohup nc -d -k -l 50863 | nohup /home/mysql/qpress -T32diof |nohup tar -ixf - -C /u01/bak/backup_20130726 &
源机器:nohup innobackupex --user=root --defaults-file=/data/my.cnf --slave-info --stream=tar --tmpdir=/data /data 2>/home/mysql/back.lo
g |nohup /home/mysql/qpress -T32K20480iof - |nohup nc IP 50863 &
nc+qpress+tar+innobackupex ,这4个工具都比较容易上手,但合起来使用还是需要多调试下,上面迁移方式在某种场景上需要调整下管道流的输入数据才能正常使用(这块暂时没有深入研究),还无法做成比较通用的工具
注:近期参加MySQL运维学习,老师推荐该文章作为学习和技术提高的扩展阅读,先记录到自己的博客中,随后慢慢消化、学习、提高。本文章与“备份恢复”主题相关