• Oracle数据库体系结构(6)数据库归档重做日志文件管理


    归档重做日志文件的概念和选择

    Oracle数据库能够把已经写满了的重做日志文件保存到一个或多个指定的离线位置,这种保存的文件为归档重做日志文件。通常情况下一个归档重做日志时一个被LGWR写满的重做日志文件组的一个成员的拷贝,

    包含所有的重做记录及日志序列号等信息。

    如果一个数据库应用系统不能承受任何的数据丢失,即使是介质损坏,也需要数据完全恢复,那么必须将数据库运行在归档模式。

    1.非归档模式

       此时数据库系统不会对被LGWR进程写满了的重做日志文件进行归档操作,所有的历史重做日志信息都将被覆盖而不复存在。因此,非归档模式下日志切换的前提条件是已写满的重做日志文件在被覆盖之前,其所有的重做记录所对应的

    事务的操作结果全部写入数据库的数据文件中与归档无关。

       在非归档模式下,数据库只能从市里崩溃中恢复,而无法进行介质的恢复。

    2.归档模式

       归档模式下切换日志的前提条件是已写满的重做日志文件在被覆盖之前。其所有重做记录所对应的事务操作结果全部写入数据文件中,而且归档进程要完成对该重做日志文件的归档操作。

      主要具有的优点有:

        (1)由于在归档模式下,数据库中所有的实力重做日志文件全部被保存,因此在数据库出现故障,即使是介质故障的情况下,利用数据库备份、归档重做日志文件盒联机重做日志文件也可以恢复数据库。

        (2)在归档模式下,可以在数据运行时进行备份,也可以利用该备份恢复数据库.

         (3)  在主数据库与备用数据库配置中,利用归档日志文件信息,可以保证备用数据库与主数据库达到相同的状态。

    归档控制

         1.改变数据归档模式

            可以通过archive log list命令查看当前数据库的归档设置情况

    SQL> archive log list;
    数据库日志模式            存档模式
    自动存档             启用
    存档终点            USE_DB_RECOVERY_FILE_DEST
    最早的联机日志序列     1
    下一个存档日志序列   2
    当前日志序列           2
    

      将数据库从非归档模式转到归档模式

          (1)关闭数据库

                  shutdown

           (2) 备份数据库

          (3)设置归档的目的地

          (4)将数据库到加载状态

          (5)改变数据库的归档模式

          (6)打开数据库

    3.手动归档

          alter database archivelog manual

    4.调整归档进程数量。

          打开数据库是,启动归档进程的初始化数量的参数LOG_ARCHIVE_MAX_PROCESSES指定,默认为4.通常不需要修改该参数。

    该参数为动态参数,可以使用 alter system set LOG_ARCHIVE_MAX_PROCESSES=6;

    SQL> show parameter LOG_ARCHIVE_MAX_PROCESSES;
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ----------
    log_archive_max_processes            integer     4
    SQL> alter system  set LOG_ARCHIVE_MAX_PROCESSES=6;
    系统已更改。
    SQL> alter system  set LOG_ARCHIVE_MAX_PROCESSES=4;
    系统已更改。
    

    设置归档目的地

         1.设置初始化参数指定归档目的地

             可以通过设置LOG_ARCHIVE_DEST设置一个本地归档目的地,也可以通过初始化参数设置LOG_ARCHIVE_DEST_n设置两个或多个归档目的地。

         2.设置LOG_ARCHIVE_DEST_n

             (1) 初始化参数LOG_ARCHIVE_DEST_n最多能设置31个归档目的地,即n为1-31,其中1-10可以用来指定本地或远程的归档目的地,11-31只能用于指定远程的归档目的地。   

    SQL> alter system set LOG_ARCHIVE_DEST_6='LOCATION=d:DISK4ARCHIVE';
    
    系统已更改。
    

         (2)设置初始化参数LOG_ARCHIVE_FORMAT,指定归档文件命名方式

    SQL> show parameter log_archive_format
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_format                   string      ARC%S_%R.%T
    SQL> alter system set log_archive_format = 'arch_%t_%s_%r.arc' scope=spfile;
    
    系统已更改。
    

      %s 表示日志序列号

          %t 表示线程好

         %r  表示重做日志的ID

    大写的标志不足3为左侧添0

    使用LOG_ARCHIVE_DEST_n参数的时候,可以指定OPTIONAL(默认 或者MANDATORY)选项。

         下面说明:OPTIONAL选项:该选项是默认选项,表示可选的归档目的地。使用该选项,无论在该归档目的地上是否成功归档,都可以覆盖重做日志文件,数据库正常运行。

                        MANDATORY:该选项正好相反,重做日志必须归档成功,如果失败,重做日志将不能覆盖,数据库将被挂起。

                       REOPNE:该属性用于指定重新归档的时间间隔,默认值为300.

    3.设置初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST

          如果设置主/次两个本地归档目的地,可以使用初始化参数LOG_ARCHIVE_DEST设置主目的地,LOG_ARCHIVE_DUPLEX_DEST设置次目的地。

          步骤

          (1)查询数据字典视图 V$ARCHIVE_DEST,查看初始化参数LOG_ARCHIVE_DEST_n是否已经设置,如果设置了需要清空

                      

    SQL> select dest_name,destination from v$archive_dest;
     
    DEST_NAME                                                                        DESTINATION
    -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
    LOG_ARCHIVE_DEST_1                                                               
    LOG_ARCHIVE_DEST_2                                                               
    LOG_ARCHIVE_DEST_3                                                               
    LOG_ARCHIVE_DEST_4                                                               
    LOG_ARCHIVE_DEST_5                                                               
    ..........                                                            
     
    31 rows selected
    

      全部清空

        alter system set LOG_ARCHIVE_DEST_1 =‘’;

       (2)设置初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST.指定两个主次目的地。

       (3)设置初始化参数LOG_ARCHIVE_FORMAT

    4.归档目的地的状态

    SQL> select dest_name,status from v$archive_dest;
     
    DEST_NAME                                                                        STATUS
    -------------------------------------------------------------------------------- ---------
    LOG_ARCHIVE_DEST_1                                                               INACTIVE
    LOG_ARCHIVE_DEST_2                                                               INACTIVE
    LOG_ARCHIVE_DEST_3                                                               INACTIVE
    LOG_ARCHIVE_DEST_4                                                               INACTIVE
    

      通过参数LOG_ARCHIVE_DEST_STATE_n可以控制指定归档目的地的状态。

    该参数取值为ENABLE:b标识归档目的地可以使用

                      DEFER:该归档目的地暂不能使用

                     ALTERNATE:为备用目的地。

    5.设置备用归档目的地。

        如果住归档目的地不可用,可以自动切换到备用归档目的地,以免数据库无法归档而挂起。需要在主目的地使用NOREOPEN或者REOPEN=0属性。

    查询归档重做日志文件信息

    1.执行archive log list

    SQL> archive log list
    数据库日志模式            存档模式
    自动存档             启用
    存档终点            d:DISK4ARCHIVE
    最早的联机日志序列     1
    下一个存档日志序列   2
    当前日志序列           2
    

     2.查询动态性能视图

    V$ARCHVIED_LOG

    V$ARCHVIE_DEST

    V$LOG_HISTORY

    V$DATABASE

    V$ARCHIVE_PROCESSES

  • 相关阅读:
    有return的情况下try_catch_finally的执行顺序
    java异常处理之try_catch_finally
    乔布简历
    策略模式--经典详细分析
    观察者模式(Observer Pattern)(二):HeadFirst中的气象站的实现
    luogu2444 [POI2000]病毒
    bzoj3172 luogu3966 [TJOI2013]单词
    luogu3808 luogu3796 AC自动机(简单版) AC自动机(加强版)
    vijos1459 车展
    poj2985 The k-th Largest Group
  • 原文地址:https://www.cnblogs.com/evencao/p/3169743.html
Copyright © 2020-2023  润新知