天天看点

base scn及wrap scn关系变化

[email protected]> 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

[email protected]> oradebug dumpvar sga kcsgscn  --观察两数据对比得

kcslf kcsgscn_ [2000E060, 2000E080) = 00000000 0031F92C 00003B6C 00000000 00000000 00000000 00000000 2000DE6C       wrapscn+basescn

[email protected]> oradebug dumpvar sga kcsgscn    

kcslf kcsgscn_ [2000E060, 2000E080) = 00000000 0031F92D 00003B6D 00000000 00000000 00000000 00000000 2000DE6C wrapscn+basescn

[email protected]> select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER

------------------------

3275159

[email protected]> oradebug poke 0x2000E060 4 1  --修改wrapscn为1

BEFORE: [2000E060, 2000E064) = 00000000

AFTER: [2000E060, 2000E064) = 00000001

[email protected]> oradebug dumpvar sga kcsgscn

kcslf kcsgscn_ [2000E060, 2000E080) = 00000001 0031FAE1 00003C8B 00000000 00000000 00000000 00000000 2000DE6C

[email protected]> select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER

------------------------

     4298242798

[email protected]> select 4298242798-3275159 from dual;

4298242798-3275159

------------------

4294967639

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

POWER(2,32)-1

-------------

   4294967295