达梦数据库如何修改参数

本文介绍了达梦数据库参数的分类及其修改方法。参数按属性分为手动、静态和动态三类,可通过SQL命令、达梦数据库提供的过程函数或直接编辑dm.ini文件进行修改。文章详细解释了每种修改方式的操作步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工作中总会遇到修改参数这种问题,那么达梦数据库的参数该如何修改呢,我们先了解下达梦数据库都有什么种类的参数。

SQL> select para_type,count(*) from v$dm_ini group by para_type order by 2;

行号       PARA_TYPE COUNT(*)            
---------- --------- --------------------
1          READ ONLY 98
2          IN FILE   201
3          SYS       213
4          SESSION   248

已用时间: 5.171(毫秒). 执行号:1202.

参数属性分为三种:手动、静态和动态。

手动,不能被动态修改,必须手动修改 dm.ini 参数文件,然后重启才能生效。
静态,可以被动态修改,修改后重启服务器才能生效。
动态,可以被动态修改,修改后即时生效。动态参数又分为会话级和系统级两种。会话
级参数被修改后,新参数值只会影响当前会话和新创建的会话,之前创建的会话不受影响;
系统级参数的修改则会影响所有的会话。

参数若设置值与参数类型不兼容,则参数实际取值为默认值;若设置值小于参数取值范围的最小值,则实际取值为最小值;若设置值大于参数取值范围的最大值,则实际取值为最大值。

那么修改的方式有三种

第一种:

使用alter system/session set方式修改

ALTER SYSTEM SET '<参数名称>' =<参数值> [DEFERRED] [MEMORY|BOTH|SPFILE];

both:表示修改内存和参数文件中的值;
spfile修改参数文件;
memory修改内存;

对于静态参数只能使用spfile,对于动态参数皆可使用。

SQL> select para_name,para_type,para_value from v$dm_ini where para_name='ENABLE_LOCAL_OSAUTH';

行号       PARA_NAME           PARA_TYPE PARA_VALUE
---------- ------------------- --------- ----------
1          ENABLE_LOCAL_OSAUTH READ ONLY 1

已用时间: 4.291(毫秒). 执行号:1230.

SQL> alter system set 'ENABLE_LOCAL_OSAUTH' = 0 spfile;
DMSQL 过程已成功完成
已用时间: 1.299(毫秒). 执行号:1231.

SQL> alter system set 'ENABLE_LOCAL_OSAUTH' = 0 memory;
alter system set 'ENABLE_LOCAL_OSAUTH' = 0 memory;
[-839]:不能修改静态配置参数的内存值.
已用时间: 0.527(毫秒). 执行号:0.

SQL> alter system set 'ENABLE_LOCAL_OSAUTH' = 0 both; 
alter system set 'ENABLE_LOCAL_OSAUTH' = 0 both;
[-839]:不能修改静态配置参数的内存值.
已用时间: 0.435(毫秒). 执行号:0.

SQL> select para_name,para_type,para_value from v$dm_ini where para_name='MTAB_MEM_SIZE';

行号       PARA_NAME     PARA_TYPE PARA_VALUE
---------- ------------- --------- ----------
1          MTAB_MEM_SIZE SYS       8

已用时间: 7.405(毫秒). 执行号:1205.

SQL> alter system set 'MTAB_MEM_SIZE' = 12 both;
DMSQL 过程已成功完成
已用时间: 5.165(毫秒). 执行号:1206.
SQL> alter system set 'MTAB_MEM_SIZE' = 8 spfile;
DMSQL 过程已成功完成
已用时间: 4.049(毫秒). 执行号:1207.
SQL> alter system set 'MTAB_MEM_SIZE' = 12 memory;
DMSQL 过程已成功完成
已用时间: 3.741(毫秒). 执行号:1208.

第二种:

使用达梦数据库过程函数进行修改

达梦数据库提供SF_GET_PARA_VALUE、SF_GET_PARA_DOUBLE_VALUE和SF_GET_PARA_STRING_VALUE这三个函数来获取系统的当前配置参数,提供SP_SET_PARA_VALUE和SP_SET_PARA_DOUBLE_VALUE过程来修改静态/动态配置参数。

1 、SF_GET_PARA_VALUE (scope int, paraname varchar(256))
配置参数的值类型为数值类型时使用该函数来获取当前值。SCOPE 参数为1表示获取INI文件中配置参数的值,为2表示获取内存中配置参数的值。
2 、SF_GET_PARA_DOUBLE_VALUE(scope int, paraname varchar(8187))
配置参数的值类型为浮点型时使用该函数来获取当前值。SCOPE参数为1表示获取INI文件中配置参数的值,为2表示获取内存中配置参数的值。
3 、SF_GET_PARA_STRING_VALUE(scope int, paraname varchar(8187))
配置参数的值为字符串类型时用该系统函数来获取当前值。SCOPE 参数为1表示获取INI 文件中配置参数的值,为2表示获取内存中配置参数的值。
4 、SP_SET_PARA_VALUE (scope int, paraname varchar(256), value int64)
该过程用于修改整型静态配置参数和动态配置参数。SCOPE参数为1表示在内存和INI文件中都修改参数值,此时只能修改动态的配置参数。参数为2表示只在 INI 文件中修改配置参数,此时可用来修改静态配置参数和动态配置参数。当SCOPE等于1,试图修改静态配置参数时服务器会返回错误信息。只有具有 DBA 角色的用户才有权限调用 SP_SET_PARA_VALUE。
5 、SP_SET_PARA_DOUBLE_VALUE(scope int,paraname varchar(8187), alue double)
该过程用于修改浮点型静态配置参数和动态配置参数。SCOPE 参数为 1表示在内存和INI文件中都修改参数值,此时只能修改动态的配置参数。参数为2表示只在INI文件中修改配置参数,此时可用来修改静态配置参数和动态配置参数。当SCOPE等于1,试图修改静态配置参数时服务器会返回错误信息。只有具有 DBA 角色的用户才有权限调用SP_SET_PARA_DOUBLE_VALUE。
6 、SF_SET_SYSTEM_PARA_VALUE(paraname varchar(256),value int64\double\varchar(256),deferred int,scope int64)
该过程用于修改系统整型、 double、 varchar 的静态配置参数或动态配置参数。DEFERRED 参数,为0表示当前session修改的参数立即生效,为1表示当前 session不生效,后续再生效,默认为0。 SCOPE 参数为1表示在内存和INI文件中都修改参数值,此时只能修改动态的配置参数。参数为2表示只在INI文件中修改配置参数,此时可用来修改静态配置参数和动态配置参数。只有具有DBA角色的用户才有权限调用SF_SET_SYSTEM_PARA_VALUE。
7 、SF_SET_SESSION_PARA_VALUE (paraname varchar(8187), value bigint)
设置某个会话级 INI 参数的值,设置的参数值只对本会话有效。
8 、SP_RESET_SESSION_PARA_VALUE (paraname varchar(8187))
重置某个会话级 INI 参数的值,使得这个 INI 参数的值和系统 INI 参数的值保持一致。
9 、SF_GET_SESSION_PARA_VALUE (paraname varchar(8187))
获得当前会话的某个会话级 INI 参数的值。
第三种:

编辑dm.ini文件

这个非常简单,不过只有重启才可以生效。

社区地址:https://eco.dameng.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值