ITPub博客

首页 > 应用开发 > IT综合 > 使用flashback实验1

使用flashback实验1

原创 IT综合 作者:jlttt 时间:2008-07-28 15:30:44 0 删除 编辑

简单使用基于SCN的flashback,10.2.0.1 for windows

实验如下:

SQL> select * from tt;

NAME STATUS
-------------------------------------------------- -------
E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF SYSTEM
E:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DB ONLINE
E:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF ONLINE
E:ORACLEPRODUCT10.2.0ORADATATESTUSERS01.DBF ONLINE


SQL> select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER
------------------------
1168329

SQL> delete from tt where rownum<2;

已删除 1 行。

SQL> commit;

提交完成。

SQL> select * from tt;

NAME STATUS
-------------------------------------------------- -------
E:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DB ONLINE
E:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF ONLINE
E:ORACLEPRODUCT10.2.0ORADATATESTUSERS01.DBF ONLINE

SQL> select * from tt as of scn 1168329;

NAME STATUS
-------------------------------------------------- -------
E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF SYSTEM
E:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DB ONLINE
E:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF ONLINE
E:ORACLEPRODUCT10.2.0ORADATATESTUSERS01.DBF ONLINE

SQL> create table tt_reco as select * from tt where 1=0;

表已创建。

SQL> insert into tt_reco select * from tt as of scn 1168329;

已创建4行。

SQL> commit;

提交完成。

SQL> select * from tt_reco;

NAME STATUS
-------------------------------------------------- -------
E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF SYSTEM
E:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DB ONLINE
E:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF ONLINE
E:ORACLEPRODUCT10.2.0ORADATATESTUSERS01.DBF ONLINE

SQL> select count(*) from tt;

COUNT(*)
----------
3

SQL> truncate table tt;

表被截断。

SQL> insert into tt select * from tt_reco ;

已创建4行。

SQL> commit;

提交完成。

SQL> select * from tt;

NAME STATUS
-------------------------------------------------- -------
E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF SYSTEM
E:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DB ONLINE
E:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF ONLINE
E:ORACLEPRODUCT10.2.0ORADATATESTUSERS01.DBF ONLINE

[@more@]

基于时间的flashback实验


SQL> select * from tt;

NAME STATUS
-------------------------------------------------- -------
E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF SYSTEM
E:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DB ONLINE
E:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF ONLINE
E:ORACLEPRODUCT10.2.0ORADATATESTUSERS01.DBF ONLINE

SQL> select systimestamp from dual;

SYSTIMESTAMP
---------------------------------------------------------------------------
28-7月 -08 02.54.56.921000 下午 +08:00

SQL> delete from tt where rownum<2;

已删除 1 行。

SQL> commit;

提交完成。
SQL> select * from tt;

NAME STATUS
-------------------------------------------------- -------
E:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DB ONLINE
E:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF ONLINE
E:ORACLEPRODUCT10.2.0ORADATATESTUSERS01.DBF ONLINE

SQL> select * from tt as of timestamp(systimestamp -interval'480' second);

NAME STATUS
-------------------------------------------------- -------
E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF SYSTEM
E:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DB ONLINE
E:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF ONLINE
E:ORACLEPRODUCT10.2.0ORADATATESTUSERS01.DBF ONLINE

SQL> create table tt_reco as select * from tt where 1=0;

表已创建。

SQL> select * from tt as of timestamp(systimestamp -interval'480' second);
select * from tt as of timestamp(systimestamp -interval'680' second)
*
第 1 行出现错误:
ORA-01466: 无法读取数据 - 表定义已更改

SQL> select * from tt as of timestamp(systimestamp -interval'780' second);

NAME STATUS
-------------------------------------------------- -------
E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF SYSTEM
E:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DB ONLINE
E:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF ONLINE
E:ORACLEPRODUCT10.2.0ORADATATESTUSERS01.DBF ONLINE

SQL> insert into tt_reco select * from tt as of timestamp(systimestamp -interval'780' second);

已创建4行。

SQL> commit;

提交完成。

SQL> select * from tt_reco;

NAME STATUS
-------------------------------------------------- -------
E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF SYSTEM
E:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DB ONLINE
E:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF ONLINE
E:ORACLEPRODUCT10.2.0ORADATATESTUSERS01.DBF ONLINE

SQL> drop table tt;

表已删除。

SQL> create table tt as select * from tt_reco where 1=0;

表已创建。

SQL> insert into tt select * from tt_reco;

已创建4行。

SQL> commit;

提交完成。

SQL> select * from tt;

NAME STATUS
-------------------------------------------------- -------
E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF SYSTEM
E:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DB ONLINE
E:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF ONLINE
E:ORACLEPRODUCT10.2.0ORADATATESTUSERS01.DBF ONLINE

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9533994/viewspace-1007970/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 我的口头禅
下一篇: 奥运与我无关
请登录后发表评论 登录
全部评论

注册时间:2008-06-28

  • 博文量
    75
  • 访问量
    686126