select CURRENT_SCN from v$database; 是不断向前的。
select checkpoint_change# from v$database;只是记录的CHECKPOINT 那一刻的SCN。
CURRENT_SCN 一定大于 checkpoint_change#
checkpoint_change# 应该记录在 CONTROLFILE中吧。
select checkpoint_change# from v$database;只是记录的CHECKPOINT 那一刻的SCN。
CURRENT_SCN 一定大于 checkpoint_change#
checkpoint_change# 应该记录在 CONTROLFILE中吧。
手动变化时,checkpoint,立即产生影响。
使用日志切换时,要等待日志的状态变化才能改变。
| SQL> select checkpoint_change# from v$database; CHECKPOINT_CHANGE# ------------------ 6467969 SQL> select CURRENT_SCN from v$database; CURRENT_SCN ----------- 6510053 SQL> alter system checkpoint; System altered SQL> select checkpoint_change# from v$database; CHECKPOINT_CHANGE# ------------------ 6510057 |
使用日志切换时,要等待日志的状态变化才能改变。
| SQL> select checkpoint_change# from v$database; CHECKPOINT_CHANGE# ------------------ 3043898 SQL> alter system switch logfile; 系统已更改。 SQL> select checkpoint_change# from v$database; CHECKPOINT_CHANGE# ------------------ 3043898 SQL> select group#,thread#,status from v$log; GROUP# THREAD# STATUS ---------- ---------- ---------------- 1 1 ACTIVE 2 1 CURRENT 3 1 INACTIVE SQL> r 1* select group#,thread#,status from v$log GROUP# THREAD# STATUS ---------- ---------- ---------------- 1 1 INACTIVE 2 1 CURRENT 3 1 INACTIVE SQL> select checkpoint_change# from v$database; CHECKPOINT_CHANGE# ------------------ 3044308 要等到日志组的状态变成了INACTIVE,检查点才会发生变化。 |
本文详细解释了Oracle数据库中SCN(系统变更号)与Checkpoint Change#的概念及区别。CURRENT_SCN代表当前系统的变更号,随数据库活动不断增长;而Checkpoint Change#记录的是最近一次检查点时的SCN值。通过实例演示了如何使用SQL查询这两个值,并展示了系统检查点与日志切换操作对Checkpoint Change#的影响。
1760

被折叠的 条评论
为什么被折叠?



