rollback回滚

2015-07-30

误操作多久可以执行rollback?

1、show parameter undo_retention;
900秒,只能回滚15分钟前的数据

2、SCN号
select dbms_flashback.get_system_change_number from dual;
select checkpoint_change# from v$database
4830232007

3、SQL> select GROUP#, STATUS, FIRST_CHANGE# from v$log;

GROUP# STATUS FIRST_CHANGE#
---------- ---------------- -------------
1 INACTIVE 3797341253
2 INACTIVE 3797387482
3 CURRENT 3797412003

group1中保存的数据产生的SCN号为 3797341253至 3797387482 group2中的SCN号为 3797387482至 3797412003group3中的SCN号为 3797412003至 3797422241(当前SCN号)。

alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
select FIRST_TIME,GROUP#, STATUS, FIRST_CHANGE# from v$log;

SQL> select FIRST_TIME,GROUP#, STATUS, FIRST_CHANGE# from v$log;

FIRST_TIME GROUP# STATUS FIRST_CHANGE#
------------------- ---------- ---------------- -------------
2015-07-28 07:01:25 1 INACTIVE 3797341253
2015-07-28 22:00:08 2 INACTIVE 3797387482
2015-07-29 07:02:11 3 CURRENT 3797412003

4、select count(*) from mall_shop as of scn 4830232007;
create table test1 as select * from test as of scn 4830232007;
select bg from mall_shop as of scn 4830232007;
drop table mall_shop_20150729 purge;
select count(*) from mall_shop_20150729;
select bg from mall_shop_20150729 where bg like '%10000004%';

5、SCN介绍
SCN(System Change Number 简称 SCN)是当Oracle数据库更新后,由DBMS自动维护去累积递增的一个数字。在Oracle中,有四种SCN,分别为:系统检查点SCN、数据文件检查点SCN、启动SCN、终止SCN。
有system change number和system commit number两种说法,表达的都是同一个意思,即SCN是数据库系统中顺序增长的一个数字,用来精确区别操作的先后顺序。

SCN最大值是多少
Oracle使用6 Bytes记录SCN,也就是48位,其最大值是:281,474,976,710,656
参考 http://blog.csdn.net/daimin1983/article/details/3484173

分类:数据库 | 标签: |

相关日志

评论被关闭!