MySQL 利用 Binlog 日志恢复指定时间节点的数据

MySQL 利用 Binlog 日志恢复指定时间节点的数据

需求

 

恢复  edurp_service_user 数据库在 2020 年 1 月 11 号 22:33:16 之前的数据。

 

恢复过程

 

  1. 先将 MySQL 数据目录(默认为 /var/lib/mysql)迁移至配置相同的测试 MySQL 环境,覆盖原本的数据目录即可。

 

  1. 基于时间点导出 SQL 语句。

 

mysqlbinlog --no-defaults --database=edurp_service_user --skip-gtids --stop-datetime='2020-01-11 22:33:16' /var/lib/mysql/mysql-bin.000006 > /opt/2020-01-11.sql

 

  1. 在 MySQL 客户端命令行进入 edurp_service_user 数据库,执行 source /opt/2020-01-11.sql 恢复数据即可。

 

知识点

 

基于时间点

 

# 起始时间
mysqlbinlog --start-datetime='2016-01-04 15:11:00'
# 结束时间
mysqlbinlog --stop-datetime='2016-01-04 15:11:00'

 

基于定位符

 

# 起始定位符
mysqlbinlog --start-position=249 binlog.000006
# 结束定位符
mysqlbinlog --stop-position=249 binlog.000006

 

指定表

 

使用 grep 命令抽取二进制日志:

 

grep -B3 -w tb_name db_name.sql > tb_name.sql

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值