您好,登录后才能下订单哦!
 
  
    SCN		
	System Change Numbers (SCNs)&System Commit Numbers(系统改变号&系统提交号)
	A system change number (SCN) is a logical, internal time stamp used by Oracle Database;
********************************************************************************************************
SCN特点:
	SCN本身也是一种时间
	SCN是从你建库开始单调递增的序列;当你将SCN号用完了,数据库就不能运行; 但是几百年之内是不会用完的!
	SCN是一个重要机制,在数据恢复、Data Guard、Streams复制、RAC 节点间的同步等各个功能中起着重要作用;
*********************************************************************************************************
Oracle数据库SCN的种类:
	1.数据库当前的SCN
		SYS@orcl11g> select current_scn from v$database;
		CURRENT_SCN
		--------------------
    		1159919
		SYS@orcl11g> select dbms_flashback.get_system_change_number() from dual;
		DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER()
		----------------------------------------------------------------------
                                  		1159919
		SYS@orcl11g>select dbms_flashback.get_system_change_number() from dual
		  2  union all
		  3* select current_scn from v$database
		DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER()
		----------------------------------------------------------------------
                             			   1159919
                               			   1159919
	2.数据库的检查点scn(系统scn) 		-- 来源控制文件,用来标识当前数据库的数据更新的信息(用来表示数据库的更新行为)
		SYS@orcl11g> select checkpoint_change#,current_scn from v$database;
		CHECKPOINT_CHANGE#  CURRENT_SCN
		-------------------------------- ----------------------
		           1666278                  1676455
	3.数据文件的检查点scn 		--来源控制文件,标识每一个文件是什么时候同步的
		SYS@orcl11g> select file#,checkpoint_change# from v$datafile order by 1;
 		    FILE#  CHECKPOINT_CHANGE#
		-----------  --------------------------------
		         1            1666278
		         2            1666278
		         3            1666278
		         4            1666278
		         5            1666278
		         6            1666278
		         7            1384282
		         8            1666278
		         9            1666278
		SYS@orcl11g> select tablespace_name,file_id from dba_data_files where file_id=7;
		TABLESPACE_NAME      FILE_ID
		------------------------------ ----------
		TBS02                                7
		SYS@orcl11g> select tablespace_name,status from dba_tablespaces  where tablespace_name='TBS02';
		TABLESPACE_NAME       STATUS
		------------------------------ ------------
		TBS02                            OFFLINE
	4.数据文件头部的检查点SCN				-- 来源于数据文件头部
		SYS@orcl11g> select file#,checkpoint_change# from v$datafile_header;
		    FILE#  CHECKPOINT_CHANGE#
		   --------- ---------------------------------
		         1            1676699
		         2            1676699
		         3            1676699
		         4            1676699
		         5            1676699
		         6            1676699
		         7            1676699
		         8            0
		         9            1676699
		9 rows selected.
	如果是0的话,说明数据文件已经离线,不再读取这个数据文件
	5.数据文件的last_change#			--数据文件的关闭SCN(结束SCN)
		SYS@orcl11g> select file#,checkpoint_change#,last_CHANGE# from v$datafile;
		   FILE# CHECKPOINT_CHANGE# LAST_CHANGE#
		---------- -------------------------------- ----------------------
		         1            1737727                   (null)
		         2            1737727                   (null)
		         3            1737727                   (null)
		         4            1737727                   (null)
		         5            1737727                   (null)
		         6            1737727                   (null)
		         7            1737727                   (null)
		         8            1737727                   (null)
		         9            1737727                   (null)
那系统是如何产生一个最新的 SCN 的?
是由当时的 timestamp 转换过来的。每当需要产生一个最新的 SCN 到 redo 记录时,系统获取当时的 timestamp,将其转换为数字作为 SCN。
TIME & SCN的相互转换函数:
	SYS@orcl11g> select scn_to_timestamp(1906338) from dual;
	SCN_TO_TIMESTAMP(1906338)
	------------------------------------------------
	26-JUN-13 10.52.09.000000000 AM
	SYS@orcl11g> select timestamp_to_scn(to_timestamp('2013-06-26 10:53:27','yyyy-mm-dd hh34:mi:ss')) from dual;
	TIMESTAMP_TO_SCN(TO_TIMESTAMP('2013-06-2610:53:27','YYYY-MM-DDHH24:MI:SS'))
	-----------------------------------------------------------------------------------------------------------------
		                                                            1906370
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。