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

或者

执行语句:mysqldump -u admin --single-transaction --set-gtid-purged=OFF --master-data=2  --databases 数据库名> /home/oper/数据库名.sql -p

PS:在gtid模式下,mysqldump默认会记录GTID_PURGED信息,还会输出以下信息;假如mysqldump时设置了--set-gtid-purged=OFF,则在备份文件中不会打印以上信息;

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

使用--no-create-info
这个选项会跳过创建表(包括结构)和删除表的语句。

使用--skip-add-drop-table
这个选项仅跳过添加DROP TABLE语句,而仍然包括创建表的语句。如果你只需要跳过删除表的语句,可以使用

如果没有设置密码的话就不加-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

mysqlbinlog --start-position=188583309 --stop-position=188584451 --skip-gtids=true /home/mysql/mysqldata/binlog/mysql-bin.000007 > /home/oper/dm_0819_2.sql

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

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

成功后如下图所示:

步骤6:日志导出

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

然后导出日志

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

mysqlbinlog --start-position=188583309 --stop-position=188584451 --skip-gtids=true /home/mysql/mysqldata/binlog/mysql-bin.000007 >/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
测试之后,数据库恢复到增加表和增加数据的状态,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值