签到成功

知道了

CNDBA社区CNDBA社区

Linux平台达梦数据库V7之配置文件详解

2020-05-27 12:07 6134 0 原创 DM7
作者: semiter

一 前言

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

二 主要配置文件说明

参数文件 说明
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 数据守护系统的监视器配置文件。

三 参数分类

实例参数文件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集群必须要配置该项。

其它参数均为选配项,包括功能参数、性能调优参数、监控参数等,具体参数参考《DM7系统管理员手册》2.1.1节。http://www.cndba.cn/semiter/article/4176

四 参数属性

参数属性分为三种:静态、动态和手动。
1.静态,可以被动态修改,修改后重启服务器才能生效。
2.动态,可以被动态修改,修改后即时生效。动态参数又分为会话级和系统级两种。会话级参数被修改后,新参数值只会影响新创建的会话,之前创建的会话不受影响;系统级参数的修改则会影响所有的会话。
3.手动,不能被动态修改,必须手动修改 dm.ini 参数文件,然后重启才能生效。
这三种参数分别对应动态性能视图V$PARAMETER中的TYPE类型IN FILE、READ ONLY、SYS和SESSION,其中:
READ ONLY:手动参数,表示服务器运行过程中不可修改;
IN FILE:静态参数,只可修改 ini 文件;
SYS 和 SESSION:动态参数,ini 文件和内存同时可修改,其中,SYS 系统级参数;SESSION 会话级参数

http://www.cndba.cn/semiter/article/4176

五 参数查看

5.1 参数文件的查看三种方式:

1.直接查看参数文件dm.ini;
2.通过动态性能视图v$PARAMETER,该视图显示ini参数和dminit建库参数的类型及参数值信息(当前会话值、系统值及dm.ini文件中的值);
其中VALUE表示当前会话值:
SQL> select top 5 name,value from v$parameter;http://www.cndba.cn/semiter/article/4176

行号     name         VALUE
---------- ------------ --------------------------------------
1          CTL_PATH     /usr/appsoft/dmdbms/data/IESDB/dm.ctl
2          CTL_BAK_PATH /usr/appsoft/dmdbms/data/IESDB/ctl_bak
3          CTL_BAK_NUM  10
4          SYSTEM_PATH  /usr/appsoft/dmdbms/data/IESDB
5          CONFIG_PATH  /usr/appsoft/dmdbms/data/IESDB

已用时间: 5.953(毫秒). 执行号:10.

SYS_VALUE代表系统值:
SQL> select top 5 name,sys_value from v$parameter;

行号     name         sys_value
---------- ------------ --------------------------------------
1          CTL_PATH     /usr/appsoft/dmdbms/data/IESDB/dm.ctl
2          CTL_BAK_PATH /usr/appsoft/dmdbms/data/IESDB/ctl_bak
3          CTL_BAK_NUM  10
4          SYSTEM_PATH  /usr/appsoft/dmdbms/data/IESDB
5          CONFIG_PATH  /usr/appsoft/dmdbms/data/IESDB

已用时间: 5.243(毫秒). 执行号:11.

FILE_VALUE表示dm.ini文件中值:
SQL> select top 5 name,file_value from v$parameter;

行号     name         file_value
---------- ------------ --------------------------------------
1          CTL_PATH     /usr/appsoft/dmdbms/data/IESDB/dm.ctl
2          CTL_BAK_PATH /usr/appsoft/dmdbms/data/IESDB/ctl_bak
3          CTL_BAK_NUM  10
4          SYSTEM_PATH  /usr/appsoft/dmdbms/data/IESDB
5          CONFIG_PATH  /usr/appsoft/dmdbms/data/IESDB

已用时间: 4.944(毫秒). 执行号:12.

通过上面的输出可以看出,正常情况下,三者的输出是一致的。
3.通过动态性能视图v$DM_INI,该视图可以查看所有ini参数和dminit建库参数信息。
SQL> select top 5 para_name,para_value from v$dm_ini;

行号     para_name    para_value
---------- ------------ --------------------------------------
1          CTL_PATH     /usr/appsoft/dmdbms/data/IESDB/dm.ctl
2          CTL_BAK_PATH /usr/appsoft/dmdbms/data/IESDB/ctl_bak
3          CTL_BAK_NUM  10
4          SYSTEM_PATH  /usr/appsoft/dmdbms/data/IESDB
5          CONFIG_PATH  /usr/appsoft/dmdbms/data/IESDB

已用时间: 6.852(毫秒). 执行号:13.

说明:
如果针对某个参数进行查询,也可以通过相应函数进行,主要有如下几个函数:

  1. SF_GET_PARA_VALUE
    定义:
    int
    SF_GET_PARA_VALUE (
    scope int,
    ini_param_name varchar(256)
    )
    功能说明:
    返回 dm.ini 文件中非浮点和字符串类型的参数值
    参数说明:
    scope: 取值为 1、2 。 1 表示从 dm.ini 文件中读取;2 表示从内存中读取;
    ini_param_name:dm.ini 文件中的参数名
    返回值:
    当前 INI 文件中对应的参数值
    举例说明:
    获得 dm.ini 文件中 BUFFER 参数值
    SELECT SF_GET_PARA_VALUE (1, ‘BUFFER’);
    行号 SF_GET_PARA_VALUE(1,’BUFFER’)
    1 1000
  2. SF_GET_PARA_DOUBLE_VALUE
    定义:
    double
    SF_GET_PARA_DOUBLE_VALUE (
    scope int,
    ini_param_name varchar(256)
    )
    功能说明:
    返回dm.ini文件中参数中浮点型的参数值
    参数说明:
    scope:取值为1,2 。1表示从dm.ini文件中读取;2表示从内存中读取;
    ini_param_name:dm.ini文件中的参数名。
    返回值:
    当前INI文件中对应的参数值
    举例说明:
    获得dm.ini中SEL_RATE_EQU参数值
    SELECT SF_GET_PARA_DOUBLE_VALUE (1, ‘CKPT_FLUSH_RATE’);
    SELECT SF_GET_PARA_DOUBLE_VALUE (2, ‘CKPT_FLUSH_RATE’);
    行号 SF_GET_PARA_DOUBLE_VALUE(1,’CKPT_FLUSH_RATE’)
    1 5.000000000000000E+00
  3. F_GET_PARA_STRING_VALUE
    定义:
    char*
    SF_GET_PARA_STRING_VALUE (
    scope int,
    ini_param_name varchar(256)
    )
    功能说明:
    返回 dm.ini 文件中字符串类型的参数值
    参数说明:
    scope: 取值为1,2 。 1表示从dm.ini文件中读取;2表示从内存中读取;
    ini_param_name:dm.ini文件中的参数名
    返回值:
    当前 INI 文件中对应的参数值
    举例说明:
    获得dm.ini文件中TEMP_PATH参数值
    SELECT SF_GET_PARA_STRING_VALUE (1, ‘TEMP_PATH’);
    行号 SF_GET_PARA_STRING_VALUE(1,’TEMP_PATH’)
    1 /usr/appsoft/dmdbms/data/IESDB
  4. SF_GET_SESSION_PARA_VALUE
    定义:
    int
    SF_GET_SESSION_PARA_VALUE (
    paraname varchar(8187) )
    功能说明:
    获得会话级 INI 参数的值。
    参数说明:
    paraname:会话级 INI 参数的参数名。
    返回值:
    会话级 INI 参数的值
    举例说明:
    获取会话级 INI 参数 JOIN_HASH_SIZE 的值:
    SELECT SF_GET_SESSION_PARA_VALUE (‘JOIN_HASH_SIZE’);
    行号 SF_GET_SESSION_PARA_VALUE(‘JOIN_HASH_SIZE’)


    1 500000http://www.cndba.cn/semiter/article/4176

    六 参数修改

    达梦数据库对于参数的修改,有三种方式:
    1.直接修改参数配置文件dm.ini;
    2.通过SQL语句修改;
    3.通过相应函数修改;
    直接修改配置文件不再说明,下面主要针对后两种情况进行阐述:

    http://www.cndba.cn/semiter/article/4176

    6.1 通过SQL语句修改参数

    6.1.1 全局设置

    用户可以通过ALTER SYSTEM语法修改静态或动态(系统级、会话级)参数值,使修改之后的参数值能够在全局范围内起作用。对于静态参数,只有指定SPFILE情况下,才能修改。
    语法格式
    ALTER SYSTEM SET ‘ <参数名称> ‘ =<参数值> [DEFERRED] [MEMORY|BOTH|SPFILE];
    参数

    1. <参数名称> 指静态、动态(系统级、会话级)INI参数名字。
    2. <参数值> 指设置该INI参数的值。
    3. [DEFERRED] 只适用于动态参数。指定DEFERRED,参数值延迟生效,对当前session不生效,只对新创建的会话生效;缺省为立即生效,对当前会话和新创建的会话都生效。
    4. [MEMORY|BOTH|SPFILE] 指设置INI参数修改的位置。其中,MEMORY只对内存中的INI值做修改;SPFILE则只对INI文件中的INI值做修改;BOTH则内存和INI文件都做修改。默认情况下,为MEMORY。对于静态参数,只能指定SPFILE。
      语句功能
      设置系统级的 INI 参数值。
      举例说明
      例 设置当前系统动态、会话级参数 SORT_BUF_SIZE 参数值为 200,要求延迟生效,对当前的 session 不生效,对后面创建的会话才生效。并且只修改内存。
      ALTER SYSTEM SET ‘SORT_BUF_SIZE’ =200 DEFERRED MEMORY;
      例 设置静态参数 MTAB_MEM_SIZE 参数值为 1200。
      ALTER SYSTEM SET ‘MTAB_MEM_SIZE’ =1200 spfile;

      6.1.2 会话级别设置

      用户可以通过 ALTER SESSION 语法修改动态会话级参数(即 TYPE 为 SESSION 的参数),使修改之后的 INI 参数值只对当前会话起作用,不会影响其他会话或系统的 INI 参数值。
      语法格式
      ALTER SESSION SET ‘ <参数名称> ‘ =<参数值> [PURGE];
      参数
    5. <参数名称> 指动态会话级INI参数名字;
    6. <参数值> 指设置该INI参数的相应值;
    7. [PURGE] 指是否清理执行计划。
      语句功能
      设置动态、会话级的 INI 参数值。
      使用说明
      设置后的值只对当前会话有效。当包含 PURGE 选项时会清除服务器保存的所有执行计划。
      举例说明
      例 设置当前会话的 HAGR_HASH_SIZE 参数值为 2000000。
      ALTER SESSION SET ‘HAGR_HASH_SIZE’ =2000000;

      6.2 通过函数修改单个参数值

      6.2.1 SP_SET_PARA_VALUE

      定义:
      void
      SP_SET_PARA_VALUE (
      scope int,
      ini_param_name varchar(256)
      value bigint
      )
      功能说明:
      设置 dm.ini 文件中非浮点和字符串类型的参数值
      参数说明:
      scope:取值为 1,2 。1 表示 dm.ini 文件和内存参数都修改,不需要重启服务器;2 表示只修改 dm.ini 文件,服务器重启后生效。ini_param_name:dm.ini 文件中的参数名。
      value:设置的值。
      返回值:

      举例说明:
      将 dm.ini 文件中 HFS_CACHE_SIZE 参数值设置为 320
      SP_SET_PARA_VALUE (1,’HFS_CACHE_SIZE’,320);
      DMSQL executed successfully
      used time: 10.289(ms). Execute id is 227.
      SQL> select SF_GET_PARA_VALUE(2,’HFS_CACHE_SIZE’);
      LINEID SF_GET_PARA_VALUE(2,’HFS_CACHE_SIZE’)

    1 320
    used time: 1.243(ms). Execute id is 228.

    6.2.2 SP_SET_PARA_DOUBLE_VALUE

    定义:
    void
    SP_SET_PARA_DOUBLE_VALUE (
    scope int,
    ini_param_name varchar(256),
    value double
    )
    功能说明:
    设置dm.ini参数中浮点型的参数值
    参数说明:
    scope:取值为 1,2。1 表示 dm.ini 文件和内存参数都修改,不需要重启服务器;2 表示只可修改 dm.ini 文件,服务器重启后生效。
    ini_param_name:dm.ini文件中的参数名。
    value:设置的值。
    返回值:

    举例说明:
    将dm.ini文件中SEL_RATE_EQU参数值设置为0.3
    SP_SET_PARA_DOUBLE_VALUE(1, ‘SEL_RATE_EQU’, 0.3);
    DMSQL executed successfully
    used time: 10.040(ms). Execute id is 231.

    6.2.3 SP_SET_PARA_STRING_VALUE

    定义:
    void
    SP_SET_PARA_STRING_VALUE (
    scope int,
    ini_param_name varchar(256) ,
    value varchar(8187)
    )
    功能说明:
    设置 dm.ini 文件中的字符串型参数值
    参数说明:
    scope:取值为 1,2 。1 表示 dm.ini 文件和内存参数都修改,不需要重启服务器;2 表示只修改 dm.ini 文件,服务器重启后生效。
    ini_param_name:dm.ini 文件中的参数名。
    value:设置的字符串的值。
    返回值:

    举例说明:
    将 dm.ini 文件中 SQL_TRACE_MAS 参数值设置为 1
    SP_SET_PARA_STRING_VALUE(1, ‘SQL_TRACE_MASK’,’1’);
    DMSQL executed successfully
    used time: 8.278(ms). Execute id is 233.

    6.2.4 SF_SET_SESSION_PARA_VALUE

    定义:
    void
    SF_SET_SESSION_PARA_VALUE (
    paraname varchar(8187),
    value bigint
    )
    功能说明:
    设置会话级 INI 参数的值
    参数说明:
    paraname: 会话级 INI 参数的参数名
    value:要设置的新值
    返回值:

    举例说明:
    设置会话级 ini 参数 JOIN_HASH_SIZE 的值为 2000:
    SELECT SF_SET_SESSION_PARA_VALUE (‘JOIN_HASH_SIZE’, 2000);
    DMSQL executed successfully
    used time: 1.170(ms). Execute id is 234.

    6.2.5 SP_RESET_SESSION_PARA_VALUE

    定义:
    void
    SP_RESET_SESSION_PARA_VALUE (
    paraname varchar(8187) )
    功能说明:
    重置会话级 INI 参数的值,使得参数的值和系统级一致。
    参数说明:
    paraname:会话级 INI 参数的参数名。
    返回值:

    举例说明:
    重置会话级 INI 参数 JOIN_HASH_SIZE 的值:
    SP_RESET_SESSION_PARA_VALUE (‘JOIN_HASH_SIZE’);
    DMSQL executed successfully
    used time: 1.089(ms). Execute id is 235.

    6.2.6 SF_SET_SYSTEM_PARA_VALUE

    定义:
    void
    SF_SET_SYSTEM_PARA_VALUE (
    paraname varchar(256),
    value bigint/double/varchar(256),
    deferred int,
    scope int)
    功能说明:
    修改系统整型、double、varchar 的静态配置参数或动态配置参数。
    参数说明:
    paraname:ini 参数的参数名。
    value:要设置的新值。
    deferred:是否立即生效。为 0 表示当前 session 修改的参数立即生效,为 1 表示当前 session 不生效,后续再生效,默认为 0。
    scope:取值为 0、1、2 。0 表示修改内存中的参数值,1 表示修改内存和INI 文件中参数值,0 和 1 都只能修改动态的配置参数。2 表示修改 INI 文件中参数,此时可用来修改静态配置参数和动态配置参数。
    返回值:

    举例说明:
    修改 INI 参数 JOIN_HASH_SIZE 的值:
    SELECT SF_SET_SYSTEM_PARA_VALUE (‘JOIN_HASH_SIZE’,50,1,1);http://www.cndba.cn/semiter/article/4176

    http://www.cndba.cn/semiter/article/4176

    6.2.7 SF_SET_SQL_LOG

    定义:
    INT
    SF_SET_SQL_LOG (
    svrlog int,
    svrmsk varchar(1000)
    )
    功能说明:
    设置服务器日志相关 INI 参数
    参数说明:
    svrlog:INI 参数 SVR_LOG 的设置值
    svrmsk:INI 参数 SQL_TRACE_MASK 的设置值
    返回值:
    是否成功
    举例说明:
    设置服务器日志相关 INI 参数
    SELECT SF_SET_SQL_LOG(1, ‘3:5:7’);
    LINEID SF_SET_SQL_LOG(1,’3:5:7’)


    1 1
    used time: 15.798(ms). Execute id is 239.

    七 其它配置文件

    达梦数据库除了系统配置文件dm.ini,还存在其它各项功能对应的配置文件,每个配置文件的详细信息,可以自行查看官方文档,具体如下:
    SQL> select name from sysobjects where name like ‘V$DM_%INI’;

    行号 name


    1 V$DM_INI
    2 V$DM_ARCH_INI
    3 V$DM_MAL_INI
    4 V$DM_REP_RPS_INST_NAME_INI
    5 V$DM_REP_MASTER_INFO_INI
    6 V$DM_REP_SLAVE_INFO_INI
    7 V$DM_REP_SLAVE_TAB_MAP_INI
    8 V$DM_REP_SLAVE_SRC_COL_INFO_INI
    9 V$DM_LLOG_INFO_INI
    10 V$DM_LLOG_TAB_MAP_INI
    11 V$DM_TIMER_INI

    行号 name


    12 V$DM_ARCH_INI
    13 V$DM_MAL_INI
    14 V$DM_REP_RPS_INST_NAME_INI
    15 V$DM_REP_MASTER_INFO_INI
    16 V$DM_REP_SLAVE_INFO_INI
    17 V$DM_REP_SLAVE_TAB_MAP_INI
    18 V$DM_REP_SLAVE_SRC_COL_INFO_INI
    19 V$DM_LLOG_INFO_INI
    20 V$DM_LLOG_TAB_MAP_INI
    21 V$DM_TIMER_INI
    22 V$DM_INI

    22 rows gothttp://www.cndba.cn/semiter/article/4176

    已用时间: 32.248(毫秒). 执行号:42.

    http://www.cndba.cn/semiter/article/4176

版权声明:本文为博主原创文章,未经博主允许不得转载。

DM7 达梦 参数文件 dm.ini

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
semiter

semiter

关注
  • 20
    原创
  • 0
    翻译
  • 0
    转载
  • 2
    评论
  • 访问:79029次
  • 积分:110
  • 等级:初级会员
  • 排名:第28名
精华文章
    热门文章
      Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

      AI QQ群