闪回表+查看和修改撤销表空间的信息+闪回表操作语法+闪回表的案例

闪回表( flashback table)
1将表回滚到一个过去的时间点或系统改变号scn上,用来快速恢复表的数据。
2用户对表数据的修改操作,都记录在撤销表空间中
3需要使用到与撤销表空间相关的undo信息。通过show parameeter undo命令可以了解这些信息。

查看和修改撤销表空间的信息

 show parameter undo;
 alter system set undo_retention=1500 scope=both;
 show parameter undo;

这里写图片描述

闪回表操作语法
flashback table 【 schema.】 table_name
to {【before drop 【rename to new_table_name】 】|【scn | timestamp 】】
expr 【enable | disable 】 triggers}:

参数说明:
schema:用户模式
before drop:表示恢复到删除之前。
new_table_name :重新定义表名称。
timestamp:时间戳,包括年月日时分秒。
expr:指定一个值或表达式。
enable triggers:触发器恢复后,呈启用状态。
disable triggers:触发器恢复后,呈禁用状态。默认情况下为此选项

闪回表的案例
测试数据

create table sct(
id number(4),
name varchar2(20)
);
insert into sct values(1,'lili');
insert into sct values(2,'lilic');
commit;

步骤
1获取数据没有删除前的时间

SQL>  select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

TO_CHAR(SYSDATE,'YY
-------------------
2017-06-06 17:55:08

2删除数据,提交

SQL>
SQL> delete from sct where id=1;

已删除 1 行。

SQL> delete from sct where id=2;

已删除 1 行。

SQL> commit;

3开启表的移动功能

SQL>  --开启表的移动功能
SQL>  alter table   sct enable row movement;

表已更改。

4 恢复数据
4.1通过时间点恢复数据

flashback table   sct
to  timestamp to_timestamp('2017-06-06 17:55:08','yyyy-mm-dd hh24:mi:ss');

select * from sct;

这里写图片描述

4.2通过系统改变号恢复数据

select timestamp_to_scn(to_date(‘2017-06-06 17:55:08’,’yyyy-mm-dd hh24:mi:ss’)) from dual;
delete from sct where id=1;
delete from sct where id=2;
commit;
flashback table sct to scn 6892471;

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值