闪回技术概述
Oracle数据库闪回技术是一组独特而丰富的数据恢复解决方案,通过有选择地,有效的消除错误影响,可逆转人为错误。- 查看数据地过去状态
- 可沿时间轴向前或向后闪回
- 协助用户进行错误分析和恢复
- 简单的命令行操作(或者DBMS_FLASHBACK包)
- 闪回时间与数据库大小无关
闪回支持不同级别地操作,包括行、事务、表和整个数据库:
- Flashback Database
- Flashback Table
- Flashback Drop
- Flashback Transaction
- Flashback Transaction Query
- Flashback Query
- Flashback Version Query
基于UNDO数据的闪回技术
- 闪回查询:查询一张表再过去时间的数据状态- 闪回表:把一张表闪回到过去的时间点
- 闪回版本查询:一段时间多个事务操作对应表中数据状态
- 闪回事务查询:查询事务对应的UNDO Sql;闪回数据归档
### 闪回查询技术
查询一张表在过去某指定时间的数据状态
- 基于UNDO数据,确认是否可以查询对象或将对象改回到过去的某个时间点。
- 设置undo_management = auto
- 设置undo \_tablespace参数
- 设置undo_retntion(秒为单位)
- 执行闪回查询
1.闪回到某精确时间点: select * from sh.test_tab1 as of timestamp to_timestamp('2020-12-21 08:45:00','yyyy-mm-dd hh24:mi:ss') 2.闪回到多久时间之前(例如:1分钟前) select * from tab as of timestamp sysdate - 1/24/60; 3.闪回到指定SCN select * from tabl2 as of scn 5572156;
闪回版本查询技术
- 闪回查询:查询某一时间点的数据- 闪回版本查询:
- 使用VERSIONS子句查询某一段时间对应行的所有版本
- 返回结果是行的改变历史,且只返回已提交的行(包括删除和重新插入的行版本)
- 提供了一种审计表行的方式,并可获取改变行的事务信息。
- 可以使用返回的事务标识符,通过LogMiner执行日志挖掘,或者进行闪回事务查询
SELECT versions_startscn,versions_starttime, versions_endscn,versions_endtime, versions_xid,versions_operation, last_name,salary FROM employees VERSIONS BETWEEN TIMESTAMP to_timestamp('2020-12-21 08:45:00','yyyy-mm-dd hh24:mi:ss') AND to_timestamp('2020-12-21 08:50:00','yyyy-mm-dd hh24:mi:ss') WHERE first_name = 'John';
利用数据版本标记列追溯数据历史变化过程:
VERSIONS_STARTSCN:数据版本被创建时的SCN VERSIONS_STARTTIME:数据版本被创建时的时间戳 VERSIONS_ENDSCN:数据版本消逝时的SCN VERSIONS_ENDTIME:数据版本消逝时的时间戳 VERSIONS_XID:数据版本被创建时的事务号 VERSIONS_OPERATION:数据版本创建时的事务类型另外,可以关联FLASNBACK_TRANSACTION_QUERY,了解更多的闪回查询相关信息,例如UNDO_SQL可以给出数据修复需要执行的SQL。
闪回表技术
闪回表技术可以将表恢复到过去的指定时间点。- 限制:只能将表闪回到undo所允许的过去时间点
- 需要开启行迁移(row movement)
开启行移动: alter table table_name enable row movement; 将表闪回到指定地点: flashback table table_name to timestamp ('2020-12-21 08:45:00','yyyy-mm-dd hh24:mi:ss'); 将表闪回到n分钟(小时)之前: flashback table table_name to timestamp sysdate - n/24/60; 将表闪回到指定的SCN: flashback table table_name to scn xxxxxx;
FDA闪回数据归档技术
闪回数据归档:- UNDO的保留期限限制
- 实现闪回查询和闪回表在时间上的延续
闪回数据归档步骤:
* 创建一个供闪回数据库使用的表空间
* 在该表空间创建闪回数据归档,时间期限自定义
* 创建一个用户并授予DBA的角色
* 授予用户操作的必要权限
* 登录创建一个表启用闪回数据归档
* 执行查询来确定归档创建的对象
CREATE FLASHBACK ARCHIVE DEFAULT fla1 TABLESPACE tbs1 QUOTA 10G RETENTION 1 YEAR; CREATE FLASHBACK ARCHIVE fla2 TABLESPACE tbs2 RETENTION 2 YEAR;
基于Recyclebin的闪回删除技术
闪回删除技术:- 针对非system表空间
- 适用于通过drop操作和非purge的方式删除的对象
- 可以在recyclebing使用闪回删除操作还原删除的对象(包括相关索引,约束,触发器)
回收站(recycle bin)
- 通过数据字典视图快速查看:USER_RECYCLEBIN和DBA_RECYCLEBIN。
- 删除的表在回收站中被重新命名
基于闪回数据库日志的闪回数据库技术
- 闪回数据库:把数据库闪回到过去的时间点,针对逻辑故障,或者对相同数据做循环迭代测试闪回使用场景
标签:闪回,VERSIONS,技术,查询,版本,Oracle,table,数据 From: https://www.cnblogs.com/guapixiong/p/17930767.html