使用 mysqldump 实现 MySQL 5.7 基于时间点的恢复

创建测试数据

全备数据库

mysqldump --single-transaction --flush-logs --master-data=2 --all-databases --triggers --routines --events --set-gtid-purged=off> backup.sql

再新增测试数据

删除表中所有数据

确认最近一次备份后的二进制日志保存文件

确认删除数据的时间点

mysqlbinlog --base64-output=decode-rows -v mysql01-bin.000011 > result.sql
vim result.sql 


还原数据库

mysql < backup.sql 

检查表中的数据,说明还原成功

恢复删除的数据

mysqlbinlog --stop-datetime="2018-09-06 16:42:36" --skip-gtids mysql01-bin.000011 | mysql

检查表中的数据,说明已经恢复成功

原文地址:http://blog.51cto.com/linux10000/2171276

时间: 2024-11-10 08:27:37

使用 mysqldump 实现 MySQL 5.7 基于时间点的恢复的相关文章

基于时间点的恢复

由于误操作,删除了一张表,那么基于时间点的恢复是没有用的,因为日志里还存在着一些误操作,我们需要恢复到误操作之前的状态,然后跳过误操作,再恢复后面的语句,完成最后的恢复 1 如果10点发生误操作 mysqlbinlog --stop-date='2015-06-15 9:59:59' mysql-bin.000015 | mysql -uroot -p test 2 跳过故障时间点,进行后面的恢复 mysqlbinlog --start-date='2015-06-15 10:00:01' my

表空间基于时间点的恢复

步骤:1.检测和解决对要恢复的表空间有依赖关系的对象问题select *  from sys.ts_pitr_check where (ts1_name = 'UERS' and ts2_name != 'USERS')    or (ts1_name != 'USERS' and ts2_name = 'USERS');如果有依赖约束,可以考虑disable掉约束:或者同时还原依赖对象所在的表空间 2.检测哪些对象不会被还原如果有些表,在还原后还需要存在,可以使用数据泵等工具导出,等表空间还原

MySQL实现基于时间点的恢复

前期说明:我每天指定了数据库凌晨1点做全备,这天有人一不小心,删除了某个数据库里面的一个表,需要恢复,怎么弄? 参考 :http://blog.csdn.net/zhaoyangjian724/article/details/48715321 1  确认log_bin是否打开 mysql> show global variables like 'log_bin';  +---------------+-------+  | Variable_name | Value |  +----------

mysql order by基于时间的盲注

order by后面的注入,一般先尝试报错注入,无报错的时候可以通过rand(ture)和rand(false)来进行bool型盲注,但是今天遇到完全没有数据回显的(也就是数据库中没有数据)情况,这就比较麻烦了.记录一下sql语句 参考文章:https://www.cnblogs.com/babers/p/7397525.html https://www.cnblogs.com/Vinson404/p/7246792.html?utm_source=itdadao&utm_medium=refe

Mysql 基于innobackupex 的备份&amp;恢复

备份,对于任何数据库,任何系统都是重中之重.针对Mysql,我选择percona xtrabackup软件.我更喜欢物理层面的热备份.而不是逻辑层面的备份(mysqldump),当然很多情况,也要定期做mysqldump备份.增加一个安全的备份选择. 关于如何下载安装percona xtrabackup,请参考: http://blog.51cto.com/hsbxxl/2107388 先看看innobackupex常用参数 --compact        创建一个不包含第二索引(除了主键之外

Oracle 学习之RMAN(十四)恢复实战--基于时间点恢复

1. 我们先做一个全备 RMAN> backup database ; Starting backup at 2015/07/09 13:40:47 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=28 device type=DISK channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in b

MySQL中基于mysqldump和二进制日志log-bin二进制日志进行逻辑备份以及基于时间点的还原

本文出处:http://www.cnblogs.com/wy123/p/6956464.html 本文仅模拟使用mysqldump和log-bin二进制日志进行简单测试,仅作为个人学习笔记,可能离实际应用还有很大差距,仅参考. 开启MySQL的bin-log二进制日志 模拟还原是需要mysqldump出来的文件和log-bin,因此需要开始log-bin二进制日志. mysql5.7.18在开启二进制日志的时候除了要设置log-bin的位置之外,另外需要设置一个server-id,MySQL之前

mysql二进制日志详解及备份恢复、基于mysqldump及lvmsnapshot做备份恢复详解

二进制日志: 时间点恢复 复制 20140411 回顾: 日志文件:6类 一般查询日志:log, general_log, log_output 慢查询日志: 错误日志 二进制日志 中继日志 事务日志 二进制日志:"修改" position:位置 time: 时间 滚动: 1.大小 2.时间 二进制日志的功用: 即时点恢复: 复制: mysql> SHOW MASTER STATUS; mysql> FLUSH LOGS; mysql> SHOW BINARY LOG

Mysql的增量备份 及基于时间点与位置的恢复

增量备份的优点是没有重复数据,备份量不大,时间短.缺点也很明显,需要上次完全备份及完全备份之后所有的增量备份才能恢复,反推恢复,操作较为繁琐. Mysql没有提供增量备份的方法,但是可以通过二进制日志间接实现增量备份. 二进制日志对备份的意义如下:1)二进制日志保存了所有更新或者可能更新数据库的日志文件2)二进制日志在启动Mysql服务器后开始记录,并在文件达到max_binlog_size 所设置的大小或者接收到的flush logs命令后重新创建新的日志文件.3)只需要定时执行flush l