Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6553810
  • 博文数量: 1005
  • 博客积分: 8199
  • 博客等级: 中将
  • 技术积分: 13071
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-25 20:19
个人简介

脚踏实地、勇往直前!

文章分类

全部博文(1005)

文章存档

2020年(2)

2019年(93)

2018年(208)

2017年(81)

2016年(49)

2015年(50)

2014年(170)

2013年(52)

2012年(177)

2011年(93)

2010年(30)

分类: Oracle

2012-06-15 21:17:31

 
我们知道ORACLE中有SCN(System Change Number)和Checkpoint_Change#,那这两者的关系是什么呢,其实Checkpoint_Change#是来源于SCN,SCN是时刻在变化的,Checkpoint_Change#是在数据发生了检查点的时候才改变的,它的值来源于SCN.下面通过一个例子来说明.
 
1.获取当前的SCN
SQL> select dbms_flashback.get_system_change_number() from dual;
DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER()
-----------------------------------------
                                  1275075
2.产生检查点
SQL> alter system checkpoint;
System altered.
 
3.从数据文件和数据头文件中查看检查点
SQL> column name format a50;
SQL> select name,checkpoint_change# from v$datafile;
NAME                                               CHECKPOINT_CHANGE#
-------------------------------------------------- ------------------
E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF                1275080
E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF                1275080
E:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF               1275080
E:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF                 1275080
 
SQL> select name, checkpoint_change# from v$datafile_header;
NAME                                               CHECKPOINT_CHANGE#
-------------------------------------------------- ------------------
E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF                1275080
E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF                1275080
E:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF               1275080
E:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF                 1275080
 
从以上的输出可以看出Checkpoint_Change#非常接近SCN的值,说明Checkpoint_Change#来源于SCN,因为SCN时刻在变化,无法捕获到Checkpoint_Change#等于SCN的时刻.
 
-- The End --
阅读(4167) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~