oracle数据库闪回最远多久,最近终于体会了一下oracle10G的闪回数据库,这个功能太实用了,大家可以参考以下我的体会结果...

闪回查询

(1).查询闪回

例如:

1)在删除员工smith记录后,希望查询到删除该行记录前的值,则可以查询emp在'2007-02-11 23:34:05'时的数据,查询方法如下:

select * from emp as of timestamp to_timestamp('2007-02-11 23:34:05','yyyy-mm-dd hh24:mi:ss') where ename='SMITH';

2)查询当前时间

alter session set nls_date_format='yyyy-mm-dd hh24:mi;ss';

select sysdate from dual;

delete from emp;

commit;

select * from emp as of timestamp to_timestamp('2007-02-11 23:34:05','yyyy-mm-dd hh24:mi:ss');

可以将闪回的数据重新插入到表中:

insert into empbak (select * from empbak as of timestamp to_timestamp('2007-02-11 23:34:05','yyyy-mm-dd hh24:mi:ss'));

(2).表闪回

表闪回要求用户必须要有flash any table权限,首先,必须对表进行下以下操作:

alter table empbak enable row movement;

执行闪回操作

flashback table emp to timestamp to_timestamp('2007-02-11 23:34:05','yyyy-mm-dd hh24:mi:ss');

注:如果表结构发生改变就没有办法闪回。

(3).删除闪回

删除闪回为删除oracle10g中的数据库实体提供了一个安全机制,当用删除一个表时,oracle10g 会将该表放到回收站中,回收站中的对象一真会保留,直到用户决定永久删除它们或出现表空间的空间不足时才会被删除。回收站是一个虚拟容器,用于存储所有被删除的对象。数据字典user_tables中的列dropped表示被删除的表.查询方法如下:

select table_name,dropped from user_tables;

也可以使用show命令显示回收站信息

sql>show recyclebin

或查询数据字典user_recyclebin获得回收站信息

SQL> select object_name,original_name,type,droptime from user_recyclebin;

例如;恢复被删除的表emp.

SQL>flashback table emp to before drop;

如果不知道原表名,可以直接使用回收站中的名称进行闪回。

SQL>flashback table "Bin$DSbdfd4rdfdfdfegdfsf==$0" to before drop;

在回收的同时可以修改表名:

SQL>flashback table "Bin$DSbdfd4rdfdfdfegdfsf==$0" to before drop rename to emp1;

真正删除某一个表,而不进入回收站,可以在删除表时增加purge选项.如将emp表彻底删除.

SQL>drop table emp purge;

也可以通过删除recyclebin区域来永久性删除表

SQL>purge table emp;

删除当前用户的回收站

SQL>purge recyclebin;

删除全体用户在回收站的数据.

SQL>purge dba_recyclebin

(4).数据库闪回

使用数据库闪回功能,可以使数据库回到过去某一状态, 语法如下:

SQL>alter database flashback on

SQL>flashback database to scn 46963;

SQL>flashback database to timestamp to_timestamp('2007-2-12 12:00:00','yyyy-mm-dd hh24:mi:ss');

[@more@]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值