Chinaunix首页 | 论坛 | 博客
  • 博客访问: 98486
  • 博文数量: 36
  • 博客积分: 2000
  • 博客等级: 大尉
  • 技术积分: 375
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-25 13:47
个人简介

EnjoyIt

文章分类

全部博文(36)

文章存档

2014年(3)

2009年(1)

2008年(32)

我的朋友

分类: Oracle

2008-02-25 14:28:44

一、四个SCN概念。
1、系统检查点scn
当一个检查点动作完成后,Oracle就把系统检查点的SCN存储到控制文件中。
select checkpoint_change# from v$database;
2,数据文件检查点scn
当一个检查点动作完成后,Oracle就把每个数据文件的scn单独存放在控制文件中。
select name,checkpoint_change# from v$datafile;
3,启动scn
Oracle把这个检查点的scn存储在每个数据文件的文件头中,这个值称为启动scn,因为它用于在数据库实例启动时,
检查是否需要执行数据库恢复。
select name,checkpoint_change# from v$datafile_header
4、终止scn
每个数据文件的终止scn都存储在控制文件中。
select name,last_change# from v$datafile
 
二、
system commit number Vs system change number
system commit number :仅仅表示 提交时候产生的 SCN ,是 SCN 的一部分 ,不等于 SCN
system change number : 数据库发生任何变化所产生的 SCN ,指所有的 SCN
The SCN will -- but not the checkpoint_change#. Thats the last SCN checkpointed:
产生 SCN 的原因很多!
DML/commit/rollback/job/数据库递归调用/关闭打开数据库/日志缓冲区若是并行分配…… 很多情况,任何数据库的改变都会导致 SCN 的增加!
从这里可以查:
SQL>select GROUP#,FIRST_CHANGE# from v$log;--日志文件同步号
SQL>select file#,checkpoint_change# from v$datafile;--数据文件同步号 
SQL>select checkpoint_change# from v$database;--控制文件同步号 system change number
SQL>select * from v$logfile;
SQL>alter system checkpoint;设置
SQL>SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FROM DUAL;查询
SQL>alter system switch logfile;切换日志
 
 
 
 
阅读(317) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:SCN(2)

给主人留下些什么吧!~~