Flashback Table(10g)

    技术2026-01-11  5

    Flashback Table

    Flashback Table也是使用UNDO tablespace来实现对数据的回退。输入:flashback table table_name to scn(to timestamp) 即可。

    注意:必须允许表的row movement.(Alter table table_name row movement;)

    要查看某表是否启用row movement,可以到user_tables 中查询(或all_tables,dba_tables),例如:SQL> select row_movement from user_tables where table_name='C';ROW_MOVE--------ENABLED

    要启用或禁止某表row movement,可以通过下列语句:

    --启用JSSWEB> ALTER TABLE table_name ENABLE ROW MOVEMENT;表已更改。--禁止JSSWEB> ALTER TABLE table_name DISABLE ROW MOVEMENT;表已更改。

     

    举例:SQL> create table C (id number(2));表已创建。SQL> insert into C values(1);已创建 1 行。SQL> insert into C values(2);已创建 1 行。SQL> commit;提交完成。SQL> select * from c;        ID----------         1         2SQL> alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss";会话已更改。

    SQL> select sysdate from dual;SYSDATE-------------------2009-10-15 21:17:47SQL> select current_scn from v$database;CURRENT_SCN-----------      1103864删除数据并恢复

    SQL> delete from C;已删除2行。SQL> commit;提交完成。SQL> alter table c enable row movement;表已更改。SQL> flashback table c to scn  1103864;闪回完成。或者:SQL> flashback table c to timestamp to_timestamp('2009-10-15 21:17:47','yyyy-mm-dd hh24:mi:ss');SQL> select * from c;        ID----------         1         2Flashback table 命令支持同时操作多个表,表名中间以逗号分隔即可,如果你执行一条flashback table命令时同时指定了多个表,要记住单个flashback table 是在同一个事务中,因此这些表的恢复操作要么都成功,要么都失败。如:flashback table a,b ,c to scn 1103864;

    最新回复(0)