在达梦数据库中,参数类型分为三种,分别为手动参数(READ ONLY类型)、静态参数(IN FILE类型)和动态参数(SYS和SESSION类型),修改参数前首先要弄清楚这个参数是什么类型的!
READ ONLY:手动参数,在数据库运行时不能修改
IN FILE:静态参数,修改配置文件,重启实例服务生效。
SYS和SESSION:动态参数可在 配置文件(dm.ini)和内存同时修改,修改后即时生效
通过以下命令可以查看一个参数是什么类型的
select para_name,para_value,para_type from v$dm_ini where para_name like '%参数名称%'
比如要查看BUFFER参数的类型和参数值
修改方法1:直接打开配置文件(dm.ini)修改
这种方法只能修改在配置文件中能找到的参数,如果是隐藏参数,则无法修改
修改参数之后重启数据库生效
修改方法2:在控制台修改参数
使用manager工具可以很容易的修改比较常规的参数。图形化工具真的很好用!
修改方法3:使用过程函数
SP_SET_PARA_VALUES(SCOPE,PARA_NAME,PARA_VALUE);
此函数用于修改数值类型的参数值
其中scope代表着参数的类型
1:动态参数 2:静态参数
SP_SET_PARA_DOUBLE_VALUES(SCOPE,PARA_NAME,PARA_VALUE);
此函数用于修改浮点类型的参数值
SP_SET_PARA_STRING_VALUES(SCOPE,PARA_NAME,PARA_VALUE);
此函数用于修改字符串类型的参数值
修改方法4:使用 alter...set....
此方法需要直接指定both/spfile/memory参数
ALTER SYSTEM/SESSION SET '<参数名称>' =<参数值> [DEFERRED] [MEMORY|BOTH|SPFILE];
memory:只改变当前实例运行,重新启动数据库后失效
both:同时修改内存,当前会话,配置文件中的参数值
spfile: 对参数的修改记录在服务器初始化参数文件中,修改后的参数在下次启动DB时生效。
举例:
修改TEMP表空间大小
alter system set 'TEMP_SIZE'=64 spfile;