• [ORACLE] SNC 学习


    SCN

          SCN(System Change Number),也就是通常所说的系统改变号或者系统提交号,是数据库中非常重要的一个数据结构。

       SCN用以标识数据库在某个确切时刻提交的版本。在事务提交时,它被赋予一个唯一的标识事务的SCN。SCN同时被作为Oracle数据库的内部时钟机制,可被看做逻辑时钟,每个数据库都有一个全局的SCN生成器。SCN在数据库中是唯一的,并随时间而增加,但是可能并不连贯。除非重建数据库,SCN的值永远不会被重置为0.

    检查点: 是一个数据库事件,它把修改数据从高速缓存写入磁盘,并更新控制文件和数据文件,它存在的根本意义在于减少崩溃恢复时间

    四种SCN

     

    • 系统检查点SCN:       当一个检查点动作完成后,oracle 就将系统检查点的SCN存储到控制文件中.
    • 据文件检查点SCN:  当一个检查点动作完成后,OraclE将每个数据文件的SCN单独存放在控制文件中.
    • 启动SCN:            oracle 把这个检查点的SCN存储在每个数据文件的文件头中,这个值称为启动SCN,因为它用于在数据库实例启动时,检查是否需要执行数据库恢复
    • 终止SCN         每个数据文件的终止SCN都存储在控制文件中.

    作用:一致性读/保证事务的唯一性/物理备份恢复机制重要的判断点

    SQL> select checkpoint_change#,last_change# from v$datafile; --last_chagne#为空或无穷大 0Xffffffff
    
    CHECKPOINT_CHANGE# LAST_CHANGE#
    ------------------ ------------
               9200308 
               9200308 
               9200308 
               9200308 
               9200308 
               9200308 
               9200308 
               9200308 
    
    8 rows selected
    
    SQL> select file#,creation_change#,resetlogs_change# from v$datafile_header;
    
         FILE# CREATION_CHANGE# RESETLOGS_CHANGE#
    ---------- ---------------- -----------------
             1                9           3147070
             3             5480           3147070
             4          1920446           3147070
             7            32876           3147070
            13          2171860           3147070
            17          5356344           3147070
            18          5356374           3147070
            19          5356400           3147070
    
    8 rows selected
    
    SQL> select file#,change# from v$backup;
    
         FILE#    CHANGE#
    ---------- ----------
             1    9200308
             3    9200308
             4    9200308
             7    9200308
            13    9200308
            17    9200308
            18    9200308
            19    9200308
    
    8 rows selected
    
    SQL> alter database begin backup;
    
    Database altered
    
    SQL> select file#,change# from v$backup;
    
         FILE#    CHANGE#
    ---------- ----------
             1    9200723
             3    9200723
             4    9200723
             7    9200723
            13    9200723
            17    9200723
            18    9200723
            19    9200723
    8 rows selected
    SQL> alter database end backup;
    
    Database altered
    
    SQL> select FIRST_CHANGE#,NEXT_CHANGE# from v$log;
    
    FIRST_CHANGE# NEXT_CHANGE#
    ------------- ------------
          9111479      9167135
          9066420      9111479
          9167135 1.8446744073
  • 相关阅读:
    E百科 | 第2期 扒一扒能加速互联网的QUIC协议
    阿里的 RocketMQ 如何让双十一峰值之下 0 故障?
    阿里巴巴开源容器镜像加速技术
    Fluid — 云原生环境下的高效“数据物流系统”
    一站式云原生智能告警运维平台——SLS新版告警发布!
    重磅官宣:Nacos2.0 发布,性能提升 10 倍
    阿里云高级技术专家周哲:阿里云边缘云原生应用实践
    互联网泛娱乐直播安全的解决之道
    货运物流移动端解决方案:为货运物流行业打造高性能、高粘性的“双端”触点
    SpringMVC(十四) RequestMapping ModelAndView
  • 原文地址:https://www.cnblogs.com/tingxin/p/12897741.html
Copyright © 2020-2023  润新知