Oracle数据库之搞懂SCN
控制文件SCN
select checkpoint_change# from v$database;
✔ 控制文件里的 SCN(数据库认为的最新一致点)
👉 通俗理解:
📒 控制文件说:
“数据库应该恢复到 SCN = 1000”
数据文件SCN(两个视图的区别)
1)v$datafile —— “账本,控制文件认为数据文件应在的SCN情况”
select file#, name, checkpoint_change#
from v$datafile
order by file#;👉 来源:控制文件
👉 表示:
📒 控制文件认为:
“各个数据文件的SCN在这里,这个文件属于数据库”
(2)v$datafile_header —— “数据文件实际SCN情况”
来源:数据文件头(真正磁盘里的信息)select file#, name, checkpoint_change#, fuzzy, recover, error
from v$datafile_header;通俗理解:
📄 数据文件自己说:
“我现在只到 SCN = 800”redo日志(你看不到SCN)
👉 redo 你只能看到路径:
select group#, member from v$logfile;👉 它的作用:
4️⃣ v$recover_file —— 核心视图(重点!)🧠 redo 负责:
“把数据文件从 800 推到 1000”select * from v$recover_file;
字段 含义
👉 这个视图是什么?
👉 Oracle已经帮你判断好的“需要恢复的文件清单”
👉 有记录 代表有文件需要做恢复vs 没记录 代表数据库正常,都一致
情况 含义 ❌ 没记录 所有文件已一致 ✅ 有记录 这些文件需要恢复
情况 含义 ❌ 没记录 所有文件已一致 ✅ 有记录 这些文件需要恢复
checkpoint_change# 文件当前SCN
fuzzy YES = 文件还没完全写干净(不一致)
recover YES = 需要恢复
error 有物理问题
字段 含义 checkpoint_change# 文件当前SCN fuzzy YES = 文件还没完全写干净(不一致) recover YES = 需要恢复 error 有物理问题
字段 含义 checkpoint_change# 文件当前SCN fuzzy YES = 文件还没完全写干净(不一致) recover YES = 需要恢复 error 有物理问题
字段 含义 checkpoint_change# 文件当前SCN fuzzy YES = 文件还没完全写干净(不一致) recover YES = 需要恢复 error 有物理问题

浙公网安备 33010602011771号