oracle的offline scn/online scn
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,offline scn/online scn 当表空间或数据文件被offline时,其对应的数据文件的scn会写入一个值,被称为offline scn. 不过有一些值得注意的地方, 我这里用实验来进行
千家信息网最后更新 2025年11月14日oracle的offline scn/online scnoffline scn/online scn
当表空间或数据文件被offline时,其对应的数据文件的scn会写入一个值,被称为offline scn. 不过有一些值得注意的地方, 我这里用实验来进行剖析,让大家更容易理解:
查看当前的4号表空间的scn SYS@hyyk> select file#,checkpoint_change# from v$datafile where ts#=4;
FILE# CHECKPOINT_CHANGE# ---------- ------------------ 4 1819632
SYS@hyyk> select file#,checkpoint_change# from v$datafile_header where ts#=4;
FILE# CHECKPOINT_CHANGE# ---------- ------------------ 4 1819632
SYS@hyyk> alter tablespace users offline;
Tablespace altered.
SQL> oradebug setmypid SQL> alter session set events 'immediate trace name CONTROLF level 4';
SQL> alter session set events 'immediate trace name FILE_HDRS level 3';
SQL> oradebug close_trace
SYS@hyyk> oradebug tracefile_name /u01/app/oracle/diag/rdbms/hyyk/hyyk/trace/hyyk_ora_25045.trc
控制文件 DATA FILE #4: name #4: /u01/app/oracle/oradata/hyyk/users01.dbf creation size=0 block size=8192 status=0x80 head=4 tail=4 dup=1 tablespace 4, index=4 krfil=4 prev_file=0 unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00 Checkpoint cnt:201 scn: 0x0000.001be049 02/22/2018 13:02:20 Stop scn: 0x0000.001be049 02/22/2018 13:02:20 Creation Checkpointed at scn: 0x0000.00004649 08/15/2009 00:17:30 thread:0 rba:(0x0.0.0) enabled threads: 00000000 00000000 00000000 00000000 00000000 00000000 .................. Offline scn: 0x0000.001bc3b5 prev_range: 1 Online Checkpointed at scn: 0x0000.001bc3f0 02/12/2018 11:35:20 thread:1 rba:(0x3c.183.10)
数据文件 DATA FILE #4: name #4: /u01/app/oracle/oradata/hyyk/users01.dbf creation size=0 block size=8192 status=0x80 head=4 tail=4 dup=1 tablespace 4, index=4 krfil=4 prev_file=0 unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00 Checkpoint cnt:201 scn: 0x0000.001be049 02/22/2018 13:02:20 Stop scn: 0x0000.001be049 02/22/2018 13:02:20 Creation Checkpointed at scn: 0x0000.00004649 08/15/2009 00:17:30 thread:0 rba:(0x0.0.0) enabled threads: 00000000 00000000 00000000 00000000 00000000 00000000 ....................... Offline scn: 0x0000.001bc3b5 prev_range: 1 ---offline scn Online Checkpointed at scn: 0x0000.001bc3f0 02/12/2018 11:35:20 ----如果该datafile online,那么该值将被更新 ...................... thread:1 rba:(0x3c.183.10) enabled threads: 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
首先,我们切换一次日志,再次观察checkpoint的变化: SQL> alter system switch logfile; SYS@hyyk> select file#,STATUS,CHECKPOINT_CHANGE#,ONLINE_CHANGE# from v$datafile; ---------------------------------------------- 控制文件
FILE# STATUS CHECKPOINT_CHANGE# ONLINE_CHANGE# ---------- ------- ------------------ -------------- 1 SYSTEM 1827251 945184 2 ONLINE 1827251 945184 3 ONLINE 1827251 945184 4 OFFLINE 1826889 1819632 5 ONLINE 1827251 974060 6 ONLINE 1827251 0 7 ONLINE 1827251 0 8 ONLINE 1827251 0
SYS@hyyk> select file#,STATUS,CHECKPOINT_CHANGE#,CHECKPOINT_COUNT from v$datafile_header order by 1; -------------------- 数据文件头部
FILE# STATUS CHECKPOINT_CHANGE# CHECKPOINT_COUNT ---------- ------- ------------------ ---------------- 1 ONLINE 1827251 201 2 ONLINE 1827251 201 3 ONLINE 1827251 126 4 OFFLINE 0 0 5 ONLINE 1827251 122 6 ONLINE 1827251 72 7 ONLINE 1827251 59 8 ONLINE 1827251 59
SYS@hyyk> alter tablespace users online;
Tablespace altered.
SQL> oradebug setmypid Statement processed. SQL> alter session set events 'immediate trace name CONTROLF level 4';
SQL> alter session set events 'immediate trace name FILE_HDRS level 3';
SQL> oradebug close_trace
SQL> oradebug tracefile_name /u01/app/oracle/diag/rdbms/hyyk/hyyk/trace/hyyk_ora_26044.trc
DATA FILE #4: name #4: /u01/app/oracle/oradata/hyyk/users01.dbf creation size=0 block size=8192 status=0xe head=4 tail=4 dup=1 tablespace 4, index=4 krfil=4 prev_file=0 unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00 Checkpoint cnt:202 scn: 0x0000.001be1dd 02/22/2018 13:20:24 Stop scn: 0xffff.ffffffff 02/22/2018 13:02:20 Creation Checkpointed at scn: 0x0000.00004649 08/15/2009 00:17:30 thread:0 rba:(0x0.0.0) enabled threads: 00000000 00000000 00000000 00000000 00000000 00000000
Offline scn: 0x0000.001be049 prev_range: 2 Online Checkpointed at scn: 0x0000.001be1dd 02/22/2018 13:20:24
thread:1 rba:(0x3f.8.10) enabled threads: 01000000 00000000 00000000 00000000 00000000 00000000
从上面的小实验,我们可以得出如下结论:
1. archivelog模式下,当表空间offline时,其对应的数据文件头stop scn会更新,同时controlfile中该datafile 的stop scn信息也会更新. 此时也会更新offline scn,并且offline scn等于stop scn.
2. 当online后,对应的数据文件头的online scn等于datafile checkpoint scn值。
3. 当online后,controlfile中关于该表空对应的datafile和对应的数据文件头的stop scn都会重新被置于最大值,即为无穷大.
当表空间或数据文件被offline时,其对应的数据文件的scn会写入一个值,被称为offline scn. 不过有一些值得注意的地方, 我这里用实验来进行剖析,让大家更容易理解:
查看当前的4号表空间的scn SYS@hyyk> select file#,checkpoint_change# from v$datafile where ts#=4;
FILE# CHECKPOINT_CHANGE# ---------- ------------------ 4 1819632
SYS@hyyk> select file#,checkpoint_change# from v$datafile_header where ts#=4;
FILE# CHECKPOINT_CHANGE# ---------- ------------------ 4 1819632
SYS@hyyk> alter tablespace users offline;
Tablespace altered.
SQL> oradebug setmypid SQL> alter session set events 'immediate trace name CONTROLF level 4';
SQL> alter session set events 'immediate trace name FILE_HDRS level 3';
SQL> oradebug close_trace
SYS@hyyk> oradebug tracefile_name /u01/app/oracle/diag/rdbms/hyyk/hyyk/trace/hyyk_ora_25045.trc
控制文件 DATA FILE #4: name #4: /u01/app/oracle/oradata/hyyk/users01.dbf creation size=0 block size=8192 status=0x80 head=4 tail=4 dup=1 tablespace 4, index=4 krfil=4 prev_file=0 unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00 Checkpoint cnt:201 scn: 0x0000.001be049 02/22/2018 13:02:20 Stop scn: 0x0000.001be049 02/22/2018 13:02:20 Creation Checkpointed at scn: 0x0000.00004649 08/15/2009 00:17:30 thread:0 rba:(0x0.0.0) enabled threads: 00000000 00000000 00000000 00000000 00000000 00000000 .................. Offline scn: 0x0000.001bc3b5 prev_range: 1 Online Checkpointed at scn: 0x0000.001bc3f0 02/12/2018 11:35:20 thread:1 rba:(0x3c.183.10)
数据文件 DATA FILE #4: name #4: /u01/app/oracle/oradata/hyyk/users01.dbf creation size=0 block size=8192 status=0x80 head=4 tail=4 dup=1 tablespace 4, index=4 krfil=4 prev_file=0 unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00 Checkpoint cnt:201 scn: 0x0000.001be049 02/22/2018 13:02:20 Stop scn: 0x0000.001be049 02/22/2018 13:02:20 Creation Checkpointed at scn: 0x0000.00004649 08/15/2009 00:17:30 thread:0 rba:(0x0.0.0) enabled threads: 00000000 00000000 00000000 00000000 00000000 00000000 ....................... Offline scn: 0x0000.001bc3b5 prev_range: 1 ---offline scn Online Checkpointed at scn: 0x0000.001bc3f0 02/12/2018 11:35:20 ----如果该datafile online,那么该值将被更新 ...................... thread:1 rba:(0x3c.183.10) enabled threads: 01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
首先,我们切换一次日志,再次观察checkpoint的变化: SQL> alter system switch logfile; SYS@hyyk> select file#,STATUS,CHECKPOINT_CHANGE#,ONLINE_CHANGE# from v$datafile; ---------------------------------------------- 控制文件
FILE# STATUS CHECKPOINT_CHANGE# ONLINE_CHANGE# ---------- ------- ------------------ -------------- 1 SYSTEM 1827251 945184 2 ONLINE 1827251 945184 3 ONLINE 1827251 945184 4 OFFLINE 1826889 1819632 5 ONLINE 1827251 974060 6 ONLINE 1827251 0 7 ONLINE 1827251 0 8 ONLINE 1827251 0
SYS@hyyk> select file#,STATUS,CHECKPOINT_CHANGE#,CHECKPOINT_COUNT from v$datafile_header order by 1; -------------------- 数据文件头部
FILE# STATUS CHECKPOINT_CHANGE# CHECKPOINT_COUNT ---------- ------- ------------------ ---------------- 1 ONLINE 1827251 201 2 ONLINE 1827251 201 3 ONLINE 1827251 126 4 OFFLINE 0 0 5 ONLINE 1827251 122 6 ONLINE 1827251 72 7 ONLINE 1827251 59 8 ONLINE 1827251 59
SYS@hyyk> alter tablespace users online;
Tablespace altered.
SQL> oradebug setmypid Statement processed. SQL> alter session set events 'immediate trace name CONTROLF level 4';
SQL> alter session set events 'immediate trace name FILE_HDRS level 3';
SQL> oradebug close_trace
SQL> oradebug tracefile_name /u01/app/oracle/diag/rdbms/hyyk/hyyk/trace/hyyk_ora_26044.trc
DATA FILE #4: name #4: /u01/app/oracle/oradata/hyyk/users01.dbf creation size=0 block size=8192 status=0xe head=4 tail=4 dup=1 tablespace 4, index=4 krfil=4 prev_file=0 unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00 Checkpoint cnt:202 scn: 0x0000.001be1dd 02/22/2018 13:20:24 Stop scn: 0xffff.ffffffff 02/22/2018 13:02:20 Creation Checkpointed at scn: 0x0000.00004649 08/15/2009 00:17:30 thread:0 rba:(0x0.0.0) enabled threads: 00000000 00000000 00000000 00000000 00000000 00000000
Offline scn: 0x0000.001be049 prev_range: 2 Online Checkpointed at scn: 0x0000.001be1dd 02/22/2018 13:20:24
| ---从这里可以看到,文件头的online scn值也更新了。 |
从上面的小实验,我们可以得出如下结论:
1. archivelog模式下,当表空间offline时,其对应的数据文件头stop scn会更新,同时controlfile中该datafile 的stop scn信息也会更新. 此时也会更新offline scn,并且offline scn等于stop scn.
2. 当online后,对应的数据文件头的online scn等于datafile checkpoint scn值。
3. 当online后,controlfile中关于该表空对应的datafile和对应的数据文件头的stop scn都会重新被置于最大值,即为无穷大.
文件
数据
更新
空间
实验
控制
最大
信息
再次
同时
地方
头部
无穷大
日志
最大值
模式
结论
面的
中关
切换
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
省地税局网络安全
网络安全平台行动
网络技术基础试题及答案
程序员数据库搭建
数据库通用功能 类
服务器性能需求
两个服务器网络拓扑图
网络安全的知识宣传
联想 服务器 远程管理口
orance数据库教程
软件开发面试时职业规划
闵行区网络技术服务咨询优势
思科网络技术学院直播
网络安全预防诈骗手段
网络安全链接失败
中职计算机网络技术课件
5G网络技术英语
北斗校时服务器
服务器系统日志审计多少钱
沉迷网络安全教育课件
在网络技术高速发展
省地税局网络安全
上海华服互联网科技有限公司
华为服务器停电启动不了
中国网络技术有限公司客服
数据库四级含金量
数据库 连接 区别
国家陨石数据库图片
中职计算机网络技术课件
网络安全训练营v2.0