目录

一、9i中的闪回查询方法

二、10g的闪回版本查询方法

三、10g闪回事物查询方法和恢复数据

四、10g闪回表

五、10g闪回删除

六、10g闪回数据库


一、9i中的闪回查询方法

可以按照时间点或者SCN(System Change Number)向前查询,获取修改前的数据。闪回查询依赖于回滚段中存储的数据前镜像,通过设置undo_retention参数前镜像保留的时间。

select ...   as of scn |timestamp

例如现有表中有8行数据:

在回滚段保留时间还生效的情况下,知道想要恢复到的确切时间可以

delete salary_tbl where employer_nm like '雇佣者导入1';
commit ;
select * from salary_tbl  as of timestamp to_date('20200723 22:45:30','yyyymmdd hh24:mi:ss');

检查点查询:需要去估计检查点的值

select current_scn from v$database;  --查询当前检查点
delete salary_tbl where employer_nm like '雇佣者导入1';
commit ;
select * from salary_tbl  as of scn 8681060;

利用闪回查询恢复数据

create table salary_tbl_bak as select * from salary_tbl  as of timestamp to_date('20200723 22:45:30','yyyymmdd hh24:mi:ss');
truncate table salary_tbl;
insert into salary_tbl select * from salary_tbl_bak;
drop table salary_tbl_bak;

二、10g的闪回版本查询方法

10g 提供了闪回版本可以在时间段内不同版本进行查询。

select  ...  from ... versions between

其中select 可以选择伪劣,查询ID,SCN号等

select versions_startTime,versions_endtime,versions_xid,versions_operation,salary_tbl.employer_nm,salary_tbl.department,salary_tbl.salary,salary_tbl.leader_nm from  salary_tbl  versions between timestamp minvalue and maxvalue

其中 version_xid代表事物Id ,version_operation 可以看见操作类型

三、10g闪回事物查询方法和恢复数据

alter database add supplemental log data;   ----启用最小附加日志

select * from flashback_transaction_query where TABLE_NAME='SALARY_TBL' order by start_timestamp desc;

这张视图的作用如下

comment on table SYS.FLASHBACK_TRANSACTION_QUERY is 'Description of the flashback transaction query view';
comment on column SYS.FLASHBACK_TRANSACTION_QUERY.XID is 'Transaction identifier';
comment on column SYS.FLASHBACK_TRANSACTION_QUERY.START_SCN is 'Transaction start SCN';
comment on column SYS.FLASHBACK_TRANSACTION_QUERY.START_TIMESTAMP is 'Transaction start timestamp';
comment on column SYS.FLASHBACK_TRANSACTION_QUERY.COMMIT_SCN is 'Transaction commit SCN';
comment on column SYS.FLASHBACK_TRANSACTION_QUERY.COMMIT_TIMESTAMP is 'Transaction commit timestamp';
comment on column SYS.FLASHBACK_TRANSACTION_QUERY.LOGON_USER is 'Logon user for transaction';
comment on column SYS.FLASHBACK_TRANSACTION_QUERY.UNDO_CHANGE# is '1-based undo change number';
comment on column SYS.FLASHBACK_TRANSACTION_QUERY.OPERATION is 'forward operation for this undo';
comment on column SYS.FLASHBACK_TRANSACTION_QUERY.TABLE_NAME is 'table name to which this undo applies';
comment on column SYS.FLASHBACK_TRANSACTION_QUERY.TABLE_OWNER is 'owner of table to which this undo applies';
comment on column SYS.FLASHBACK_TRANSACTION_QUERY.ROW_ID is 'rowid to which this undo applies';
comment on column SYS.FLASHBACK_TRANSACTION_QUERY.UNDO_SQL is 'SQL corresponding to this undo';

特别注意:UNDO_SQL是事物回滚的SQL;只要按照COMMIT_TIMESTAMP 排一个序就能够知道提交事物的历史情况。

想要恢复否个表的数据:首先通过 TABLE_NAME 进行筛选,COMMIT_TIMESTAMP排个序,想要恢复到什么位置上一个个执行UNDO_SQL 就可以

四、10g闪回表

10g可以把表里的数据回退到某个时刻,或者SCN。前提是必须启用行迁移

alter  table  salary_tbl enable row movement;

然后可以进行表闪回。

flashback table table_name  to timestamp|SCN


flashback table salary_tbl to timestamp timestamp'2020-7-23 22:00:00'

五、10g闪回删除

oracle  也有像回收站这样的东西,用来装已经被删除的数据。 启用回收站,回收站只放普通用户的删除表,所以SYS用户,SYSTEM表空间是不会放在这里的;

alter session set recylcebin=on

>>show recyclebin

flashback table <tablename> to before drop;    --闪回删除

drop table <tablename> purge;  --------彻底删除

purge recyclebin ;---------清空回收站

-----查询原来的表名和回收站情况
select * from tab where TABTYPE='TABLE';
select * from recyclebin;
--------删除一张表------------
create table salary_tbl_bak as select * from salary_tbl;
drop table  salary_tbl_bak;
------闪回----------
flashback table salary_tbl_bak to before drop;

在Oracle 中如果重复删除相同的表,那么闪回的表就是最近删除的表 或者可以直接select <"在recyclebin中的表名">   双引号

六、10g闪回数据库

如果数据库出现物理错误,如硬盘损坏,那么闪回数据库在此处不适用。如果数据库出现逻辑错误,那么可以通过闪回数据库进行恢复回退。之前的闪回都是利用回滚段闪回,而闪回数据库是利用日志进行返回。

1.数据库需为归档模式

>>shutdown immediate;

>>startup mount

>>alter database archivelog

>> alter database open

2.配置闪回恢复区

show parameter DB_RECOVE

3.配置闪回保留时间(单位:分钟)

show parameter db_flashback_reten

4.在mount状态,启用数据库闪回 alter database flashback on ;

此时你可以在db_recovery_file_dest参数值下的目录中看见闪回需要用到的文件;

5.在mount状态下闪回数据库

flashback database  to timestamp | scn

现有一张表,此时的时间是 select systimestamp from dual; ---- 26-7月 -20 03.14.24.153000 下午 +08:00

执行drop table salary_tbl;

Oracle 原理: 闪回 flashback相关推荐

  1. oracle之三闪回flashback

    闪回 flashback 5.1 flashback 的功能:1)利用undo data回溯或撤销提交的数据,2)flashback log 使database 可以恢复到过去某个时间点,可以作为不完 ...

  2. Oracle 数据库闪回

    Oracle 数据库闪回 一.闪回技术的7个特性 二.Oracle 数据库的4种SCN 1.系统检查点 SCN 2.数据文件 SCN 3.结束 SCN 4.数据文件头 SCN 三.闪回操作 1.查询闪 ...

  3. Oracle的闪回特性之恢复truncate删除表的数据

    /* 2008/06/06 *环境:Windows XP +Oracle10.2.0.1 *循序渐进oracle--数据库管理.优化与备份恢复 *循序渐进oracle第8章:Oracle的闪回特性之恢 ...

  4. oracle中闪回和回滚,oracle闪回操作详解

    Oracle的闪回 oracle中为什么会有闪回呢!它的作用是什么呢?我们来学习一下闪回吧!闪回和回滚异曲同工之妙. 一闪回的介绍 (1)在Oracle的操作工程中,会不可避免地出现操作失误或者用户失 ...

  5. oracle数据库归档闪回,[Oracle]Oracle的闪回归档

    Oracle的闪回归档 场景需求,由于管理数据库的一些核心表,在实施初期会有人为误删除的问题.Oracle 11gR2提供了闪回归档的特性,可以保证不用RMAN来恢复误删除的数据.实践如下: 1.创建 ...

  6. oracle数据库闪回详解

    Oracle 9i 开始支持闪回,Oracle10g开始全面支持闪回功能,Oracle11g有所完善,为大家快速的恢复数据,查询历史数据提供了很大的便捷方法. 本文主要对Oracle常用闪回使用做些详 ...

  7. oracle能闪回多久,利用ORACLE的闪回功能恢复数据

    利用ORACLE的闪回功能恢复数据 一. 闪回表数据 从9i开始,Oracle提供了闪回(FLASHBACK)功能.使用FLASHBACK TABLE语句从撤消段中(undo segment)读取该表 ...

  8. 查看oracle是否开闪回,开启 oracle 的闪回功能

    查看是否开启闪回 SQL> select flashback_on from v$database; FLASHBACK_ON ------------------ NO 查看是否配置了db_r ...

  9. oracle闪回空间满的原因,处理Oracle数据库闪回区空间满的问题

    处理Oracle数据库闪回区空间满的问题 作者:赵全文  网名:guestart 今天早上一到单位,发现EMCC上有一台数据库服务器的概览页面出现黄色报警, 查询alert_orcl13.log发现如 ...

最新文章

  1. Python基本语法_函数属性 参数类型 偏函数的应用
  2. 划重点!《企业数字化升级之路》白皮书讲了哪些干货?
  3. Python slice() 函数
  4. 计算机网络(二)-性能指标
  5. win7文件和文件夹可以重名吗_Win7下如何重命名,替换System32文件夹下的系统文件...
  6. paste shell 分隔符_shell基础11:文件分类、合并和分割(sort,uniq,join,cut,paste,split)
  7. OpenShift 4 - 通过Service的nodePort访问应用
  8. 【CSP201312-4】有趣的数(数位DP)
  9. 【转】Javabyte[]数组和十六进制String之间的转换Util------包含案例和代码
  10. 安装svn + vs code配置svn
  11. 怎样将Sublime Text 设置成中文版(完整教程)
  12. 手机会员积分 html,会员积分系统主要有什么作用和功能?
  13. MATLAB的clear和clc用法
  14. 从一个远程服务器的mysql数据库表的数据复制到本地电脑mysql数据库表,两张表结构一样就是复制数据...
  15. [附源码]Python计算机毕业设计SSM基于协同过滤算法的个性化智能图书推荐系统(程序+LW)
  16. 线缆束的辐射与抗干扰
  17. 从零开始的openGL--cs游戏(15) Volume阴影。
  18. CSP202109-4 收集卡牌
  19. 信号和电源隔离的有效设计技术
  20. Linux下的Web开发工具(一)

热门文章

  1. Dynamic AX ERP 4.0 数据导出(上)
  2. 編程之美資格賽傳話遊戲
  3. How to Review a Paper
  4. JavaScript ES2021 最值得期待的 5 个新特性解析
  5. 开源调度框架xxl-job集成SpringBatch详解
  6. vue事件修饰符:通过@click.capture捕获内层事件(爷爷-父亲-儿子)
  7. Spark常规性能调优一:最优资源配置
  8. docker 每次都得source /etc/profile以及如何查看Docker容器环境变量、向容器传递环境变量
  9. k8s kubesphere启用可插拔组件(安装前、后均可)
  10. vmware NAT模式下虚拟机不能连外网解决办法