base scn及wrap scn关系变化

本文通过实际操作展示了Oracle数据库中系统更改号(SCN)的工作原理,包括基本SCN和Wrap SCN的概念及其如何循环更新。通过修改内存变量观察SCN的变化,并计算了Wrap SCN触发前后的SCN值变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SYS@PROD1> select * from v$version;


BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production


SYS@PROD1> oradebug dumpvar sga kcsgscn  --观察两数据对比得
kcslf kcsgscn_ [2000E060, 2000E080) = 00000000 0031F92C 00003B6C 00000000 00000000 00000000 00000000 2000DE6C       wrapscn+basescn


SYS@PROD1> oradebug dumpvar sga kcsgscn    
kcslf kcsgscn_ [2000E060, 2000E080) = 00000000 0031F92D 00003B6D 00000000 00000000 00000000 00000000 2000DE6C wrapscn+basescn


SYS@PROD1> select dbms_flashback.get_system_change_number from dual;


GET_SYSTEM_CHANGE_NUMBER
------------------------
3275159
 
SYS@PROD1> oradebug poke 0x2000E060 4 1  --修改wrapscn为1
BEFORE: [2000E060, 2000E064) = 00000000
AFTER: [2000E060, 2000E064) = 00000001


SYS@PROD1> oradebug dumpvar sga kcsgscn
kcslf kcsgscn_ [2000E060, 2000E080) = 00000001 0031FAE1 00003C8B 00000000 00000000 00000000 00000000 2000DE6C


SYS@PROD1> select dbms_flashback.get_system_change_number from dual;


GET_SYSTEM_CHANGE_NUMBER
------------------------
     4298242798


SYS@PROD1> select 4298242798-3275159 from dual;


4298242798-3275159
------------------
4294967639


SYS@PROD1> select power(2,32)-1 from dual;      --可以推断当base scn达到FFFFFFFF后由wrap scn进一在base scn清零循环


POWER(2,32)-1
-------------
   4294967295
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值