码迷,mamicode.com
首页 > 其他好文 > 详细

day10_scn号

时间:2016-03-21 21:33:42      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:

-------------------SCN系统改变号---------------------
(1)数据发生变化了,SCN值增加。为了保证数据是同步的,集群有2节点,都能改数据,第1节点改完了,SCN +1。第2节点同步数据,对比两个节点SCN号。
    比如:节点1的SCN是 101       
          节点2的SCN是 100【以大的为准,将节点1的数据同步到节点2】
          
在oracle中也一样,每做一次改变,SCN号就会+1,或者你不做数据改变,它也会按时间增长,你数据库跑了1小时,时间发生变化了,库的SCN号也会变化。


SCN的作用?
你在启动时,是不是要自动恢复,你没有正常关机,第2次启动库时,它怎么知道你数据库的完整性有问题,它不可能扫描所有文件,不可能扫描所有文件下所有数据。
如果你扫描所有文件,一个生产库至少100G,那你全扫描一下,得多长时间啊?那怎么办?
它会看每个文件的SCN号,发果发现SCN号有不匹配,肯定丢数据的了,怎么办?

例:

控制文件中记录:                             非正常关机 

数据文件的位置                          库中数据文件
     system SCN:10000             system SCN:9990
  数据文件1 SCN:10000
  数据文件N SCN:10000
  
日志文件的位置


当你再次重启库时,两边的同一个数据文件的SCN号不同,你肯定丢动作了。这样呢,它有针对性的去查询,这样可以提高恢复速度。

在系统中呢,方便还原,库文件上有SCN号,每个对象上也有SCN号。


SCN的概念 
SCN是顺序递增的一个数字,在Oracle中用来标识数据库的每一次改动,及其先后顺序。SCN的最大值是0xffff.ffffffff。

1、系统检查点scn
当一个检查点动作完成之后(check point),Oracle就把系统检查点的SCN存储到控制文件中。
select checkpoint_change# from v$database;

2、数据文件检查点scn
当一个检查点动作完成后,Oracle就把每个数据文件的scn单独存放在控制文件中。
select name,checkpoint_change# from v$datafile;


create table haha as select * from scott.emp;【创建了一个haha表,库发生改变】

select name,checkpoint_change# from v$datafile; 【没有变化】
select checkpoint_change# from v$database; 【没有变化】


总结:没有变化,但是你的SCN号肯定是增加了,但是没有更新到数据文件上,也没有更新到控制文件上。
在日志中更新了,为什么不往数据文件、控制文件上更新呢?
因为SCN号是按着时间点和改变次数来变的,变得太频繁了,每变一次,更新一次,每变一次,更新一次,服务器压力太大了。
只有在 输入 alter system checkpoint;  后会把检查点的SCN更新过去。

select name,checkpoint_change# from v$datafile; 【有变化】
select checkpoint_change# from v$database; 【有变化】




3、启动scn
Oracle把这个检查点的scn存储在每个数据文件的文件头中,这个值称为启动scn,
因为它用于在数据库实例启动时,检查是否需要执行数据库恢复。
select name,checkpoint_change# from v$datafile_header;【更新】


4、终止scn【关库的时候,触发记录一个结束的SCN号,也进行一次同步,正常关库也记录一份SCN,保证所有SCN号相同,当你再重启库时,就不用恢复操作了】
每个数据文件的终止scn都存储在控制文件中。
select name,last_change# from v$datafile;
在正常的数据库操作过程中,所有正处于联机读写模式下的数据文件的终止scn都为null.

shutdown immediate;
startup mount;
select name,last_change# from v$datafile;





day10_scn号

标签:

原文地址:http://www.cnblogs.com/xiaoxiao5ya/p/70c943ef17531cea66e2a832970a22ae.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!