SCN
SCN(System Change Number),也就是通常所说的系统改变号或者系统提交号,是数据库中非常重要的一个数据结构。
SCN用以标识数据库在某个确切时刻提交的版本。在事务提交时,它被赋予一个唯一的标识事务的SCN。SCN同时被作为Oracle数据库的内部时钟机制,可被看做逻辑时钟,每个数据库都有一个全局的SCN生成器。SCN在数据库中是唯一的,并随时间而增加,但是可能并不连贯。除非重建数据库,SCN的值永远不会被重置为0.
作用:一致性读/保证事务的唯一性/物理备份恢复机制重要的判断点
SQL> select checkpoint_change#,last_change# from v$datafile; --last_chagne#为空或无穷大 0Xffffffff CHECKPOINT_CHANGE# LAST_CHANGE# ------------------ ------------ 9200308 9200308 9200308 9200308 9200308 9200308 9200308 9200308 8 rows selected SQL> select file#,creation_change#,resetlogs_change# from v$datafile_header; FILE# CREATION_CHANGE# RESETLOGS_CHANGE# ---------- ---------------- ----------------- 1 9 3147070 3 5480 3147070 4 1920446 3147070 7 32876 3147070 13 2171860 3147070 17 5356344 3147070 18 5356374 3147070 19 5356400 3147070 8 rows selected SQL> select file#,change# from v$backup; FILE# CHANGE# ---------- ---------- 1 9200308 3 9200308 4 9200308 7 9200308 13 9200308 17 9200308 18 9200308 19 9200308 8 rows selected SQL> alter database begin backup; Database altered SQL> select file#,change# from v$backup; FILE# CHANGE# ---------- ---------- 1 9200723 3 9200723 4 9200723 7 9200723 13 9200723 17 9200723 18 9200723 19 9200723 8 rows selected SQL> alter database end backup; Database altered SQL> select FIRST_CHANGE#,NEXT_CHANGE# from v$log; FIRST_CHANGE# NEXT_CHANGE# ------------- ------------ 9111479 9167135 9066420 9111479 9167135 1.8446744073