修改数据库配置参数

        每创建一个 DM 数据库,就会自动生成 dm.ini 文件。dm.ini 是 DM 数据库启动所必须的配置文件,通过配置该文件可以设置 DM 数据库服务器的各种功能和性能选项,主要的配置模块包括:控制文件相关、实例名、内存相关、线程相关等。

        当 dm.ini 中的某参数值设置为非法值时,若设置值与参数类型不兼容,则参数实际取值为默认值;若设置值小于参数取值范围的最小值,则实际取值为最小值;若设置值大于参数取值范围的最大值,则实际取值为最大值。参数属性分为三种:手动、静态和动态。

环境:DM8

程序安装路径:/home/dmdba/dm/dmdbms

数据初始化路径:/home/dmdba/dm/dbdata/dmdata

一、手动

手动(READ ONLY),不能被动态修改,必须手动修改 dm.ini 参数文件,然后重启数据库才能生效。即只能在服务器通过vim命令修改dm.ini配置文件。

比如“控制文件路径”参数

操作系统查看:

[dmdba@db4 DAMENG]$ cd /home/dmdba/dm/dbdata/dmdata/DAMENG

[dmdba@db4 DAMENG]$ cat dm.ini | grep CTL_PATH

客户端查询:

select para_name,para_value,para_type from v$dm_ini where para_name='CTL_PATH'

二、静态

静态(IN FILE),可以被动态修改,修改后重启服务器才能生效。

既可以在服务器通过vim修改dm.ini配置文件,也可以通过调用系统过程函数修改,但是修改之后,重启数据库生效。

比如“最大连接数”参数

操作系统查看:

[dmdba@db4 DAMENG]$ cd /home/dmdba/dm/dbdata/dmdata/DAMENG

[dmdba@db4 DAMENG]$ cat dm.ini | grep MAX_SESSIONS

客户端查询:

select para_name,para_value,para_type from v$dm_ini where para_name='MAX_SESSIONS'

调用系统函数修改,将最大连接数从500调整到1000:

sp_set_para_value(2,'MAX_SESSIONS',1000); --2表示静态参数

再次查看,即操作系统中配置文件参数已经从500变成了1000,但是内存中依旧还是500,需要重启数据库生效。

重启验证:

[dmdba@db4 DAMENG]$ /home/dmdba/dm/dmdbms/bin/dmserverd restart

内存中的值变成了1000

三、动态

动态,可以被动态修改,修改后即时生效(这里的修改指的调用函数去修改,不是直接编辑文件修改)。

动态参数又分为会话级(SESSION)和系统级(SYS)两种。会话级参数被修改后,新参数值只会影响当前会话和新创建的会话,之前创建的会话不受影响;系统级参数的修改则会影响所有的会话。

比如“语句句柄最大数”参数

操作系统查看:

[dmdba@db4 DAMENG]$ cat dm.ini | grep MAX_SESSION_STATEMENT

客户端查询:

select para_name,para_value,para_type from v$dm_ini where para_name='MAX_SESSION_STATEMENT'

调用系统函数修改,将句柄数从1000调整为20000

sp_set_para_value(1,'MAX_SESSION_STATEMENT',20000); --1表示动态参数

再次查看,即操作系统中配置文件参数已经从1000变成了20000,内存中也变成了20000。

四、一些常用的参数修改

select * from v$dm_ini where para_name='XX'

##1.修改密码策略

sp_set_para_value(1,'PWD_POLICY',7); --即时生效

PWD_MIN_LEN =9

PWD_POLICY =7 

数据库默认的参数设的值是2,即密码长度不小于9。

0:无策略

1:禁止与用户名相同

2:口令长度不小于9

4:至少包含一个大写字母(A-Z)

8:至少包含一个数字(0-9)

16:至少包含一个标点符号(英文输入法状态下,除“和空格外的所有符号)

7= 1+2+4 ,即禁止与用户名相同口令长度不小于9至少包含一个大写字母(A-Z)

##2.修改数据库兼容模式

sp_set_para_value(2,'COMPATIBLE_MODE',2); --兼容ORACLE,重启数据库生效 

修改静态参数:只会修改参数文件中的值,重启数据库生效

是否兼容其他数据库模式。

0:不兼容,

1:兼容SQL92 标准,

2:部分兼容ORACLE,

3:部分兼容MS SQL SERVER

4:部分兼容MYSQL,

5:兼容DM6,

6:部分兼容TERADATA,

7:部分兼容POSTGRES修改数据库的兼容模式为兼容ORACLE 数据库。

##3.修改数据库状态

sp_set_oguid 453331; --设置集群组ID

sp_set_para_value(1,'alter_mode_status',1); --允许手动修改数据库状态

alter database standby; --数据库改成备

sp_set_para_value(1,'alter_mode_status',0);--禁止手动修改数据库状态

##4.修改句柄数

sp_set_para_value(1,'MAX_SESSION_STATEMENT',20000);--即时生效

##5.修改HASH表空间

SP_SET_PARA_VALUE(1,'HJ_BUF_GLOBAL_SIZE',10000);--即时生效

这个值是HASH 连接操作符的数据总缓存大小,默认是500M,如果hash连接的数据超过了这个值,就会报hash空间不足。一个sql设计的表比较多,数据量比较大时,容易发生。

##6.修改数据库最大连接数

sp_set_para_value(2,'MAX_SESSIONS',1000); --重启数据库生效

PS:当前设置连接数上限为1000,基本满足业务需求,如出现连接数不够情况建议从业务方连接排查,业务程序异常导致则不建议修改参数,业务程序正常就是随着使用人员增多,则可以适当调大。

客户端查询哪个ip占用链接最多

select clnt_ip,count(1) from v$sessions group by clnt_ip order by count(1) desc

服务器查询哪个ip占用连接最多

netstat -tuanl |grep 5236 | awk -F'[: ]+' '{print $6}' | sort | uniq -c

仅供参考,如有不足,欢迎斧正。

更多资讯请上达梦技术社区了解: https://eco.dameng.com/

  • 19
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值