mysql备份的常见方法
1、mysqldump命令
2、数据库文件拷贝命令
3、主从数据库备份
第一和第二种方法都会中断运行MySQL一段时间,尤其是在数据量比较大的时候,中断的时间会比较长,这样同时也会造成网站的中断。
第三种方法虽然不会中断数据库,但主从经常会出现数据不一致的情况,而且要同时维护一台slave数据库,成本比较高。
本文介绍一种利用LVM的快照功能做mysql数据库备份的方法。
优点:完全不影响MySQL的运行,网站无需中断。
首先,需要将MySQL的数据库目录放到LVM中。
可以通过更改my.cnf的datadir参数来实现,也可以不改参数,用 ln -s 创建符号链接的方法将某一个数据库指向LVM中。
开始用LVM快照做备份:
1、首先,给/dev/vg01/mysql-data创建一个快照卷,通常不需要为快照卷分配和父卷一样的空间大小,一般分配父卷的10%即可。
2、用dd命令拷贝快照到备份文件
3、将备份文件上传到备份服务器上
建议将备份好的文件上传到远程的服务器上,以防止服务器发生意外故障而造成本地备份文件丢失。
4、快照卷现在已经不需要了,删除掉
创建好了备份。备份周期可以一天一次,写好备份脚本,每天凌晨3-5点左右进行自动备份(该时间段一般访问量最小)。
当MySQL出现问题或其它情况需要恢复备份时,可以将备份好的文件恢复到LVM中去。
1、首先,创建一个新LV卷
2、如果本地没有保存备份文件,则从备份服务器上下载最新的备份文件
3、利用/dev/loop设备挂载备份文件
4、用dd命令拷贝备份文件到新建的LV卷里
5、关闭mysql,必要的时候同时也要关闭webserver
6、重新mount
7、检查MySQL是否正常,如果一切正常,删除原来的硬盘文件,卸载loop设备
至此,备份完成。