• DM-INI参数配置


    配置文件

    前言

    每创建一个DM数据库,就会自动生成 dm.ini 文件。dm.ini 是 DM 数据库启动所必须的配置文件,通过配置该文件可以设置 DM 数据库服务器的各种功能和性能选项,当然还有其它参数配置文件,归档参数文件dmarch.ini及配置集群的参数文件dmmal.ini、dmwatcher.ini、dmmpp.ini、dmtimer.ini、dmwmon.ini。达梦数据库的参数文件dm.ini是必须的,其它均可选择配置。且除了实例参数文件dm.ini外,其它参数文件按照部署规范配置好后,基本上无须做任何修改。

    主要配置文件

    说明

    参数文件 说明
    dm.ini 达梦数据库启动所必须的配置文件,通过配置该文件可以设置达梦数据库服务器的各种功能和性能选项。达梦数据库是否读参数文件dmarch.ini、dmmal.ini、dmmpp.ini、dmtimer.ini,均有dm.ini参数文件中的相应参数(MAL_INI、ARCH_INI、MPP_INI、TIMER_INI)来控制。
    dmarch.ini 用于配置REDO日志的本地归档和远程归档。所谓远程归档指这台实例的REDO日志发送到集群中另外一个实例(该实例为这台实例的备机)。
    dmmal.ini 达梦数据库集群间MAL系统的配置文件,通过该文件配置达梦集群中每个实例的IP地址、端口号等信息。
    dmwatcher.ini 守护进程的配置文件。
    dmmpp.ini MPP集群的配置文件。
    dmtimer.ini 异步备机的配置文件。
    dmmonitor.ini 数据守护系统的监视器配置文件。

    查看各项功能的配置文件

    select name from sysobjects where name like 'V$DM_%INI';
    

    参数分类

    实例参数文件dm.ini中参数主要分为两类:功能配置参数、性能调优参数。

    参数名 说明
    CTL_PATH 必配,实例控制文件路径。
    SYSTEM_PATH 必配,系统表空间路径。
    TEMP_PATH 必配,临时表空间路径。
    BAK_PATH 必配,数据库备份默认路径。
    INSTANCE_NAME 必配,数据库实例名称。
    ARCH_INI 选配项,REDO本地归档开关,如不配置,无法进行数据库备份。
    MAL_INI 集群必配项,MAL通信开关。
    DW_PORT 集群必配项,数据库和守护进程的TCP通信端口。
    TIMER_INI 选配,异步备机开关,配置异步备机必须要配置该项。
    MPP_INI 选配,MPP集群开关,配置MPP集群必须要配置该项。

    其它参数均为选配项,包括功能参数、性能调优参数、监控参数等。

    参数属性

    INI 参数属性分为静态、动态和手动三种类型,分别对应动态性能视图V$PARAMETER中的TYPE类型IN FILE、READ ONLY、SYS和SESSION。

    1. 静态参数(IN FILE):只能修改 ini 文件,修改后重启DB才能生效,为系统级参数,生效后会影响所有的会话
    2. 动态参数(SYS和SESSION):ini 文件和内存同时可修改,修改后即时生效。
      • 动态参数又分为会话级和系统级。
        • SESSION: 会话级参数被修改后,新参数值只会影响新创建的会话
        • SYS: 系统级参数修改后,将会影响所有的会话
    3. 手动参数(READ ONLY):在运行过程中不能被修改,必须手动修改 dm.ini 参数文件,然后重启才能生效。

    参数查看

    查看方式

    1. 直接查看参数文件,如:dm.ini

    2. 通过动态性能视图v$PARAMETER,该视图显示ini参数和dminit建库参数的类型及参数值信息(当前会话值、系统值及dm.ini文件中的值)

      select top 5 name, type, value, sys_value, file_value from v$parameter;
      

      其中,VALUE表示当前会话值,SYS_VALUE表示系统值,FILE_VALUE表示dm.ini文件中值。

    3. 通过动态性能视图v$DM_INI,该视图可以查看所有ini参数和dminit建库参数信息。同时,也提供了分类的视图查看相关的配置,如:V$DM_ARCH_INI

      select top 5 para_name, para_value from v$dm_ini;
      
      select * from V$DM_ARCH_INI;
      
    4. 通过相应函数查看参数值,其中SCOPE参数值为1:表示获取INI 文件中配置参数的值,值为2:表示获取内存中配置参数的值

      • SF_GET_PARA_VALUE(scope int, paraname varchar(256)) :配置参数的值类型为数值类型时使用该函数来获取当前值
      • SF_GET_PARA_DOUBLE_VALUE(scope int, paraname varchar(8187)):配置参数的值类型为浮点型时使用该函数来获取当前值
      • SF_GET_PARA_STRING_VALUE (scope int, paraname varchar(8187)):配置参数的值为字符串类型时用该系统函数来获取当前值
      • SF_GET_SESSION_PARA_VALUE (paraname varchar(8187)):获得当前会话的某个会话级 INI 参数的值

    调整配置参数

    修改参数的方式

    1. 直接编辑参数配置文件,如:dm.ini
    2. 通过SQL语句修改参数
    3. 通过系统函数修改参数

    通过SQL语句修改参数

    修改全局参数

    通过ALTER SYSTEM语法修改静态或动态(系统级、会话级)参数值,使修改之后的参数值能够在全局范围内起作用。

    语法
    ALTER SYSTEM SET '<参数名称>'=<参数值> [DEFERRED] [MEMORY|BOTH|SPFILE];
    
    • DEFERRED: 只适用于动态参数。指定DEFERRED时,参数值延迟生效,对当前session不生效,只对新创建的会话生效;缺省为立即生效,即对当前会话和新创建的会话都生效。
    示例
    -- 设置当前系统动态、会话级参数 SORT_BUF_SIZE 参数值为 200
    ALTER SYSTEM SET 'SORT_BUF_SIZE'=200 DEFERRED MEMORY;
    
    修改会话级参数

    通过 ALTER SESSION 语法修改动态会话级参数(即 TYPE 为 SESSION 的参数),使修改之后的 INI 参数值只对当前会话起作用,不会影响其他会话或系统的 INI 参数值。

    语法
    ALTER SESSION SET '<参数名称>'=<参数值> [PURGE];
    
    • PURGE: 是否清理执行计划
    示例
    -- 设置当前会话的 HAGR_HASH_SIZE 参数值为 2000000
    ALTER SESSION SET 'HAGR_HASH_SIZE'=2000000;
    

    通过系统函数修改参数

    在 DM 数据库中,很多参数都是动态的,会自动响应各种负载,但是 DBA 仍然可以调用系统过程来改变 DM 实例的运行参数,从而获得更佳的性能体验。DBA 可以在 DM 数据库运行过程中执行 SF_GET_PARA_VALUE 、 SF_GET_PARA_DOUBLE_VALUE 和SF_GET_PARA_STRING_VALUE 这三个函数来获取系统的当前配置参数,并且可以使用SP_SET_PARA_VALUE 和 SP_SET_PARA_DOUBLE_VALUE 过程来修改静态/动态配置参数。

    查看配置参数当前值

    其中,函数的SCOPE参数值为1:表示获取INI 文件中配置参数的值,值为2:表示获取内存中配置参数的值

    • SF_GET_PARA_VALUE(scope int, paraname varchar(256)) :配置参数的值类型为数值类型时,使用该函数来获取当前值

      -- 获得 dm.ini 文件中 BUFFER 参数值
      SELECT SF_GET_PARA_VALUE (1, 'BUFFER');
      
    • SF_GET_PARA_DOUBLE_VALUE(scope int, paraname varchar(8187)):配置参数的值类型为浮点型时,使用该函数来获取当前值

    • SF_GET_PARA_STRING_VALUE (scope int, paraname varchar(8187)):配置参数的值为字符串类型时,用该系统函数来获取当前值

    • SF_GET_SESSION_PARA_VALUE (paraname varchar(8187)):获得整数类型的会话级 INI 参数的值

    • SF_GET_SESSION_PARA_DOUBLE_VALUE (paraname varchar(8187) ):获得浮点型的会话级 INI 参数的值

    修改参数当前值

    SCOPE参数为1表示在内存和INI文件中都修改参数值,此时只能修改动态的配置参数。参数为 2 表示只在 INI 文件中修改配置参数,此时可用来修改静态配置参数和动态配置参数。只有具有 DBA 角色的用户才有权限调用SP_SET_PARA_VALUE,SP_SET_PARA_DOUBLE_VALUE和SF_SET_SYSTEM_PARA_VALUE。

    1. SP_SET_PARA_VALUE (scope int, paraname varchar(256), value int64):该过程用于修改整型静态配置参数和动态配置参数
    2. SP_SET_PARA_DOUBLE_VALUE (scope int, paraname varchar(8187),value double):该过程用于修改浮点型静态配置参数和动态配置参数
    3. SF_SET_SYSTEM_PARA_VALUE (paraname varchar(256), value int64doublevarchar(256),deferred int, scope int64)
      该过程用于修改 int、double、varchar 类型的静态配置参数或动态配置参数。当DEFERRED 参数值为 0 表示当前 session 修改的参数立即生效;值为 1 表示当前 session不生效,后续再生效,默认为 0。
    4. SP_SET_PARA_STRING_VALUE (scope int, ini_param_name varchar(256) ,value varchar(8187)):设置字符串型参数值
    5. SF_SET_SESSION_PARA_VALUE (paraname varchar(8187), value bigint):设置某个会话级 INI 参数的值,设置的参数值只对本会话有效
    6. SP_RESET_SESSION_PARA_VALUE (paraname varchar(8187)):重置某个会话级INI参数的值,使得这个INI参数的值和系统INI参数的值保持一致
    7. SF_SET_SQL_LOG (svrlog int,svrmsk varchar(1000)):设置服务器日志相关 INI 参数 SVR_LOG 和 SQL_TRACE_MASK
    示例
    -- 查看参数值
    select SF_GET_PARA_VALUE(2,'SORT_BUF_SIZE');
    
    select para_name,para_value from v$dm_ini where para_name='SORT_BUF_SIZE';
    
    -- 设置当前系统动态、会话级参数 SORT_BUF_SIZE 参数值为 200,延迟生效
    ALTER SYSTEM SET 'SORT_BUF_SIZE' =200 DEFERRED MEMORY;
    
    -- 将 dm.ini 文件中 HFS_CACHE_SIZE 参数值设置为 320
    SP_SET_PARA_VALUE (1,'HFS_CACHE_SIZE',320);
    select SF_GET_PARA_VALUE(2,'HFS_CACHE_SIZE');
    
  • 相关阅读:
    第二期冲刺站立会议个人博客6(2016/5/30)
    第二期冲刺站立会议个人博客5(2016/5/29)
    “进度条”博客——第十三周
    第二次冲刺个人工作总结07
    第二次冲刺个人工作总结06
    第十三周学习进度
    第二次冲刺个人工作总结05
    第二次冲刺个人工作总结04
    课堂实验--贴吧找水王问题续
    第二次冲刺个人工作总结03
  • 原文地址:https://www.cnblogs.com/binliubiao/p/15417902.html
Copyright © 2020-2023  润新知