• 搞定Oracle SCN -system change number


    SCN是Oracle的内部时钟,用来反映数据库中所有变化,在运行过程中不断更新。SCN种类包括:

         (1)系统当前SCN
              
     
         (2)Checkpoint SCN(注意只会随着检查点的发生而被更新:但是在热备模式下,checkpoint时该SCN不变
              a.Stop SCN(保存在控制文件中,又称END SCN)
                   实例正常运行时STOP SCN为空,当实例正常关闭时,oracle会在控制文件中记录下每个数据文件对应的STOP SCN号,用来再启动时检查控制文件中所有数据文件对应的STOP SCN号是否都存在并且一致,是则表示上一次实例关闭正常,所有数据文件对应的缓存数据都已同步到磁盘,故无需进行redo/undo实例恢复。否则若发现控制文件中有某数据文件对应的STOP SCN号为空,则表明上次实例关闭非正常,此次启动要进行实例恢复。因此STOP SCN号用来判断下次启动时是否需要进行实例恢复。(如果系统断电,那么控制文件中的STOP SCN还是为空)
                   SQL>select name,last_change# from v$datafile;     --online的数据文件对应的last_change#都是空,offline的数据文件对应的last_change#有值
                   SQL>shutdown immediate;
                   SQL>startup mount;
                   SQL>select name,last_change# from v$datafile;
         如下示例:
               
          首先通过select name,last_change# from v$datafile;查询到test01.dbf文件存在SCN号,是因为我们将该数据文件offline了,当我们online该数据文件时,报出该数据文件需要介质恢复,直接recover该数据文件即可。重新online该数据文件就不会有问题。重新执行select name,last_change# from v$datafile;时,该数据文件对应的SCN号就没有了。
    **********************************************************************************************************************
             
     
              START SCN是我们判断是否需要介质恢复的唯一依据,介质恢复就是更新SCN号(关机时,控制文件中的stop SCN号就是copy的数据文件中start SCN号)。          
    ***********************************************************************************************************************
              
     
    ****************************************************************************************************************
              
     
    总结:1,SCN分两大类:(1)系统当前SCN,用于记录用户对数据库的所有操作;(2)checkpoint SCN,只会随着检查点的刷新而被更新。
              2,checkpoint SCN又分为4小类,主要用户数据库开机时判断是否需要介质恢复和实例恢复。
              3,首先判断start SCN号用于判断开机时所有数据文件的一致性;stop SCN号用于判断是否正常关机(实例恢复);datafile checkpoint SCN号用于判断数据文件和控制文件的一致性;system checkpoint SCN用于判断控制文件自身的一致性。
     
    补充:数据库open阶段,除了检查SCN外,还会检查一个数据,即检查点计数(Checkpoint CNT),而且这个检查点计数要第一个检查。
  • 相关阅读:
    mysql忘记密码怎么办?
    简单Ztree的实现————不连接数据库版
    正则那些事
    牛逼的OSQL----大数据导入
    从数据库导出数据
    瀑布流动态加载图片
    MVC中使用Ajax提交数据 Jquery Ajax方法传值到action
    励志经典,持续收集ing....
    看世界新闻网的简单实现
    TestList汇总
  • 原文地址:https://www.cnblogs.com/pengineer/p/4367008.html
Copyright © 2020-2023  润新知