Oracle表数据删除后回滚数据及开启闪回

一、查询某个时间的数据库表快照

快照默认是保留7天,采集间隔是1小时,这个信息可以从DBA_HIST_WR_CONTROL视图中获得。

以PERSON表为例:

查询2024-5-9 16:00:00PERSON表的数据。

SELECT * FROM PERSON
 AS OF TIMESTAMP TO_TIMESTAMP('2024-5-9 16:00:00', 'YYYY-MM-DD HH24:MI:SS');

二、执行回滚语句

回滚PERSON表数据至一天前

FLASHBACK TABLE PERSON TO TIMESTAMP (SYSDATE – INTERVAL '1' DAY);

三、开启数据库快照

查询数据库是否开启闪回

SELECT flashback_on FROM v$database;

开启数据库闪回

ALTER DATABASE FLASHBACK ON;(请参考步骤四步骤执行)

注意:flashback database要求数据库必须处于归档模式,且闪回之后必须使用resetlogs打开数据库

查看数据库的存档模式及闪回是否启用

select log_mode,open_mode,flashback_on from v$database;

四、开始数据库存档模式

1.在命令行使用sqlplus sys/sys as sysdba;登录到sys用户,使用SQL: archive log list 查看当前数据库的存档模式

2.依照下列步骤开启存档模式

使用SQL: alter system set log_archive_start=true scope=spfile; --修改系统的日志方式为存档模式

shutdown immediate; --关闭数据库,因为不能在open状态下进行操作

startup mount; --启动mount实例,但不是启动数据库

alter database archivelog; --更改数据库为存档模式

ALTER DATABASE FLASHBACK ON;--打开数据库闪回(磁盘空间不足会失败)

最后使用SQL: alter database open; --打开数据库

3.关闭存档模式步骤

shutdown immediate; 

startup mount; 

alter database noarchivelog; --更改数据库为非存档模式

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值