scn(数据块中的scn)

本文探讨了Oracle数据库中数据块的SCN(系统改变编号)机制,包括事务槽中的SCN记录和行级别的SCN登记。从Oracle 10g开始,如果启用ROW DEPENDENCIES,行级更改会保存在数据块中对应的SCN。
摘要由CSDN通过智能技术生成
从oracle 10g开始,数据块中的SCN主要分为一下3类:
数据块变化时的SCN
数据块事务槽中的SCN
数据块中数据行的SCN

1、数据块变化时的SCN
有很多操作会引起数据块变化,如业务数据的变化、块清理等。数据块变化时的SCN保存在数据块OFFSET8-14中,占用6个字节。

数据块的dump:

SQL> alter system dump datafile 1 block 16;

System altered.
SQL> select value from v$diag_info where name = 'Default Trace File';  

VALUE
--------------------------------------------------------------------------------
/u01/app/oracle/diag/rdbms/panda/panda/trace/panda_ora_9099.trc

SQL> ! vim /u01/app/oracle/diag/rdbms/panda/panda/trace/panda_ora_9099.trc
......
Start dump data blocks tsn: 0 file#:1 minblk 16 maxblk 16
Block dump from cache:
Dump of buffer cache at level 4 for tsn=0, rdba=4194320
Block dump from disk:
buffer tsn: 0 rdba: 0x00400010 (1/16)
scn: 0x0000.00000025 seq: 0x01 flg: 0x04 tail: 0x00251e01
frmt: 0x02 chkval: 0x80ab type: 0x1e=KTFB Bitmapped File Space Bitmap
Hex dump of block: st=0, typ_found=1
......

2、数据块事务槽中的SCN

如果一个数据块有多个事务槽,表明允许有多个事务对数据块进行并发更改,当其中一个事务发生变化时,会在相应的事务槽登记变化的SCN.

SQL> create table t(name varchar2(32));

Table created.
SQL> insert into t values('panda1');

1 row created.

SQL> insert into t values('panda2');

1 row created.

SQL> insert into t values('panda3');

1 row created.

SQL>  select dbms_rowid.rowid_relative_fno(rowid) file#,dbms_rowid.rowid_block_number(rowid) block# from t;

     FILE#     BLOCK#
---------- ----------
	 4	  183
	 4	  183
	 4	  183

SQL> alter system dump datafile 4 block 183;

System altered.

SQL> select value from v$diag_info where name = 'Default Trace File'; 

VALUE
--------------------------------------------------------------------------------
/u01/app/oracle/diag/rdbms/panda/panda/trace/panda_ora_10463.trc

SQL> ! vim /u01/app/oracle/diag/rdbms/panda/panda/trace/panda_ora_10463.trc 

Trace file /u01/app/oracle/diag/rdbms/panda/panda/trace/panda_ora_10463.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值