标签:var int pos vpd values 备份文件 时间 emctl 通过
增量备份与恢复的特点create databse school
use school
create table info (name varchar(10),score decimal(5,2));
insert into info (name,score) values (‘zhangsan‘,80);
insert into info (name,score) values (‘lisi‘,80);
//数据库建立以及表数据添加完成
#vim /etc/my.cnf
log-bin=mysql-bin //添加二进制日志文件
#systemctl restart mysqld.service
#msyqldump -u root -p school > /opt/school.sql //备份数据库文件
#mysql -u root -p
>use school;
>insert into info (name,score) values (test01,88);
>quit
//完成数据插入
#mysqladmin -u root -p flush-logs //刷新生成mysql增量备份文件
#cd /usr/local/mysql/data/
#ls //二进制日志已经生成
查看二进制日志文件:(确定增加test01操作是在mysql-bin.000002日志中)
#mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002 //使用64位解码方式
#mysql -u root -p
>use school;
>insert into info (name,score) values (test02,90);
>quit
//完成数据插入
#mysqladmin -u root -p flush-logs //刷新生成mysql增量备份日志文件
#cd /usr/local/mysql/data/
#ls //二进制日志已经生成
#mysql -u root -p
>use school
>delete from info where name=‘test01‘; //执行误操作
>select * from info;
>delete from info where name=‘test02‘; //执行误操作
>select * from info;
#mysql -u root -p school < /opt/school.sql
#msyqlbinlog --no-defaults /usr/local/mysql/data/msyql-bin.0000002 | msyql -u root -p
#msyql -u root -p
>use school
>select * from info; //发现test01已经恢复
#mysqlbinlog --no-defaults /usr/local/mysql/data/msyql-bin.0000003 | msyql -u root -p
#mysql -u root -p
>use school
>select * from info; //发现test02已经恢复
create databse school
use school
create table info (name varchar(10),score decimal(5,2));
insert into info (name,score) values (‘tom‘,80);
insert into info (name,score) values (‘jerry‘,90);
//数据库建立以及表数据添加完成
#vim /etc/my.cnf
log-bin=mysql-bin //添加二进制日志文件
#systemctl restart mysqld.service
#mysqldump -u root -p school > /opt/school.sql //备份数据库文件,只含tom和jerry的默认用户
#mysqladmin -u root -p flush-logs //刷新生成mysql增量备份日志文件
#cd /usr/local/mysql/data/
#ls //二进制日志已经生成
mysql> insert into info (name,score) values (‘test01‘,88);
Query OK, 1 row affected (0.00 sec)
mysql> delete from info where name=‘tom‘; //故障操作为误删除默认用户tom
Query OK, 1 row affected (0.00 sec)
mysql> insert into info (name,score) values (‘test02‘,70);
Query OK, 1 row affected (0.00 sec)
#mysqladmin -u root -p flush-logs //此时在误操作的基础上已经完成了增量备份
由于完成数据库备份文件只有默认tom和jerry用户,并没有test01和test02,若还原增量备份文件,则会删除tom用户,下面将利用二进制日志增量备份文件断点还原test01与test02且不删除tom用户;
drop table info; //删除原有损坏的数据库
#mysql -u root -p school < /opt/school.sql //还原备份数据库
查找需要还原的断点位置:
由于在断点增量备份文件还原时,还原顺序从文件开头执行,到--stop-datetime错误操作时间点结束;
由于在断点增量备份文件还原时,还原顺序从文件开头执行,到--stop-datetime错误操作时间点结束;当跳过错误时间点,从下一次正确操作时间点--start-datetime开始执行到备份文件结尾。
#mysqlbinlog --no-defaults --stop-datetime=‘2018-07-03 19:05:42‘ /usr/local/mysql/data/msyql-bin.0000001 | mysql -u root -p //注意修改日期格式xxx-xx-xx
#mysqlbinlog --no-defaults --start-datetime=‘2018-07-03 19:06:03‘ /usr/local/mysql/data/msyql-bin.0000001 | mysql -u root -p //注意修改日期格式xxx-xx-xx
#mysqlbinlog --no-defaults --stop-position=‘563‘ /usr/local/mysql/data/msyql-bin.0000001 | mysql -u root -p
#mysqlbinlog --no-defaults --stop-position=‘660‘ /usr/local/mysql/data/msyql-bin.0000001 | mysql -u root -p
如上,关于节点恢复实验已经完成。
标签:var int pos vpd values 备份文件 时间 emctl 通过
原文地址:http://blog.51cto.com/13659253/2135799