RAC闪回测试

本文介绍如何使用Oracle的闪回数据库功能恢复误操作的数据。通过创建表、记录时间点、截断表等步骤,演示了如何查询可闪回的时间范围,并实际执行闪回操作以恢复数据。

确认能够恢复的时间点:
flashback database 所能回退到最早的时间,取决于保留的flashback database log 多少,视图V$flashback_database_log提供许多信息。oldest flashback scn 是说目前数据库能回退的最早SCN,
oldest flashback time 说明数据库能够回退到的最早时间,这两列从不同角度说明一个问题,retention target 是当前系统参数设置值,flashback size 代表目前flashback log 空间,而estimated flashback size 是说为了达到retention target 定义的要求,预计需要多大的flashback log 空间,这个值可以用于指导设置 flash recovery area大小。

创建表:
 

create table test22 as select * from employees;

Table created.


记录时间:

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

TO_CHAR(SYSDATE,'YY
-------------------
2012-04-25 10:12:31


截断表:

truncate table test22;

Table truncated.


查询可以闪回的时间:

select oldest_flashback_scn, to_char(oldest_flashback_time,'yyyy-mm-dd hh24:mi:ss') flash_time, retention_target, flashback_size, estimated_flashback_size from v$flashback_database_log;

OLDEST_FLASHBACK_SCN FLASH_TIME          RETENTION_TARGET FLASHBACK_SIZE
-------------------- ------------------- ---------------- --------------
ESTIMATED_FLASHBACK_SIZE
------------------------
              668713 2012-04-24 09:31:53             1440       88276992
               178077696


执行闪回:
首先关闭两个节点的数据库,然后把第一个节点启动到MOUNT 状态进行闪回。

flashback database to timestamp to_timestamp('2012-04-25 10:12:31','yyyy-mm-dd hh24:mi:ss');

Flashback complete.


将数据库打开以RESETLOGS 方式打开。 在这里我是记录了时间所以可以这样做, 当不清楚表截断的时间时,可以估计时间进行,执行多次闪回, 验证数据时必须以READ ONLY的方式打开数据库,如发现表还是空的,可以再关闭数据库,启动到MOUNT 进行第二次闪回。

alter database open resetlogs;

Database altered.


验证:

select count(*) from test22;

  COUNT(*)
----------
       107


将第二节点启动,并验证。

 select count(*) from hr.test22;

  COUNT(*)
----------
       107


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值