mysql 数据的备份与恢复
mysql的备份
mysqldump:做数据备份
-A:全库备份
[root@oldboy ~]# mysqldump -uroot -p666666 -A > /tmp/full.sql
-B:指定库备份
[root@oldboy ~]# mysqldump -uroot -p666666 -B zls > /tmp/zls.sql
不加参数(-A或-B),备份单表(备份出来的没有建库语句,必须进库恢)
–master-data=2:备份的时候打位置点
1:不加注释的打点备份 可以直接变成从库
0:关闭(等于没加参数)
–single-transaction:快照备份,(热备,需要配合–master-data=2这个参数)
-R:备份函数,和存储过程
–triggers:备份触发器
查看备份 cat /tmp/full.sql
恢复备份 mysql -uroot -p666666 < /tmp/full.sql
未备份的数据如何恢复(前提必须备份打点)
#打位置点后
查看mysqlbinlog:
mysqlbinlog mysql-bin.000003|less
进入后输入位置点信息 即可查找起始位置点,同时找到你要的sql语句后的结束位置点,记下起始位置点和结束为支点。
把缺失的sql文件写出:
mysqlbinlog --start-position=674746 --stop-position=675066 mysql-bin.000003 > /tmp/add.sql
mysql -uroot -p666666 </tmp/add.sql
冷备、热备、温备的概念
冷备:停服务备份
热备:不停止服务备份,也不阻塞写入数据
温备:不停止服务备份,但是阻塞写入数据
常用的数据库备份并打包命令:
mysqldump -uroot -p1 -A -R --triggers --master-data=2 --single-transaction |gzip > /tmp/$(date +%F)_full.sql.gz