本文环境
软件镜像:
dm8_20201112_x86_rh7_64_ent_8.1.1.144.iso
dm8数据库配置文件dm.ini
1.文件介绍
每创建一个 DM 数据库,就会自动生成 dm.ini 文件。dm.ini 是 DM 数据库启动所必须的配置文件,通过配置该文件可以设置 DM 数据库服务器的各种功能和性能选项。可以根据系统环境配置,对该文件中参数进行相关调整,从而达到环境资源利用最大化。
2.文件路径
该配置文件一般位于实例数据存放目录下
本文环境在于/dm8/data/DAMENG/dm.ini
如果实在不确定,可以使用命令查看服务,只要服务正常启动会显示服务所在目录路径
ps -ef |grep dmserver
vim /dm8/data/DAMENG/dm.ini
3.参数介绍
如果安装有达梦数据库软件,那么在软件安装目录下的doc目录,有DM8系统管理员手册,我们打开后,搜索“数据库服务配置”,就可以看到文档对dm.ini包含的所有参数的详细介绍。
参数属性分为三种:静态、动态和手动。静态,可以被动态修改,修改后重启服务器才能生效。
动态,可以被动态修改,修改后即时生效。动态参数又分为会话级和系统级两种。会话级参数被修改后,新参数值只会影响新创建的会话,之前创建的会话不受影响;系统级参数的修改则会影响所有的会话。
手动,不能被动态修改,必须手动修改 dm.ini 参数文件,然后重启才能生效。
动态修改是指 DBA 用户可以在数据库服务器运行期间,通过调用系统过程SP_SET_PARA_VALUE()、SP_SET_PARA_DOUBLE_VALUE()、SP_SET_PARA_STRING_VALUE()
对参数值进行修改。
4.部分参数调整
数据库中可以通过查询视图V$DM_INI来查询相关参数值例如要查看参数WORKER_THREADS的值可以这样查询
SELECT * FROM V$DM_INI WHERE PARA_NAME='WORKER_THREADS';
这里主要以8核CPU,16G物理内存环境为例,讲解一下几个重要参数的调整,参数的详细介绍请参考DM8系统管理员手册
-
WORKER_THREADS(静态参数,工作线程的数目)
根据环境的CPU物理核心数来配置,比如8核,则调整语句为
SP_SET_PARA_VALUE(2,'WORKER_THREADS',8);
数据库重启后生效 -
TASK_THREADS(静态参数,任务线程个数)
如果环境的CPU物理核心数为64核及以下,则该参数一般设置为4,如果是64核以上,则可以调整为16。调整语句为SP_SET_PARA_VALUE(2,'TASK_THREADS',4);
数据库重启后生效 -
IO_THR_GROUPS(静态参数,非 WINDOWS 下有效,表示 IO 线程组个数)
一般设置为TASK_THREADS的一半。调整语句为SP_SET_PARA_VALUE(2,'IO_THR_GROUPS',2);
数据库重启后生效 -
MAX_OS_MEMORY(静态参数,DM 服务器能使用的最大内存占操作系统物理内存与虚拟内存总和的百分比,有效值范围(40~100))
一般默认设置为100%使用,如果受环境限制,可以往下调整。调整语句为SP_SET_PARA_VALUE(2,'MAX_OS_MEMORY',100);
数据库重启后生效 -
MEMORY_POOL(静态参数,共享内存池大小,以M为单位。共享内存池是由DM管理的内存)
DM可以分配管理的内存,一般建议设置为物理内存的6%取整,调整语句为SP_SET_PARA_VALUE(2,'MEMORY_POOL',1000);
数据库重启后生效 -
MEMORY_TARGET(动态,系统级,共享内存池在扩充到此大小以上后,空闲时收缩回此指定大小,以M为单位)
一般设置为MEMORY_POOL的两倍即可。调整语句为SP_SET_PARA_VALUE(2,'MEMORY_TARGET',2000);
数据库重启后生效 -
BUFFER(静态参数,系统缓冲区大小,以 M 为单位。推荐值:系统缓冲区大小为可用物理内存的 60%~80%)
如果环境可用物理内存不是很充裕,可用往下到40%取整。
MAX_BUFFER参数和BUFFER参数保持一致即可。
调整语句为SP_SET_PARA_VALUE(2,'BUFFER',6553);SP_SET_PARA_VALUE(2,'MAX_BUFFER',6553);
数据库重启后生效 -
HJ_BUF_GLOBAL_SIZE(动态,系统级参数,HASH 连接操作符的数据总缓存大小(>=HJ_BUF_SIZE))
一般建议设置为物理内存的6%取整;
HJ_BUF_SIZE(单个 HASH 连接操作符的数据总缓存大小,小于HJ_BUF_GLOBAL_SIZE)
一般建议设置为200。调整语句为SP_SET_PARA_VALUE(2,'HJ_BUF_GLOBAL_SIZE',1000);SP_SET_PARA_VALUE(2,'HJ_BUF_SIZE',200);
数据库重启后生效 -
MAX_SESSIONS(静态参数,系统允许同时连接的最大数,同时还受到LICENSE 的限制,取二者中较小的值)
开发版数据库调整此参数无效,一般正式环境调整为1000即可,调整语句为SP_SET_PARA_VALUE(2,'MAX_SESSIONS',1000);
数据库重启后生效
MAX_SESSION_STATEMENT(单个会话上允许同时打开的语句句柄最大数) 一般环境设置为20000即可
SP_SET_PARA_VALUE(2,'MAX_SESSION_STATEMENT',20000);
数据库重启后生效 -
COMPATIBLE_MODE(静态参数,是否兼容其他数据库模式。0:不兼容,1:兼容 SQL92 标准,2:部分兼容 ORACLE,3:部分兼容 MS SQL SERVER,4:部分兼容 MYSQL,5:兼容 DM6,6:部分兼容 TERADATA)
可以根据需要调整此参数,如果不需要兼容性不调整保持默认即可SP_SET_PARA_VALUE(2,'COMPATIBLE_MODE',2);
数据库重启后生效 -
TEMP_SIZE(静态参数,默认创建的临时表空间大小,以 M 为单位)
TEMP_SPACE_LIMIT(静态参数,临时表空间大小上限,以 M 为单位。0 表示不限制临时表空间大小,调整后值必须大于TEMP_SIZE)
一般建议可以设TEMP_SIZE为1024,TEMP_SIZE_LIMIT为10240,可以根据环境存储大小往下调整。调整语句SP_SET_PARA_VALUE(2,'TEMP_SIZE',1024);SP_SET_PARA_VALUE(2,'TEMP_SPACE_LIMIT',10240);
数据库重启后生效
以上参数配置介绍来源于DM8系统管理员手册,参数大小调整建议仅供学习参考。