zoukankan      html  css  js  c++  java
  • 3.3 配置其他归档参数

    当数据库处于ARCHIVELOG 模式时,当进行日志切换时,后台进程ARCH 会自动生成归档日志。从ORACLE DATABASE 10G 开始,默认情况下,归档日志会存放在恢复区所对应的目录(对应于初始化参数db_recovery_file_dest),并且会按照特定格式生成归档日志文件名。为了改变归档日志的位置和名称格式,必须改变相应的初始化参数。

    1. 配置归档日志的名称格式

    初始化数据log_archive_format 用于指定归档日志的文件名格式,当设置该初始化参数时,可以指定以下匹配符:

    • %s:日志序列号
    • %S:日志序列号(带有前导0)
    • %t:重做线程编号
    • %T:重做线程编号(带有前导0)
    • %a:活动ID号
    • %d:数据库ID号
    • %r:RESETLOGS的ID值

    从ORACLE DATABASE 10G 开始,当配置归档日志的名称格式时,匹配符%s、%t 和 %r是必需的。因为初始化参数log_archive_format 是静态参数,所以在修改之后必须重新启动数据库。如果归档日志被存放在快速恢复区,那么归档日志文件名不会采用log_archive_format 文件名格式。

    SQL> alter system set log_archive_format='%s_%t_%r.log' scope=spfile;

    系统已更改。

    SQL> shutdown
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> startup
    ORACLE 例程已经启动。

    Total System Global Area  167772160 bytes
    Fixed Size                  1247900 bytes
    Variable Size              75498852 bytes
    Database Buffers           88080384 bytes
    Redo Buffers                2945024 bytes
    数据库装载完毕。
    数据库已经打开。

    2. 使用log_archive_dest_n 配置归档位置

    初始化参数log_archive_dest_n 用于指定多个归档位置,其中n是1和10之间的整数。通过使用该参数,不仅可以配置本地归档位置,还可以配置远程归档位置。

    如果既要在主节点(主数据库所在机器)上生成归档日志,又要将归档日志传递到备用节点(备用数据库所在机器),那么必须使用参数log_archive_dest_n 配置归档位置。

    • log_archive_dest_n 、log_archive_dest、log_archive_duplex_dest 的区别:
    • log_archive_dest_n 可以配置本地归档位置和远程归档位置,log_archive_dest 和 log_arvhive_duplex_dest 只以配置本地归档位置。
    • log_archive_dest_n 可以配置多达10 个归档位置,log_archive_dest 和 log_archive_duplex_dest 最多只能配置两个归档位置。
    • log_archive_dest_n 不能与 log_archive_dest 和 log_archive_duplex_dest 同时使用。

    当使用 log_archive_dest_n 配置本地归档位置时,需要使用 LOCATION 选项指定本地目录;当配置远程归档位置时,需要使用 SERVICE 选项指定到备用数据库的网络服务名。

    SQL> alter system set log_archive_dest_1='location=c:\demo\archive';

    系统已更改。

    SQL> alter system set log_archive_dest_2='location=d:\demo\archive';

    系统已更改。

    SQL> alter system set log_archive_dest_3='service=orcl';

    系统已更改。

    上面语句配置了两个本地归档位置(LOCATION 选项)和一个远程归档位置(SERVICE 选项)。当执行日志切换时,会在主节点上生成两份相同的归档日志(互为镜像),并且会传递一份归档日志到备用节点。

    3. 使用 log_archive_dest_n 的其他常用选项

    当使用初始化参数 log_archive_dest_n 配置归档位置时,可以在归档位置上指定OPTIONAL 或 MANDATORY 选项。当指定 MANDATORY 选项时,还可以设置 REOPEN 属性。

    OPTIONAL:该选项是默认选项。当使用该选项时,无论归档是否成功,都可以覆盖重做日志。

    MANDATORY:该选项用于强制归档。当使用该选项时,只有在归档成功之后,重做日志才能被覆盖。

    REOPEN:该属性用于指定重新归档的时间间隔,默认值是300秒(REOPEN 属性必须跟在 MANDATORY 选项后)。

    SQL> alter system set log_archive_dest_1='location=c:\demo\archive optional';

    系统已更改。

    SQL> alter system set log_archive_dest_2='location=d:\demo\archive mandatory reopen=400';

    系统已更改。

    4. 使用 log_archive_dest_state_n 控制归档位置

    如果归档位置所对应的磁盘剩余空间不足或出现损坏,那么归档到该位置将出现失败。为了解决磁盘问题,可能需要临时禁用相应的归档位置。通过使用初始化参数 log_archive_dest_state_n (n=1,2......10),DBA 可以控制归档位置的可用性。其值可为:ENABLE(激活);DEFER(禁用)。

    SQL> alter system set log_archive_dest_state_1=enable;

    系统已更改。

    SQL> alter system set log_archive_dest_state_2=enable;

    系统已更改。

    SQL> alter system set log_archive_dest_state_3=defer;

    系统已更改。

    5. 使用 log_archive_max_processes 控制归档进程

    初始化参数 log_archive_max_processes 用于控制归档进程个数。当数据库为 ARCHIVELOG 模式时,默认情况下 ORACLE 会自己启动两个归档进程。

    SQL> alter system set log_archive_max_processes=3;

    系统已更改。

    6. 使用 log_archive_min_succeed_dest 控制本地归档最小成功个数

    SQL> alter system set log_archive_min_succeed_dest=2;

    系统已更改。

    当执行上面语句后,如果在本地生成的归档日志少于两份,那么重做日志将不能被覆盖。

    7. 使用 log_archive_dest 配置归档位置

    如果不使用备用数据库,那么只需要将归档日志存放在本地目录。配置本地一至两个归档位置可以使用初始化参数 log_archive_dest 和 log_archive_duplex_dest,其中第一个参数用于指定第一个归档位置,第二个参数用于指定第二个归档位置(log_archive_dest 和 log_arvhive_duplex_dest 是为了与早期兼容而保留的,并且它们不能与 log_archive_dest_n 同时使用)。

    SQL> alter system set log_archive_dest='d:\demo\archive1';
    alter system set log_archive_dest='d:\demo\archive1'
    *
    第 1 行出现错误:
    ORA-02097: 无法修改参数, 因为指定的值无效
    ORA-16018: 无法将 LOG_ARCHIVE_DEST 与 LOG_ARCHIVE_DEST_n 或
    DB_RECOVERY_FILE_DEST 一起使用

    SQL> alter system set log_archive_duplex_dest='d:\demo\archive2';
    alter system set log_archive_duplex_dest='d:\demo\archive2'
    *
    第 1 行出现错误:
    ORA-02097: 无法修改参数, 因为指定的值无效
    ORA-16018: 无法将 LOG_ARCHIVE_DUPLEX_DEST 与 LOG_ARCHIVE_DEST_n 或
    DB_RECOVERY_FILE_DEST 一起使用

    E-MAIL:yiwuya@hotmail.com
    MSN:yiwuya@hotmail.com
    QQ:304899972
    纺织软件
  • 相关阅读:
    Notepad++如何对比文件 Notepad++对比两个文件代码方法
    如何识别图片中的文字
    如何用DOS命令查看占用某端口的程序及PID号
    java使用POI获取sheet、行数、列数
    程序中的.htaccess文件是做什么的
    阿里云服务器配置https(总结)
    legend3---19、要更多的从服务器端控制元素的显示和隐藏,而不要是页面端
    Laravel 中 Session 的使用问题(dd()导致laravel中session取值问题)
    legend3---lamp.sh常用操作
    阿里云服务器发送邮件:Connection could not be established with host smtp.qq.com [Connection timed out #110]
  • 原文地址:https://www.cnblogs.com/yiwuya/p/1286623.html
Copyright © 2011-2022 走看看