MySQL增量备份

步骤1:修改配置文件

修改my.cnf,添加log_bin=mysql-bin,然后重启服务: Service mysqld restart

步骤2:进行完全备份

执行语句:mysqldump -u root --single-transaction --master-data=2 --databases 数据库名> /mysqlBackup/数据库名_`date +%F`.sql -p

--single-transaction: 基于此选项能实现热备InnoDB表;因此,不需要同时使用--lock-all-tables;
--master-data=2  记录备份那一时刻的二进制日志的位置,并且注释掉,1是不注释的
--databases 数据库名   指定备份的数据库名

如果没有设置密码的话就不加-p,有密码的话加-p,然后输入密码。

生成下图文件代表备份成功

步骤3:更新数据
可以使用Navicat创建一个表,然后写几条数据,或者直接在命令行操作创建一个表,

命令:mysql -u 用户名 -p  ,use 数据库名

create table 表名(字段名 类型); 创建表

insert into 表名values 数值;(实在不会写,请自行百度MySQL插入语句)

步骤4:查看记录位置

执行命令:cat gfsatellite_2020-07-30.sql |less,查看二进制日志记录位置,下图标红数字记住,下面增量备份的起始位置如下:

结束位置如下:

执行命令:

mysql -u 用户名 -p  

show master status;

 

步骤5:进行增量备份

执行命令:mysqlbinlog --start-position=120 --stop-position=980 /usr/local/mysql/data/mysql-bin.000002 > /backup/gfsatellite_`date +%F_%H`.sql

如果执行命令报以下错误,把my.cnf里面的default-character-set=utf8暂时注释,不用重启服务,备份结束后记得去掉注释就行。

 

注意:/usr/local/mysql/data为my.cnf里面的datadir的配置,起始位置和终止位置如上述步骤所示;

成功后如下图所示:

步骤6:日志导出

首先在刚才的表中再插入几条数据,然后导出这次操作的日志,然后show master(上面有命令)看下最后操作位置,

mysqlbinlog --start-position=980 /usr/local/mysql/data/mysql-bin.00002

然后导出日志

 mysqlbinlog --start-position=980 --stop-position=1003 /usr/local/mysql/data/mysql-bin.000002 > /backup/gfsatellite.sql

列表如下则操作成功:

步骤7:操作验证

 drop database 数据库名;

此时已经没有这个数据库,下面我们依次按照 完全---增量----日志进行数据库恢复

mysql < gfsatellite_2020-07-30.sql -p

mysql < gfsatellite_2020-07-30_11.sql -p

mysql < gfsatellite.sql -p
测试之后,数据库恢复到增加表和增加数据的状态,

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值