---- 前言 MyFlash 是美团点评开源的一个 MySQL 闪回工具,可以用来回滚 MySQL 中的 DML 操作,恢复到某时刻的数据。...本文将简单地介绍 MySQL 闪回工具 MyFlash 的使用。...--start-position 指定回滚开始的位置。如不指定,从文件的开始处回滚。请指定正确的有效的位置,否则无法回滚。 --stop-position 指定回滚结束的位置。...如不指定,回滚到文件结尾。请指定正确的有效的位置,否则无法回滚。 --start-datetime 指定回滚的开始时间。注意格式必须是 %Y-%m-%d %H:%M:%S。如不指定,则不限定时间。...验证数据,数据已经恢复到 update 操作之前,完成回滚操作。
因此Flashback Database 可以看作是不完全恢复的替代技术。 但它也有某些限制: 1....如果删除了数据文件或者利用Shrink技术缩小数据文件大小,这时不能用Flashback Database技术回退到改变之前的状态,这时候就必须先利用RMAN把删除之前或者缩小之前的文件备份restore...但是在记录闪回日志时,只会将改变前的值保存在flashback buffer中,再由RVWR写入闪回日志中。 闪回时,从闪回日志的尾部向头部方向,依次取出闪回日志中的记录并应用在数据库上。...,NAME闪回日志的位置,FIRST_CHANGE#闪回日志中记录的最早的SCN,FIRST_TIME闪回日志中记录的最早时间 启用数据库闪回模式 如果想启动FLASHBACK DATABASE的功能...闪回删除 Flashback Drop 是从Oracle 10g 开始出现的, 用于恢复用户误删除的对象(包括表,索引等), 这个技术依赖于Tablespace Recycle Bin(表空间回收站),
参考资料:Using Oracle Flashback Technology Oracle 11g的新特性闪回操作 闪回查询 闪回查询 闪回版本查询 闪回事务查询 闪回数据 闪回表 闪回删除 闪回数据...SQL> show recyclebin SQL> 解释1:由于当前是sys用户,会显示: ORA-08185: 用户 SYS 不支持闪回 闪回技术只适用于普通用户而不适用于sys用户。...alter table t enable row movement; 闪回删除 参考资料:Oracle闪回功能详解 由于闪回技术不支持sys用户,所以使用普通用户测试。...闪回删除实验效果 由于sys用户和system用户不支持闪回技术,所以我们需要切换到普通用户进行实验,实验效果如下: SQL> create table t(id int); 表已创建。...闪回数据库 参考资料:Oracle DB闪回(Flashback database)开启笔记 数据库的闪回 是Oracle不同于查询闪回和归档闪回的另外一种闪回机制 Oracle 10g引入 需要配置闪回区域
二、GaussDB T 的 Flashback Table 功能非常强劲可以闪回TRUNCATE Gaussdb提供了类似Oracle的闪回表功能;可以很好的应对drop table或者truncate...闪回被drop table SQL> flashback table roger.test to before drop; Succeed....那么truncate 的表能闪回吗 ? SQL> create table roger.test_copy as select * from roger.test ; Succeed....SQL> 可以看到成功闪回了被truncate table。 那么如果表被truncate之后,被写入数据之后,还能闪回吗? 下面测试一下。...可以看到非常强大;仍然可以进行闪回。。。。 这样妈妈再也不用担心数据被truncate了。。。。 那么如果表被ddl change了,还能闪回吗? 我们进一步验证一下呢?
MYSQL官方截止目前还没有出来数据闪回特性,也许后续版本会出现。...社区有一些开源工具可以使用,沿用的基本都是彭立勋最早提出的思路,利用binlog对SQL进行反向解析,从而实现数据闪回,例如不带where条件的update操作,导致全表数据被误更新。...闪回前提: binlog_format = ROW 操作模拟: 没加where条件,导致全表更新;或者没加host列,导致多余行被更新。...闪回方式: 一、利用mysql自带的mysqlbinlog命令解析binlog,再通过grep、sed等命令把binlog中相关SQL误操作给逆向回来,然后导入SQL文件来恢复错误操作。
闪回恢复其实是利用回收站的闪回恢复删除的表。利用MVCC机制闪回恢复到指定时间点或者CSN点(commit sequence number)。...闪回技术能够有选择性的高效撤销一个已提交事务的影响,从人为错误中恢复。在采用闪回技术之前,只能通过备份恢复、PITR等手段找回已提交的数据库修改,恢复时长需要数分钟甚至数小时。...采用闪回技术后,恢复已提交的数据库修改前的数据,只需要秒级,而且恢复时间和数据库大小无关。 闪回恢复适用于: • 误删除表的场景; • 需要将表中的数据恢复到指定时间点或者CSN。...的闪回功能。...执行闪回查询命令,查看闪回结果 基于timestamp的闪回查询 select * from t1 timecapsule timestamp to_timestamp('2021-10-12 10:03
环境:RHEL 6.4 + Oracle 11.2.0.4 目录: 一、闪回查询 1.1 闪回查询举例 1.2 闪回版本查询举例 二、闪回事物 2.1 闪回事物查询的先决条件 2.2 闪回事物查询...三、闪回表 四、Flashback Data Archive 五、闪回数据库 5.1 配置闪回数据库 5.2 使用闪回数据库 5.3 监视闪回数据库 Reference 一、闪回查询 -- 初始化参数...5.1 配置闪回数据库 5.1.1 开启闪回数据库: --必须配置闪回恢复区 show parameter db_recovery --必须归档模式 shutdown immediate; startup...exclusive; alter database flashback off; alter database open; 5.2 使用闪回数据库 RMAN和SQL>提示符下都可以执行闪回。...例如RMAN可以基于线程和特定日志号进行闪回。
首先尝试Flashback Query闪回数据。...dbms_flashback.get_system_change_number fscn from dual; FSCN ---------------------- 1551702 使用应用用户尝试闪回...根据业务提供的大致误操作时间,结合V$ARCHIVED_LOG视图,选择适当SCN向前执行闪回查询: SQL> select count(*) from emp1 as of scn 1551171...由业务人员通过emp1_recov表确认,向当前表补回误删除的数据,至此闪回恢复成功。没有闪回特性的话,需要通过物理备份执行不完全恢复,或者找出足够及时的逻辑备份来进行恢复,其过程都可能是极其复杂的。
============= 闪回技术通常用于快速简单恢复数据库中出现的认为误操作等逻辑错误,从闪回的方式可以分为基于数据库级别闪回、表级别闪回、事务 级别闪回,根据闪回对数据的影响程度又可以分为闪回恢复...闪回日志不能复用,也不能归档。闪回日志使用循环写方式。...五、总结 闪回策略是针对Oracle撤销功能的增强,为快速恢复数据库提供了更多的便利。...数据库的闪回恢复的速度要快于RMAN以及基于用户管理的备份与恢复,其主要原因是因为数据库闪回使用的是闪回日志,而闪回日志中保存的是数据块的完整镜像。...其次闪回能够恢复的程度取决于闪回空间的大小以及闪回的保留策略,闪回空间大小会被循环使用,而闪回的保留策略则决定了闪回日志保留的时间长度。总之,合理的平衡恢复速度与可用空间依赖于具体服务要求。
2018年11月16日,中国数据技术嘉年华技术大会上,腾讯TDSQL团队带来腾讯最新的数据库核心技术课题:基于全时态数据库技术的数据闪回。腾讯专家工程师李海翔在大会上做了该课题的分享。...四 、TDSQL全时态数据库的闪回 今天,我们分享基于全时态数据库基础构建的技术之一:闪回。这是非常酷的特性,用户在TDSQL系统中可以实现“一切过往兼可追溯”的梦想。...闪回是DBA们特别欢迎的一个重要特性,TDSQL提供了任意时间点的任意数据的闪回能力,其他数据库诸如Oracle只具备阶段性数据的闪回能力。...接下来,我们来看看TDSQL全时态数据库系统的闪回的特点。可以用一个字概括“全”,称为“全闪回”。...全的含义是多种层次的,一是在所有数据项的生命周期内可以进行任意时间点的闪回;二是TDSQL作为一个分布式系统,因为其创新的全局读一致性技术,做到了在分布式系统下的全局闪回;三是闪回可以在HTAC系统中的
♣ 答案部分 Oracle闪回技术从根本上改变了数据恢复策略,利用闪回技术,可以使更正错误的时间大大缩短,而且它简单易用,使用一条短命令便可恢复整个数据库,而不必执行复杂的程序。...闪回技术是Oracle数据库独有的特性,支持各级恢复,包括行、事务、表、表空间和数据库范围。...Oracle中闪回技术分类图如下所示: ?...Oracle闪回技术从根本上改变了数据恢复策略,利用闪回技术,可以使更正错误的时间大大缩短,而且它简单易用,使用极少的命令便可恢复所需要的数据,而不必执行复杂的程序。...闪回技术是Oracle数据库独有的特性,支持各级恢复,包括行、事务、表和数据库范围。
本文主要讲述了FLASHBACK DROP特性以及闪回特性中回收站(RECYCLEBIN)的管理。...1) from "BIN$k1zC3yEiwZvgQAB/AQBRVw==$0"; --可以使用回收站名来访问对象,但要对对象加双引号 COUNT(1) ---------- 13 2.实施闪回并查看闪回后的情况...通过对上述表的删除及空间分配情况,总结如下: 1.表的删除被映射为将表的重命名,然后将其置于回收站 2.表的索引,触发器,授权闪回后将不受到影响.索引,触发器名字可以根据需要进行更改回原来名称...6.对于已经删除的表如果在所在的表空间新增对象由于空间不足的压力而被重用将导致闪回失败 7.对于表空间不足时,系统会自动清除回收站中最老的对象,以满足当前需求,即采用FIFO原则 8.闪回表的常用方法...,schema不变化 9.如回收站中存在两个相同的原表名,则闪回时总是闪回最近的版本,如果闪回特定的表,需要指定 该表在回收站中的名称。
使用限制只能回滚DML, 不能回滚DDL使用回滚/闪回功能时,binlog格式必须为row,且binlog_row_image=full, DML统计以及大事务分析不受影响MySQL8.0版本需要在配置文件中加入.../回滚误操作$ lltotal 124M-rw-r--r-- 1 root root 107 Sep 14 10:09 biglong_trx.txt-rw-r--r-- 1 root root...`t1` SET `b`='b' WHERE `id`=2;数据闪回并不是万能的,备份恢复是最后底线。
从9i开始,Oracle提供了闪回(FLASHBACK)功能。...使用FLASHBACK TABLE语句从撤消段中(undo segment)读取该表的过去映像,并利用Oracle9i中引入的回闪查询重建表行。UNDO_RETENTION给出了闪回支持的最小时间。...(当然,如果回滚表空间的空间分配不足,当系统处于忙时,有可能重用还没有达到UNDO_RETENTION时间限制的数据的空间)。使用闪回的一个前提是表不能进行DDL操作。...不但不能对DDL操作进行回闪,而且,也无法闪回到DDL操作以前的数据了。...一.delete误删 方法1:如果表结构没有改变,直接闪回整个表,具体步骤: --首先需要表闪回权限,开启行移动功能 alter table 表名 enable row movement; --执行闪回恢复表数据到某个时间点
背景 2.测试环境准备 3.基于类似windows系统回收站的恢复 4.基于MVCC多版本的数据恢复 5.总结&反思 1....背景 openGauss闪回功能能够有选择性的高效撤销一个已提交事务的影响,从人为错误中恢复。在采用闪回技术之前,只能通过备份恢复、PITR等手段找回已提交的数据库修改,恢复时长需要数分钟甚至数小时。...采用闪回技术后,恢复已提交的数据库修改前的数据,只需要秒级,而且恢复时间和数据库大小无关。适用于: 1)误删除表的场景; 2)需要将表中的数据恢复到指定时间点或者CSN。...闪回truncate基于回收站机制,通过还原回收站中记录的表的物理文件,实现已truncate表的恢复。...后来查看管理员指南,在特性描述倒是说了“ASTORE引擎暂不支持闪回功能。备机不支持闪回操作。”在开发者指南 CREATE TABLE部分找到这么一句话。
GitHub地址:https://github.com/liuhr/my2sql my2sql有三个主要功能,今天只介绍闪回功能: #执行闪回操作具体操作流程 #解析binlog生成标准SQL #解析binlog...sbtest1 where id<400000; Query OK, 399999 rows affected (7.41 sec) 解析一下binlog,因为是测试,并没有其他热写入数据,我按时间区间去闪回....000017 -start-pos 100 -stop-file mysql-binlog.000017 -stop-pos 1000 -output-dir /tmp 限制 使用回滚/闪回功能时...,binlog格式必须为row,且binlog_row_image=full, DML统计以及大事务分析不受影响 只能回滚DML, 不能回滚DDL 支持指定-tl时区来解释binlog中...SQL 根据时间点解析出回滚SQL #伪装成从库解析binlog .
闪回版本查询同闪回查询,闪回表一样,同样是使用了UNDO段的数据,即数据变更的多次镜像 ,当UNDO段的数据由于空间压力而被清除,则产生无法闪回的情况。...) 闪回事务查询是对闪回版本查询的扩展。...三、总结 1.Flashback Version 多用于查看某条特定记录所有已提交的版本,包括每个版本的创建时间以及结束时间。...3.闪回中不能对DDL语句进行闪回,即闪回仅仅支持DML语句。...四、更多参考 有关闪回特性请参考 Oracle 闪回特性(FLASHBACK DATABASE) Oracle 闪回特性(FLASHBACK DROP & RECYCLEBIN) Oracle 闪回特性
Oracle 数据库闪回通常设置在 DataGuard 备库,如果主库误删数据,可用备库闪回至删除点之前,获取丢失数据,然后再自动同步回来!...注意: 主库不建议开启闪回,首先影响性能,其次主库不可能为了某些数据去做闪回,所以很鸡肋! 那么,DataGuard 备库如何开启数据库闪回?...需要有充足的磁盘空间 1、第一步,关闭 DataGuard 备库同步进程 ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; 2、第二步,开启闪回功能.../oradata/fast_recovery_area 需要物理真是存在,设置的闪回区大小即闪回日志占用磁盘空间的上限!...一段时间,确认 100G 空间能够保留多久的闪回日志,大致推算出需要保存固定时间闪回日志的空间,根据实际情况进行修改! ----
简介: 上篇推文 笔者介绍了如何用开源工具来闪回binlog,但有时候我们的机器无法安装这些开源工具。这时候我们可以使用shell脚本来闪回binlog,是不是觉得方便多了。...条件: 1.mysql binlog必须存在且是row格式的 2.反向生成的表必须有主键 3.表结构不能有更改 1.shell脚本闪回: # 脚本 del_time_recovery.sh(根据起止 time...恢复)用于回滚delete操作: #!...:00" -e "2017-11-02 19:20:00" -d test_db -t test_tb 即可调用 # 脚本 update_time_recovery.sh(根据起止 time恢复)用于回滚...如果想基于position进行闪回 可以自行修改下脚本 也是可以实现的。当然与开源工具相比 功能并不是那么齐全 不过临时用下也是极好的。
本文描述了Oracle闪回区的特性及其配置闪回区,监控闪回区等。...1、闪回区特性及其配置 闪回区 就是分配一个特定的目录位置(普通磁盘上的目录或ASM磁盘)来存放一些特定的恢复文件,用于集中和简化管理数据库恢复工作。 ...闪回区单词缩写为FRA,下面的描述FRA即指的是闪回区,也可能存在混用闪回区或FRA的情形。...,单位为分钟,默认1440分钟,也就是一天 数据库闪回分为多种情形,其闪回日志存放在FRA,可闪回的时间同时还取决于闪回恢复区的大小 将DB_RECOVERY_FILE_DEST参数设置为空... 当为多个数据库配置相同的闪回区位置时,应考虑闪回区所在磁盘挂载点的总大小以及使用不同的DB_NAME 多个数据库或实例使用相同的闪回区时,其路径为:FRA_HOME//<
领取专属 10元无门槛券
手把手带您无忧上云