ORCL删除数据恢复方法(表数据)

1 篇文章 0 订阅
1 篇文章 0 订阅

方法1:(恢复表数据)
1)查询BG_TXLGL表中记录

select * from BG_TXLGL;

2)删除BG_TXLGL表中记录

delete from BG_TXLGL;

3)获得过去的会话

exec dbms_flashback.disable; 

4)查询出3分钟前这个BG_TXLGL表的情况

select * from BG_TXLGLas of timestamp(systimestamp - interval '3' minute );

5)将查出的记录插入到误删除数据的表中

insert into BG_TXLGL select * from BG_TXLGL as of timestamp(systimestamp - interval '10' minute );

方法2:(恢复表数据)
注意:使用闪回操作必须开启行移功能
启用行移功能(若未启动行移功能)

alter table BG_TXLGL enable row movement;

关闭行移功能

alter table BG_TXLGL disable row movement

1)闪回到20分钟之前

flashback table BG_TXLGL to timestamp(systimestamp-interval '20' minute);

2)闪回到具体时间

flashback table BG_TXLGL to timestamp to_timestamp('2019-08-24 10:20:00','yyyy-mm-dd hh24:mi:ss');

方法3:(恢复表数据)通过系统SNC进行回闪操作
1)获取当前系统的SCN值

select dbms_flashback.get_system_change_number from dual;

2)将SCN转换为时间戳查看

select scn_to_timestamp(2097461) from dual;

3)(通过时间戳查看SCN)

select timestamp_to_scn(to_timestamp
('2019-08-24 10:20:15','yyyy-mm-dd hh24:mi:ss')) scn from dual;

4)(进行数据回闪操作)

flashback table BG_TXLGL to scn 2097461;

将BG_TXLGL.Z和BG_TXLGL.C两张表同时闪回到SCN为1086000的时候(主要用于有外键约束的表)

flashback table BG_TXLGL.Z, BG_TXLGL.C to scn 1086000;

更加详细参考:
https://www.cnblogs.com/xieweikai/p/6838228.html
此人总结更加全面(推荐)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值