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;
 

👉 它的作用:

🧠 redo 负责:
“把数据文件从 800 推到 1000”

4️⃣ v$recover_file —— 核心视图(重点!)
字段含义
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 有物理问题
posted @ 2026-04-08 18:07  一只竹节虫  阅读(16)  评论(0)    收藏  举报