1. 如何开启数据库闪回?

SQL> shutdown immediate;

ORA-01109: database not open

Database dismounted.

ORACLE instance shut down.

SQL> startup mount;

ORACLE instance started.

Total System Global Area 1653518336 bytes

Fixed Size                  2253784 bytes

Variable Size            1207962664 bytes

Database Buffers          436207616 bytes

Redo Buffers                7094272 bytes

Database mounted.

SQL> alter database flashback on;--------------------------在mout情况下开启闪回.

Database altered.

SQL> select flashback_on from v$database;------------------到v$database视图中查询闪回是否开启

FLASHBACK_ON

------------------

YES

SQL>

  1. 数据库的闪回
    1. 基于SCN的闪回

SCN是数据库的顺序号,每个号都是数据库的一个状态,当知道具体的SCN号的时候就可以精确地闪回,可以通过日志来查看具体的SCN

SQL>flashback database to scn 5540916;

  1. 基于时间的闪回

如果知道大概的时间,也可以通过时间闪回

Flashback database to '2:05 PM';

  • 需要性能开销、闪回日志磁盘空间的开销
  • 默认数据库的闪回技术是关闭的,建议开启.
  1. 表的闪回
    1. 删除表的闪回

SQL> conn test/test

Connected.

SQL> select * from w;

X

----------

1

SQL> drop table w;--------------------------------------------删除表,没有加purge参数,这时候表会放到回收站

Table dropped.

SQL> select * from w;

select * from w

*

ERROR at line 1:

ORA-00942: table or view does not exist

SQL> show recyclebin;-----------------------------------------------------查看回收站

ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE DROP TIME

---------------- ------------------------------ ------------ -------------------

W                BIN$UgO0wwwhHBTgU3ABqMDCXQ==$0 TABLE        2017-06-16:01:07:40

SQL> flashback table w to before drop;--------------------------------使用flashback技术还原w表

Flashback complete.

SQL> select * from w;

X

----------

1

SQL> drop table w purge;--------------------------如果使用了purge表示表已经在回收站同时删除了,就不能恢复了

Table dropped.

SQL> show recyclebin;

  1. DML操作的闪回

做了一个操作,并且提交了怎么办?

SQL> select rowid,id,name from g;

ROWID                      ID NAME

------------------ ---------- ----------

AAAVW7AAEAAAAD8AAC          1 a

AAAVW7AAEAAAAD8AAD          2 b

SQL> select sysdate 时间, timestamp_to_scn(sysdate) SCN from dual;----------------------将系统时间转换为scn号

时间                      SCN

------------------ ----------

16-JUN-17             1373003

SQL> delete from g where id=2;

1 row deleted.

SQL> commit;

Commit complete.

SQL> select rowid,id,name from g;

ROWID                      ID NAME

------------------ ---------- ----------

AAAVW7AAEAAAAD8AAC          1 a

SQL> alter table g enable row movement;-----------因为恢复了就不是以前那个位置了,所以flashback需要允许行迁移,在flashback中使用,当需要使用flashback table功能时,需要首先打开row movement的选项,否则使用该功能也会报错

Table altered.

SQL> flashback table g to scn 1373003;

Flashback complete.

SQL> select rowid,id,name from g;--------------------注意rowid已经不一样了

ROWID                      ID NAME

------------------ ---------- ----------

AAAVW7AAEAAAAD8AAA          1 a

AAAVW7AAEAAAAD8AAB          2 b

  1. 事务的闪回
  2. 版本的闪回
  3. 查询的闪回
    1. 基于时间的查询闪回

Select * from g as of timestamp sysdate-5/1440-----------当前时间-5,这里表示5分钟之前

  1. 基于SCN的查询闪回

Select * from g as of scn 344197

Oracle 的闪回技术 --flashback的更多相关文章

  1. SQL Fundamentals: 表的创建和管理(表的基本操作,闪回技术flashback,表结构修改)

    SQL Fundamentals || Oracle SQL语言 1.表的基本操作 (CREATE TABLE, DROP TABLE,TRUNCATE TABLE, RENAME tablename ...

  2. Oracle闪回技术(Flashback)

    闪回技术有闪回表.闪回删除.闪回查询.闪回事务查询.闪回事务.闪回数据库.闪回数据归档.其中,闪回查询.闪回事务查询用来“观察”过去:闪回数据归档并不是一个独立的功能,其功能是扩展闪回查询的时间窗口: ...

  3. Oracle 六闪回技术,flashback

    Flashback 技术基于Undo segment基于内容的, 因此,限制UNDO_RETENTON参数. 要使用flashback 特征,您必须启用自己主动撤销管理表空间. 在Oracle 11g ...

  4. 【Oracle】闪回技术

    1.闪回技术描述 2.数据库的准备: --undo表空间要设置成AUTO,设置合适的保存时间.undo表空间: SYS@ENMOEDU> show parameter undo NAME TYP ...

  5. Oracle的闪回技术--闪回错误的DML操作

    提交DML操作后,该操作使用的还原段就可以被其它对象使用了,为了保证闪回操作时这些数据仍然被保存在还原段中,可能需要重新设置undo_retention参数,表示一个事务提交后,该事务的数据必须保存在 ...

  6. Oracle的闪回技术--闪回已删除的表

    注意闪回技术只能保护非系统表决空间中的表,而且表空间必须本地管理, 外键将不可以被恢复, 索引和约束的名字将会被命名为以BIN开头,由系统生成的名字 查看是否开启闪回: SQL> show pa ...

  7. Oracle Flashback Technology【闪回技术】

    -------------------------与其他数据库相比,Oracle的闪回让开发者多了一条选择的路. Flashback的目的 先看下Oracle官方文档中的解释: Oracle Flas ...

  8. Oracle闪回技术详解

     概述: 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成).需要注意的是,闪回技术旨在快速 ...

  9. Oracle 闪回特性(FLASHBACK DATABASE)

    --===================================== -- Oracle 闪回特性(FLASHBACK DATABASE) --======================= ...

随机推荐

  1. 单精度浮点数(float)加法计算出错

    场景: 一个float型的变量赋值1170601,加上19000000,结果出现错误. 原因: float占用4个字节(32位)存储空间,包括符号位1位,阶码位8位,尾数23位.浮点数精度与它的尾数有 ...

  2. Nodejs入门手记 (01):Hello World的WEB程序

    声明:本文为原创文章,如需转载,请注明来源并保留原文链接Allong,谢谢! “滚滚长江东逝水,浪花淘尽英雄.是非成败转头空.” - <临江仙·杨慎·明> 很熟悉的旋律,鸡汤了一下:高考是 ...

  3. h264 i p 帧特点

     1.爱无铭(47530789) 2014-2-13 17:07:27 I帧只有intra p帧有inter和intra:B帧一般只用inter  2.  庐舍闲士(361389535) 2014-2 ...

  4. 【Java面试题】53 能不能自己写个类,也叫java.lang.String?

    可以,但是即使你写了这个类,也没有用. 这个问题涉及到加载器的委托机制,在类加载器的结构图(在下面)中,BootStrap是顶层父类,ExtClassLoader是BootStrap类的子类,ExtC ...

  5. linux上nginx上配置虚拟主机的相关配置

    1.配置主配置: nginx/conf/nginx.conf 2.虚拟主机配置:nginx/conf/extra/learn.weixin.com.conf 配置完后,重启服务器!

  6. ORACLE expdp/impdp导出实例

    服务器上以sys或system超级管理员登录. SQL>create directory expdp_dir as '/home/oracle/dmpdata';(dmpdata 需要建立.赋予 ...

  7. Win8快捷键收集大汇总

    键盘党的用户有福了,熟悉操作系统快捷键,提高开发效率. Windows 8 常用快捷键: Windows 键 可在开始屏幕主菜单及最后一个应用程序间循环切换 Windows 键 + C 打开“超级按钮 ...

  8. VC++ :实现简单的文件拖放(Drag and Drop)功能

    1) VC++ 6.0 新建一个基于对话框的MFC的工程,取名MfcDropFiles: 2) 去除默认的控件,包括确定/取消按钮,以及一个静态文本: 3) 在对话框空白区域拖放一个ListBox控件 ...

  9. brew 的 调度工具DBGPRINTF 和 c语言的 printf

    在官方的文档中是这样备注DBGPRINTF Prototype void dbgprintf(const char *pszFormat,...); Description This function ...

  10. 破解X-Pack和更新许可证

    某一天打开 Kibana 对应的 Monitoring 选项卡的时候,发现提示需要下载新的 license,旧的 license 已经过期了: 退出重新登录 发现禁止登录,提示:Login is di ...