MySQL之灾难恢复

查看bin-log日志状态
show master status;   //在mysql中执行
查看bin-log文件
mysqlbinlog --shop-pos256 文件名 | less;
参数说明:
--shop-pos256(表示只查看某个节点之前的)
less (表示分页)
刷新日志(新建一个文件重新记录,封存老的文件)
flush logs;
清空日志(删除所有日志文件)

reset master;


开启bin-log


1.查看bin-log命令是否开启
先登录MySQL,查看bin-log命令是否开启
show variables like ‘%bin%’;  //搜索bin相关的命令
如果bin-log命令未开启,则退出mysql,编辑配置文件
exit;  //退出mysql
2.编辑mysql配置文件
vim /etc/my.cnf
  MySQL之灾难恢复_第1张图片
设置日志文件的文件名(前缀)
查看bin-log日志状态
show master status; //查看状态
  MySQL之灾难恢复_第2张图片
bin-log文件,安放在MySQL安装目录下


实验


验证目标:

完整备份 + bin-log日志 实现 数据实时还原


实验步骤:
1.创建一个表添加几个用户
2.做一个完整备份(模拟每天凌晨3点的完整数据备份,清空所有bin-log)
3.做增删改操作
4.误删除所有数据
5.尝试还原
1.封存bin-log日志
2.还有完整备份
3.从bin-log日志里面取出有效部分(不包含错误操作)还有到数据库

4.数据还原好后,做一个完整备份,清空所有bin-log日志(防止下次操作过时命令)


具体实验操作:
在完成1-4条操作后,我们来尝试数据还原
1.封存bin-log日志
flush logs; 
2.先将完整备份的文件还原,然后准备binlog日志中的数据还原
3.先打开查看日志文件
mysqlbinlog /var/lib/mysql/binlog.000001 | less
4.然后找出错误操作在哪个节点之后
例:错误的sql语句在 “at 605”后面
5.查看日志文件中,节点605之前的数据记录,判断是否是错误操作之前的操作
mysqlbinlog –stop-pos950 /var/lib/mysql/binlog.000001 | less
6.如果数据记录没错,则进行还原操作
还原方法有两种:
1.将数据存入sql文件,再将sql文件中的数据,还原到数据库
mysqlbinlog –stop-pos950 /var/lib/mysql/binlog.000001 > ~/new.sql
//保存数据到家目录下
2.利用管道符,将取到的数据,作为sql操作直接还原到数据库
mysqlbinlog –stop-pos950 /var/lib/mysql/binlog.000001 | mysql –u root –p
//前面取到的数据结果,会作为后面命令的参数执行,相当于节点605前的数据,又在mysql中执行了一遍
7.再做一次完整备份,并清空所有bin-log
reset master;  //清空bin-log
 

你可能感兴趣的:(MySQL)