一 前言
我们知道,每创建一个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 | 数据守护系统的监视器配置文件。 |
三 参数分类
实例参数文件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节。
四 参数属性
参数属性分为三种:静态、动态和手动。
1.静态,可以被动态修改,修改后重启服务器才能生效。
2.动态,可以被动态修改,修改后即时生效。动态参数又分为会话级和系统级两种。会话级参数被修改后,新参数值只会影响新创建的会话,之前创建的会话不受影响;系统级参数的修改则会影响所有的会话。
3.手动,不能被动态修改,必须手动修改 dm.ini 参数文件,然后重启才能生效。
这三种参数分别对应动态性能视图V$PARAMETER中的TYPE类型IN FILE、READ ONLY、SYS和SESSION,其中:
READ ONLY:手动参数,表示服务器运行过程中不可修改;
IN FILE:静态参数,只可修改 ini 文件;
SYS 和 SESSION:动态参数,ini 文件和内存同时可修改,其中,SYS 系统级参数;SESSION 会话级参数
五 参数查看
5.1 参数文件的查看三种方式:
1.直接查看参数文件dm.ini;
2.通过动态性能视图v$PARAMETER,该视图显示ini参数和dminit建库参数的类型及参数值信息(当前会话值、系统值及dm.ini文件中的值);
其中VALUE表示当前会话值:
SQL> select top 5 name,value from v$parameter;
行号 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.
说明:
如果针对某个参数进行查询,也可以通过相应函数进行,主要有如下几个函数:
- 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 - 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 - 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 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 500000
六 参数修改
达梦数据库对于参数的修改,有三种方式:
1.直接修改参数配置文件dm.ini;
2.通过SQL语句修改;
3.通过相应函数修改;
直接修改配置文件不再说明,下面主要针对后两种情况进行阐述:6.1 通过SQL语句修改参数
6.1.1 全局设置
用户可以通过ALTER SYSTEM语法修改静态或动态(系统级、会话级)参数值,使修改之后的参数值能够在全局范围内起作用。对于静态参数,只有指定SPFILE情况下,才能修改。
语法格式
ALTER SYSTEM SET ‘ <参数名称> ‘ =<参数值> [DEFERRED] [MEMORY|BOTH|SPFILE];
参数- <参数名称> 指静态、动态(系统级、会话级)INI参数名字。
- <参数值> 指设置该INI参数的值。
- [DEFERRED] 只适用于动态参数。指定DEFERRED,参数值延迟生效,对当前session不生效,只对新创建的会话生效;缺省为立即生效,对当前会话和新创建的会话都生效。
- [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];
参数 - <参数名称> 指动态会话级INI参数名字;
- <参数值> 指设置该INI参数的相应值;
- [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);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_INI22 rows got
已用时间: 32.248(毫秒). 执行号:42.
版权声明:本文为博主原创文章,未经博主允许不得转载。
DM7 达梦 参数文件 dm.ini






