zoukankan      html  css  js  c++  java
  • SCN与数据恢复的关系

    Oracle内部主要存在以下四种SCN
    1.系统检查点(system checkpoint)SCN
    每当一个检查点完成时,Oracle就把该检查点对应的SCN记录到控制文件中,可以用以下语句查看当前数据库 的检查点SCN:
    select CHECKPOINT_CHANGE# from v$database;

    CHECKPOINT_CHANGE#
    ------------------
            6627441168
    2.数据文件头SCN(数据文件的启动SCN)
    该SCN记录在每个数据文件头中,正常情况下,该SCN应该和记录在控制文件中的检查点SCN一致,可以用以下语句查看数据文件头的SCN:
    select FILE#,CHECKPOINT_CHANGE# from v$datafile_header;

         FILE# CHECKPOINT_CHANGE#
    ---------- ------------------
             1         6627448310
             2         6627448310
             3         6627448310
             4         6627448310
             5         6627448310
    3.数据文件的检查点SCN和终止SCN
    这两个SCN不是记录在数据文件中,而是记录在控制文件中,可以通过以下语句查看:
    select CHECKPOINT_CHANGE#,LAST_CHANGE# from v$datafile;

    CHECKPOINT_CHANGE# LAST_CHANGE#
    ------------------ ------------
            6627448310
            6627448310
            6627448310
            6627448310

            6627448310

    那么Oracle是如何根据这些不同的SCN来判断某个数据文件是否需要恢复以及恢复类型呢?可以用下面的伪代码描述:

    if (数据文件检查点SCN <数据文件头SCN)
      then "控制文件来自备份,需要进行不完全恢复,恢复之后得用resetlog方式打开”
    else if (数据文件检查点SCN > 数据文件头SCN)
      then "数据文件来自备份,需要log进行完全或不完全恢复"
    else if (数据文件检查点SCN = 数据文件头SCN) 
       then "数据库能正常open,还需要判断是否需要实例恢复"
       if (数据文件终止SCN = 数据文件检查点SCN)
           then "数据库打开时不需要实例恢复“
       else if (数据文件终止SCN = NULL)
           then "数据库需要实例恢复"




    原文链接:http://blog.csdn.net/u010415792/article/details/8858582

  • 相关阅读:
    Noip2012 开车旅行
    「NOI2018」归程
    2019.10.30 队测(晚上)
    洛谷P1138 第k小整数
    洛谷P2870 [USACO07DEC]最佳牛线,黄金Best Cow Line, Gold
    Noip-pj2018游记
    洛谷P4994 终于结束的起点
    《退役的你》
    《膜你抄》
    洛谷P5087 数学
  • 原文地址:https://www.cnblogs.com/future2012lg/p/3700657.html
Copyright © 2011-2022 走看看