62.Oracle的实例恢复(instance recovery)和介质恢复(media recovery)

发布时间 2023-07-13 23:16:13作者: 站在巨人的肩上Z

Oracle数据库中的SCN说明: 

 4种SCN:

  • 系统检查点(System Checkpoint) SCN
  • 数据文件检查点(Datafile Checkpoint) SCN
  • 结束SCN(Stop SCN)
  • 开始SCN(Start SCN)

  1)system checkpoint scn

     -- 当checkpoing完成后,oracle将system Checkpoint Scn号存放在控制文件中,可以通过sql语句查询:

     -- select checkpoint_change# from v$database;

  2) datafile checkpoint scn

    --当checkpoint完成后,Oracle将datafile checkpoint scn存放在控制文件中。可以通过下面的sql语句查询所有数据数据文件的datafile checkpoint SCN.

    -- select name,checkpoint_change# from v$datafile;

  3) Start scn

    -- Oracle将start scn存放数据文件中。这个scn用于检查数据库启动过程是否需要做media recovery。可以通过如下sql语句查询

    -- select name,checkpoint_change# from v$datafile_header;

  4) Stop scn

    -- Oracle将stop scn存放在控制文件中。这个scn号用于检查数据库启动过程是否需要做instance recovery,可以通过sql语句查询

    -- select name,last_change# from v$datafile;

    -- 在数据库正常运行的情况下,对可读写的online数据文件,该scn号为Null

  

  在数据库启动过程中,当System Checkpoint SCN、Datafile Checkpoint SCN和Start SCN都相同时,数据库可以正常启动,不需要做media recovery。三者当中有一个不同时,则需要做media recovery.如果在启动的过程中,End SCN为NULL,则需要做instance recovery。Oracle在启动过程中首先检查是否需要media recovery,然后再检查是否需要instance recovery。

参考:https://cloud.tencent.com/developer/article/2154091