mysql备份和恢复

binlog基础查看

开关select @@log_bin;
日志路径及名字select @@log_bin_basename;
服务ID号select @@server_id;
二进制日志格式select @@binlog_format;
日志内容查看show binary logs;
刷盘周期
select @@sync_binlog;   1默认事务刷屏 0提交oscache 大于1 批量刷盘
显示当前日志记录show master status ;
查看日志内容show binlog events in 'mysql-bin.000003';
读取分页信息pager less
外部查看binlog非二进制

mysqlbinlog --base64-output=decode-rows -vvv /data/binlog/mysql-bin.000003

时间范围查询mysqlbinlog --start-datetime='2019-05-06 17:00:00' --stop-datetime='2019-05-06 17:01:00' /data/binlog/mysql-bin.000004
基于位点截取
mysqlbinlog --start-position=219 --stop-position=1347 /data/binlog/mysql
bin.000003 >/tmp/bin.sql
基于gtid截取
mysqlbinlog --include-gtids='dff98809-55c3-11e9-a58b-000c2928f5dd:1-6' --
exclude-gtids='dff98809-55c3-11e9-a58b-000c2928f5dd:4' /data/binlog/mysql
bin.000004
导出时跳过gtid
mysqlbinlog --skip-gtids --include-gtids='483e9795-ad5b-11ea-86e8-
000c298e182d:1-20'
--exclude-gtids='483e9795-ad5b-11ea-86e8-000c298e182d:14','483e9795-ad5b-11ea-
86e8-000c298e182d:18' mysql-bin.000009 >/data/bin1.sql

binlog相关配置

gtid打开(方便运维)

gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
systemctl restart mysqld

binlog打开,8以后应该默认打开  row模式删除时会把每一条删除记录都写入日志。

server-id=12323
log-bin=mysql-bin
binlog-format=ROW
binlog-row-image=FULL

binlog备份还原策略

基于全库备份,增量binlog位点还原

全库备份(所有项目必须定期全量备份)

-A 全备参数
-B db1 db2 db3 备份多个单库
备份单个或多个表 -R 备份存储过程及函数
--triggers 备份触发器
-E 备份事件
-F 在备份开始时 , 刷新一个新 binlog 日志
--master-data=2
以注释的形式 , 保存备份开始时间点的 binlog 的状态信息
功能:
1 )在备份时,会自动记录,二进制日志文件名和位置号
2 )自动锁表( FTWRL
3 )如果配合 --single-transaction ,只对非 InnoDB 表进行锁表备份, InnoDB 表进行 “” 备,实际
上是实现 快照备份。
--single-transaction
innodb 存储引擎开启热备 ( 快照备份 ) 功能
例子脚本
mysqldump -uroot -p -A -R -E --triggers --master-data=2 --single-transaction --
set-gtid-purged=ON --max-allowed-packet=256M >/data/backup/full.sql
恢复例子( 在生产中恢复要谨慎,恢复会删除重复的表, 并且恢复非常耗时
①set sql_log_bin=0;
②source /backup/full.sql
set sql_log_bin=1;

部分误操作导出binlog恢复还原

基于gtid恢复

①关闭binlog: set sql_log_bin=0;

②导入备份的sql:source /tmp/binlog.sql(注意导出的时候gtid的号要去除,否则会进行事务去重)

③开启binlog:set sql_log_bin=1;

binlog日志清理

尽量进入mysql清理,rm文件方式不安全
PURGE BINARY LOGS TO 'mysql-bin.000010' ;

其他备份恢复方式

Percona Xtrabackup支持全量和增量备份,不过恢复前需要合并步骤比较繁琐。
Clone Plugin  mysql8.0.17后这个工具非常好用,2条命令就能备份恢复数据。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值