ORACLE闪回

闪回数据库:

开记闪回功能
startup mount
alter database flashback on/off
查看闪回目录
show parameter db_recovery_file_dest;
查看闪回功能是否开启
select flashback_on from v$database;
修改默认闪回保留时间
alter system set db_flashback_retention_target=1440

限制
不能在下列情况下使用闪回数据库:
• 已还原或重新创建了控制文件。
• 表空间已删除。
• 数据文件已发生收缩。

闪回表
FLASHBACK TABLE hr.employees TO TIMESTAMP TO_TIMESTAMP('2005-05-05 05:32:00', 'YYYY-MM-DD HH24:MI:SS');
FLASHBACK TABLE 命令可作为单个事务处理执行,
以获取DML 互斥锁。
• 不闪回统计信息。
• 保留当前索引和相关对象。

闪回表操作:
– 不能对系统表执行
– 不能跨多个DDL 操作
– 会生成还原和重做数据

闪回删除
FLASHBACK TABLE employees TO BEFORE DROP;
• 闪回删除不适用于:
– 驻留在SYSTEM 表空间中的表
– 使用细粒度级审计或虚拟专用数据库的表
– 驻留在字典管理表空间中的表
– 已清除的表,无论是手动清除的,还是在空间压力下
自动清除的
• 以下相关对象不受保护:
– 位图联接索引
– 实体化视图日志
– 引用完整性约束条件
– 在删除表前删除的索引

闪回查询
SELECT employee_id, salary FROM employees AS OF TIMESTAMP t1 WHERE employee_id = 200
注:AS OF 子句后面可跟着TIMESTAMP 或SCN。
SELECT versions_xid, salary FROM employees VERSIONS BETWEEN TIMESTAMP t1 and t2 WHERE employee_id = 200;

select CHECKPOINT_CHANGE# from v$database;

闪回事务处理查
select * from FLASHBACK_TRANSACTION_QUERY

你可能感兴趣的:(ORACLE闪回)