Oracle 的闪回技术 --flashback
- 如何开启数据库闪回?
|
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> |
- 数据库的闪回
- 基于SCN的闪回
SCN是数据库的顺序号,每个号都是数据库的一个状态,当知道具体的SCN号的时候就可以精确地闪回,可以通过日志来查看具体的SCN
SQL>flashback database to scn 5540916;
- 基于时间的闪回
如果知道大概的时间,也可以通过时间闪回
Flashback database to '2:05 PM';
- 需要性能开销、闪回日志磁盘空间的开销
- 默认数据库的闪回技术是关闭的,建议开启.
- 表的闪回
- 删除表的闪回
|
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; |
- 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 |
- 事务的闪回
- 版本的闪回
- 查询的闪回
- 基于时间的查询闪回
Select * from g as of timestamp sysdate-5/1440-----------当前时间-5,这里表示5分钟之前
- 基于SCN的查询闪回
Select * from g as of scn 344197
Oracle 的闪回技术 --flashback的更多相关文章
- SQL Fundamentals: 表的创建和管理(表的基本操作,闪回技术flashback,表结构修改)
SQL Fundamentals || Oracle SQL语言 1.表的基本操作 (CREATE TABLE, DROP TABLE,TRUNCATE TABLE, RENAME tablename ...
- Oracle闪回技术(Flashback)
闪回技术有闪回表.闪回删除.闪回查询.闪回事务查询.闪回事务.闪回数据库.闪回数据归档.其中,闪回查询.闪回事务查询用来“观察”过去:闪回数据归档并不是一个独立的功能,其功能是扩展闪回查询的时间窗口: ...
- Oracle 六闪回技术,flashback
Flashback 技术基于Undo segment基于内容的, 因此,限制UNDO_RETENTON参数. 要使用flashback 特征,您必须启用自己主动撤销管理表空间. 在Oracle 11g ...
- 【Oracle】闪回技术
1.闪回技术描述 2.数据库的准备: --undo表空间要设置成AUTO,设置合适的保存时间.undo表空间: SYS@ENMOEDU> show parameter undo NAME TYP ...
- Oracle的闪回技术--闪回错误的DML操作
提交DML操作后,该操作使用的还原段就可以被其它对象使用了,为了保证闪回操作时这些数据仍然被保存在还原段中,可能需要重新设置undo_retention参数,表示一个事务提交后,该事务的数据必须保存在 ...
- Oracle的闪回技术--闪回已删除的表
注意闪回技术只能保护非系统表决空间中的表,而且表空间必须本地管理, 外键将不可以被恢复, 索引和约束的名字将会被命名为以BIN开头,由系统生成的名字 查看是否开启闪回: SQL> show pa ...
- Oracle Flashback Technology【闪回技术】
-------------------------与其他数据库相比,Oracle的闪回让开发者多了一条选择的路. Flashback的目的 先看下Oracle官方文档中的解释: Oracle Flas ...
- Oracle闪回技术详解
概述: 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成).需要注意的是,闪回技术旨在快速 ...
- Oracle 闪回特性(FLASHBACK DATABASE)
--===================================== -- Oracle 闪回特性(FLASHBACK DATABASE) --======================= ...
随机推荐
- 【问题】报错[CRITICAL] Rendering SLS 'base:minions.install' failed: Jinja variable 'list' object has no element 0
1.报错[CRITICAL] Rendering SLS 'base:minions.install' failed: Jinja variable 'list' object has no elem ...
- 【Java面试题】34 List 、Map、Set 区别?
一.Set是最简单的一种集合.集合中的对象不按特定的方式排序,并且没有重复对象. Set接口主要实现了两个实现类: HashSet: HashSet类按照哈希算法来存取集合中的对象,存取速度比较快 T ...
- c :函数指针具体解释
在研究opencv源码的过程中.处处可见到函数指针,于是翻出来谭浩强的<C程序设计>把函数指针这一块内容再补一补! 1 定义 数据类型 (*指针变量名)(參数表); 注: 数据类型是指的函 ...
- UIView的背景渐变
//绘制背景渐变 /* CGCradientCreateWithColorComponents函数需要四个参数: 色彩空间:(Color Space)这是一个色彩范围的容器,类型必须是CGColorS ...
- (转)Linux开启mysql远程连接的设置步骤
Mysql默认root用户只能本地访问,不能远程连接管理mysql数据库,Linux如何开启mysql远程连接?设置步骤如下: 1.GRANT命令创建远程连接mysql授权用户itlogger mys ...
- [转]ASP.NET MVC 5 - 给数据模型添加校验器
在本节中将会给Movie模型添加验证逻辑.并且确保这些验证规则在用户创建或编辑电影时被执行. 拒绝重复 DRY ASP.NET MVC 的核心设计信条之一是DRY: "不要重复自己(DRY ...
- Linux tty 命令
终端:终端(Terminal)也称终端设备,是计算机网络中处于网络最外围的设备(如键盘 .打印机 .显示器等),主要用于用户信息的输入以及处理结果的输出 TTY:TTY 是 Teletype(电传打字 ...
- m2014-architecture-imgserver->Lighttpd +mod_mem_cache的效果简直太好了
公司的图片服务器一直以来负载都比较高,原因是图片比较分散而且比较小.经常把iowait搞的特别的高.但是只有一台机器也法用squid,经测试squid和apache在同一台机器效果会很糟糕的.因为sq ...
- memcache和memcached的区别
用了段时间的memcache和memcached总结下认识,看很多人在用cache的时候,刚刚都没有搞清楚memcache和 memcached的区别,还有就是使用的时候基本都是 get/set 用 ...
- iPad UIPopoverController弹出窗口的位置和坐标
本文转载至:http://blog.csdn.net/chang6520/article/details/7921181 TodoViewController *contentViewControll ...