mysqldump备份数据与恢复
1.备份数据
2.恢复备份数据
3.恢复bin-log中的数据
1. mysqldump数据备份
#mysqldump命令
#-l 读锁,让所有的人无法进行写的操作,保证备份后的数据和新的bin-log日志能够无缝结合
#-F 备份完成后执行 flush logs操作 创建一个新的 bin-log日志
#命令如下:
/usr/local/mysql/bin/mysqldump -uroot -pdh977094 test -l -F >'/tmp/test.sql'
#将会把test数据库的数据保存到/tmp/test.sql
2.1 cp全部的数据
如果服务器停止了更新操作,可以直接打包文件备份数据
tar -cvf data.tar /usr/local/mysql/data/
2.2 mysql导入sql文件恢复数据
#sql命令导入数据到master数据库
mysql -uroot -pdh977094 master -v -f </tmp/master.sql
#-v 查看导入的详细信息
#-f 当中间遇到错误时可以skip过去,继续执行下面的语句
3. mysql bin-log恢复数据
其原理是将bin-log里面记录的操作提取出来再执行一次
1.整个binlog日志恢复
/usr/local/mysql/bin/mysqlbinlog --no-defaults /usr/local/mysql/data/mysql-bin.000004 | mysql -uroot -pdh977094 master
#此时是将mysql-bin.000004里面记录的对数据库的操作再取出来在数据库中执行一次
2.恢复指定的binlog日志中的操作
#1).按指定位置恢复,2).按指定时间恢复
#在mysqlbinlog命令后加参数
#--start-position="100" --stop-position="100"
#--start-date="2016-01-04 21:15:50" --start-date="2016-02-04 21:15:50"
#命令如下
#1.先恢复9:30备份好的数据
/usr/local/mysql/bin/mysqldump -uroot -pdh977094 test -l -F >'/tmp/test.sql'
#2.再根据9:30以后bin-log日志中的记录进行恢复
/usr/local/mysql/bin/mysqlbinlog --no-defaults /usr/local/mysql/data/mysql-bin.000004 --start-position="100" --stop-position="100" | mysql -uroot -pdh977094 master