闪回概述

闪回种类及其使用资源:

闪回查询(UNDO)。

闪回删除(UNDO)。

闪回数据(UNDO)。

闪回版本查询(UNDO)。

闪回事物(UNDO)。

闪回数据库(闪回日志)。

一, 闪回查询:基于 SCN 或者 timestamp ,查询当时的数据状态。
模拟步骤。
alter system set undo_retention = 1800;
alter tablespace undotbs1 retention guarantee;
delete from tbl1
Commit
insert into tbl1 values(100);
select to_char ( sysdate,‘yyyy-mm-dd hh24:mi:ss’) from dual
记录时间
Delete from tbl1;
Commit;
select * from tbl1 as of timestamp to_timestamp (‘ 记录时间 ',
'
yyyy-mm-dd hh24:mi:ss');
 
二,闪回删除:闪回 drop 之后的表。注意 sys 用户不支持。
create table test_drop (id number)
insert into
test_drop values(100)
select * from
test_drop
drop table
test_drop
flashback table
test_drop to before drop
select * from
test_drop
闪回顺序:
create table t(id number);
insert into t values(100);
drop table t
create table t(id number);
insert into t values(200);
drop table t
create table t(id number);
insert into t values(300);
drop table t
flashback table t to before drop
 
三,闪回数据:
00:38:20 SQL> create table t(id number);
00:38:26 SQL> insert into t values(100);
00:38:32 SQL> insert into t values(200);
00:38:36 SQL> commit;
00:38:39 SQL>
00:38:39 SQL> insert into t values(300);
00:38:46 SQL> commit;
00:38:47 SQL> delete from t;
00:38:57 SQL> commit;
 第一次闪回
00:40:01 SQL> alter table t enable row movement;
00:38:59 SQL> flashback table t to timestamp to_timestamp ('2012-03-15 00:38:38','yyyy-mm-dd hh24:mi:ss')
flashback table t as of timestamp to_timestamp ('2012-03-15 00:38:38','yyyy-mm-dd hh24:mi:ss')
00:40:38 SQL> select * from t;
 第二次闪回
00:40:42 SQL> flashback table t to timestamp to_timestamp ('2012-03-15 00:38:47','yyyy-mm-dd hh24:mi:ss');
00:41:30 SQL> select * from t;
 
四,闪回版本查询:
Create table T(id number);
Insert into t values(100);
Insert into t values(200);
Update t set id=300 where id=100;
Update t set id=400 where id=200;
Update t set id=500 where id=300;
Update t set id=600 where id=400;
select versions_startscn ,
versions_endscn ,
versions_xid ,
versions_operation ,
id
from t
versions between
scn (timestamp) minvalue and maxvalue ;
五,闪回事务:
select * from flashback_transaction_query where table_name ='T‘;
Commit_scn = versions_endscn ;
 
 六,数据库闪回:
把数据库回滚到过去的时间点,在没有闪回技术之前,大多数情况我们通过的是不完全恢复的方法,遵循恢复和还原的步骤执行的,之后再用resetlogs 打开数据库,这时候
DBA应该对数据库做全库冷备比较安全。补充一点:恢复过程中会用到日志(online的或者archive log)这里面记录的是数据库里面的变化。而闪回技术用的不是常规的
日志,是闪回日志,这里面记录的是数据库变化的逆操作。相当于UNDO里面的内容。但是闪回之后的数据库依然需要resetlogs才能打开。
七,相关语句:
FLASHBACK DATABASE TO TIMESTAMP(SYSDATE-1/24);
FLASHBACK DATABASE TO SCN 53943;
相关参数:
db_recovery_file_dest :闪回区位置。
db_recovery_file_dest_size :闪回区大小。
相关查询:
SELECT estimated_flashback_size,flashback_size FROM  V$FLASHBACK_DATABASE_LOG; 查看闪回日志大小,决定是否需要增加闪回区。
SELECT oldest_flashback_scn ,   oldest_flashback_time  FROM   V$FLASHBACK_DATABASE_LOG; 查看最早能闪回到哪个 SCN
select * from v$flashback_database_stat ; 查询一段时间内的信息。
select * from v$flash_recovery_area_usage ;查询闪回去使用情况
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值