zoukankan      html  css  js  c++  java
  • OCA读书笔记(14)

    备份恢复概念

    如何判断数据库的一致性

    在mount状态下,oracle如何判断数据库的一致性

    scn:system change number,它是数据库时钟

    如何查询当前系统的scn:

    select current_scn from v$database;

    几个特殊的scn,在控制文件和数据文件头

    控制文件中有三个:

    1. 系统检查点scn:

    select checkpoint_change# from v$database;

    CHECKPOINT_CHANGE#
    ------------------
    1077050

    2. 控制文件中为每个数据文件记录一个检查点scn:

    ORA10G>select file#,checkpoint_change# from v$datafile;

    FILE# CHECKPOINT_CHANGE#
    ---------- ------------------
    1 1077050
    2 1077050

    3. 控制文件中还要记录每个文件的终止scn,数据库在正常运行的时候,它是无穷大的,只有在一致性关闭数据库
    的时候才不为空:

    select file#,last_change# from v$datafile;

    FILE# LAST_CHANGE#
    ---------- ------------
    1
    2

    shutdown immediate
    startup mount

    ORA10G>select file#,last_change# from v$datafile;

    FILE# LAST_CHANGE#
    ---------- ------------
    1 1079328
    2 1079328

    为什么一致性关闭就不为空?

    因为一致性关闭的时候执行了检查点,检查点通知数据库写进程写脏块,然后更新控制文件和数据文件头的检查点scn

    如果last_change#不为空,说明数据库是一致性关闭的,再次打开的时候不需要进行实例恢复

    在数据文件的文件头也记录了数据文件的检查点scn,我们一般称它为启动scn

    ORA10G>select file#,checkpoint_change# from v$datafile_header;

    FILE# CHECKPOINT_CHANGE#
    ---------- ------------------
    1 1079329
    2 1079329

    oracle通过以上的检查点scn来判断是否要进行恢复

    数据库在mount状态下,当发出open命令的时候,他要安装下列顺序检查一致性:

    首先启动scn与控制文件中记录的数据文件的检查点scn进行比较,如果一致,则继续,否则要执行恢复:

    shutdown immediate
    startup mount

    ORA10G>select file#,checkpoint_change# from v$datafile_header;

    FILE# CHECKPOINT_CHANGE#
    ---------- ------------------
    1 1080854
    2 1080854

    ORA10G>select file#,checkpoint_change# from v$datafile;

    FILE# CHECKPOINT_CHANGE#
    ---------- ------------------
    1 1080854
    2 1080854

    如一致,则比较启动scn和终止scn:

    ORA10G>select file#,checkpoint_change# from v$datafile_header;

    FILE# CHECKPOINT_CHANGE#
    ---------- ------------------
    1 1080854
    2 1080854

    ORA10G>select file#,last_change# from v$datafile;

    FILE# LAST_CHANGE#
    ---------- ------------
    1 1080854
    2 1080854

    如果一致,数据库就可以打开了,否则要就行恢复


    select file#,checkpoint_change#,last_change# from v$datafile; -- 来自控制文件
    select file#,checkpoint_change# from v$datafile_header; -- 来自数据文件文件头

    shutdown immediate;
    startup mount;

    数据文件last_change# -- A
    数据文件checkpoint_change# -- B

    数据文件头checkpoint_change# -- C
    C与A不同,需要实例恢复。
    C与B不同,则需要介质恢复。
    需要介质恢复时,决定使用哪个日志文件?比较C与日志文件中的first_change#
    select group#, sequence#, first_change# from v$log;

    MTTR(实例恢复)
    show parameter fast_start_mttr_target;

    介质故障
    常规备份
    多路复用控制文件

    多路复用日志文件组
    sqlplus / as sysdba;
    select group#,member from v$logfile;

    alter database add logfile member '/u01/app/oracle/oradata/orcl/redo0102.log' to group 1;
    select group#,member from v$logfile;

    alter database drop logfile member '/u01/app/oracle/oradata/orcl/redo0102.log';
    select group#,member from v$logfile;

    备份归档重做日志文件

    快速闪回区
    强烈建议配置快速闪回区
    存储空间与数据文件分开

    启动归档模式
    archive log list;
    shutdown immediate;
    starup mount;
    alter database archivelog;
    alter database open;
    mkdir -p /u01/app/oracle/archivelog
    alter system set log_archive_dest_1='location=/u01/app/oracle/archivelog';

    alter system switch logfile;

  • 相关阅读:
    不务正业系列-浅谈《过气堡垒》,一个RTS玩家的视角
    [LeetCode] 54. Spiral Matrix
    [LeetCode] 40. Combination Sum II
    138. Copy List with Random Pointer
    310. Minimum Height Trees
    4. Median of Two Sorted Arrays
    153. Find Minimum in Rotated Sorted Array
    33. Search in Rotated Sorted Array
    35. Search Insert Position
    278. First Bad Version
  • 原文地址:https://www.cnblogs.com/thlzhf/p/3382524.html
Copyright © 2011-2022 走看看