[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