• Oracle-实例启动是如何判断是否需要进行实例恢复?


    疑问?

       Oracle关闭DB有两种类型:一致性关库、非一致性关库;

      Oracle宣传的是说Oracle数据库永远不会丢失数据! 这句话的意思是当DB主机由于断电等异常原因造成实例崩溃,已经commit提交的数据不会丢失!

       Oracle是如何保证数据不丢失的,是基于日志先行策略! 回到问题! 非一致性关库,Oracle如何判断需要实例恢复???

    一、Oracle通过v$datafile last_change# 可以判断是否是一致性关库,可以判断是否需要进行实例恢复

     

    SQL> shutdown immediate;
    SQL> startup mount;
    SQL> select file#,CHECKPOINT_CHANGE#, LAST_CHANGE#,status from v$datafile;                     
    
         FILE# CHECKPOINT_CHANGE# LAST_CHANGE# STATUS
    ---------- ------------------ ------------ -------
             1           35628021     35628021 SYSTEM
             2           35628021     35628021 ONLINE
             3           35628021     35628021 ONLINE
             4           35628021     35628021 ONLINE
             5           35628021     35628021 ONLINE
             6           35628021     35628021 ONLINE
             7           35628021     35628021 ONLINE
             8           35628021     35628021 ONLINE
             9           35628021     35628021 ONLINE
    
    9 rows selected.
    SQL> select NAME,CHECKPOINT_CHANGE# from v$database;
    
    NAME      CHECKPOINT_CHANGE#
    --------- ------------------
    TT11204             35628021
    SQL> alter database open;

    SQL> shutdown abort;
    SQL> startup mount;

    SQL> select file#,CHECKPOINT_CHANGE#, LAST_CHANGE#,status from v$datafile;

    
    

    FILE# CHECKPOINT_CHANGE# LAST_CHANGE# STATUS
    ---------- ------------------ ------------ -------
    1 35628024 SYSTEM
    2 35628024 ONLINE
    3 35628024 ONLINE
    4 35628024 ONLINE
    5 35628024 ONLINE
    6 35628024 ONLINE
    7 35628024 ONLINE
    8 35628024 ONLINE
    9 35628024 ONLINE

    
    

    9 rows selected.

    
    

    SQL> select NAME,CHECKPOINT_CHANGE# from v$database;

    
    

    NAME CHECKPOINT_CHANGE#
    --------- ------------------
    TT11204 35628024

    SQL> alter database open;

    观察DB alert.log

    二、实例恢复日志DB Alert.log截取

     

    Thu Dec 31 15:41:15 2020
    alter database open
    Beginning crash recovery of 1 threads
    parallel recovery started with 2 processes
    Started redo scan
    Completed redo scan
    read 76 KB redo, 40 data blocks need recovery
    Started redo application at
    Thread 1: logseq 2945, block 14845
    Recovery of Online Redo Log: Thread 1 Group 3 Seq 2945 Reading mem 0
    Mem# 0: /11.2.0.4/app/oracle/tt/redo03.log
    Completed redo application of 0.04MB
    Completed crash recovery at
    Thread 1: logseq 2945, block 14998, scn 35648364
    40 data blocks read, 40 data blocks written, 76 redo k-bytes read

  • 相关阅读:
    VS2005 中关于“LC.EXE已退出,代码为 1”的错误解决方法。
    由于目标机器积极拒绝,无法连接。
    What is Android?
    利用批处理文件和任务计划实现Oracle数据库的自动备份
    就差了一点点....
    由Login.aspx引发编译器错误的解决方法
    都是补丁惹的祸...
    终于结束了
    GIS当然可以很酷
    rar.exe命令行参数与示例
  • 原文地址:https://www.cnblogs.com/lvcha001/p/14343932.html
Copyright © 2020-2023  润新知