如何获得当前的SCN值

来源:互联网 发布:温润如玉的男人知乎 编辑:程序博客网 时间:2024/05/17 02:38
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

如何获得当前数据库的SCN

--SCN定义及获取方式

LastUpdated:Thursday,2004-12-0215:04Eygle
   
 


 

SCN(SystemChangeNumber),也就是通常我们所说的系统改变号,是数据库中非常重要的一个数据结构。

它定义数据库在某个确切时刻提交的版本。在事物提交时,它被赋予一个唯一的标示事物的SCNSCN提供的内部时钟机制,
可被看作逻辑时钟,这对于恢复操作是至关重要的(Oracle仅根据SCN执行恢复)。

一直以来,对于SCN有很多争议,很多人认为SCN是指,SystemCommitNumber,而通常SCN在提交时才变化,所以很多时候,
这两个名词经常被交替使用。

到底是哪个词其实不是最重要的,重要的是我们知道SCN是Oracle内部的时钟机制,Oracle通过SCN来维护数据库的一致性,并通过
SCN实施Oracle至关重要的恢复机制。SCN由LGWR顺序分配,用以标示提交、回滚和检查点。

我们来看一下获得当前SCN的几种方式:

1.在Oracle9i中,可以使用dbms_flashback.get_system_change_number来获得

例如:

SQL>selectdbms_flashback.get_system_change_numberfromdual;GET_SYSTEM_CHANGE_NUMBER------------------------2982184

2.在Oracle9i之前

可以通过查询x$ktuxe获得

X$KTUXE-------------[K]ernel[T]ransaction[U]ndoTransa[x]tion[E]ntry(table)

 

SQL>selectmax(ktuxeSCNw*power(2,32)+ktuxeSCNb)fromx$ktuxe;MAX(KTUXESCNW*POWER(2,32)+KTUXESCNB)------------------------------------2980613

 

 

本文作者:
eygle,Oracle技术关注者,来自中国最大的Oracle技术论坛itpub.
www.eygle.com是作者的个人站点.你可通过Guoqiang.Gai@gmail.com来联系作者.欢迎技术探讨交流以及链接交换.

原文出处:

http://www.eygle.com/faq/How.To.Get.Current.SCN.of.Database.htm

 
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击