分类目录归档:Internal

浅谈SCN_1–从oracle7至今,如何获取scn

SCN (System Change Number) 是Oracle数据库中保持数据一致性的主要机制。数据库内部的scn有好几种,会在后面的blog中慢慢细数。今天主要我们如何获取数据库的scn? SCN是一个很大的数字,Oracle使用6 Bytes记录SCN,也就是48bit(一个byte是8bit,每个bit存储0或者1),其最大值是其格式貌似由两部分组成: wrap.base 其中前面16bit的十进制数表示wrap,后面32bit的十进制数表示base,当base达到4 billion(4G),wrap就会增加1。 这是因为Oracle使用c语言写的,在c语言里面 long 类型是一个32bit整数,即最大是 4G(4294967296,2 power 32),因此,scn若在自增的时候采用long类型的整数,正好是4字节,因此,当scn base(ktuxescnb )增加到4G的时候,就需要扩充,于是就有了scn wrap (ktuxescnw),这个表示每满一个 4G(ktuxescnb) 则该值被重置为0,然后再次开始递增1。 详细描述请见:浅谈SCN_1-_从oracle7至今,如何获取scn

发表在 Internal | 标签为 | 留下评论