目录
1 简要介绍
每创建一个 DM 数据库,就会自动生成 dm.ini 文件。 dm.ini 是 DM 数据库启动所必须的配置文件,通过配置该文件可以设置 DM 数据库服务器的各种功能和性能选项,主要的配置内容见"DM 系统管理员手册.pdf"
当 dm.ini 中的某参数值设置为非法值时, 若设置值与参数类型不兼容,则参数实际取值为默认值;若设置值小于参数取值范围的最小值,则实际取值为最小值;若设置值大于参数取值范围的最大值,则实际取值为最大值。
参数属性分为三种:静态、动态和手动。 静态, 可以被动态修改, 修改后重启服务器才能生效。
动态, 可以被动态修改, 修改后即时生效。 动态参数又分为会话级和系统级两种。会话级参数被修改后, 新参数值只会影响新创建的会话, 之前创建的会话不受影响;系统级参数的修改则会影响所有的会话。
手动, 不能被动态修改, 必须手动修改 dm.ini 参数文件,然后重启才能生效。
动态修改是指 DBA 用户可以在数据库服务器运行期间,通过调用系统过程SP_SET_PARA_VALUE()、 SP_SET_PARA_DOUBLE_VALUE()和SP_SET_PARA_STRING_VALUE()对参数值进行修改。
2 各种参数修改方式
2.1, temp表空间大小修改示例
SQL>
select * from v$dm_ini where para_name='TEMP_SIZE';
select SF_GET_PARA_VALUE(1,'TEMP_SIZE');
ALTER SYSTEM SET 'TEMP_SIZE' =256 spfile;
2.2, 相关视图
1)V$PARAMETER:显示 ini 参数和 dminit 建库参数的类型及参数值信息(当前会话值、系统值及 dm.ini 文件中的值)。
2)v$dm_ini:所有 ini 参数和 dminit 建库参数信息。 但这个视图查询的内容有点多,DM 提供了分类的视图,比如 V$DM_ARCH_INI,查询归档的相关参数值。
INI 参数分为三种:静态、动态和手动。
静态可以被动态修改, 修改后重启服务器才能生效
动态可以被动态修改, 修改后即时生效,动态参数又分为会话级和系统级两种。
手动不能被动态修改, 必须手动修改 dm.ini 参数文件,然后重启才能生效。
分别对应 v$parameter 视图中 TYPE 中 READ ONLY、IN FILE、SYS和 SESSION。
1、READ ONLY:手动参数,表示服务器运行过程中不可修改;(o:pfile)
2、IN FILE:静态参数,只可修改 ini 文件;(o:scope=spfile)
3、SYS 和 SESSION:动态参数,ini 文件和内存同时可修改,其中,SYS系统级参数;(o:both ,memory)
select distinct para_type from v$dm_ini;
select name from sysobjects where name like 'V$DM_%INI';
select top 5 para_name,para_value from v$dm_ini;
desc v$dm_ini;
select * from v$dm_ini where para_name='COMPATIBLE_MODE';
2.3, 修改参数的方法详细介绍
1.手工改 dm.ini
2.使用 SQL 修改参数
A.ALTER SYSTEM SET ' 参 数 名 称 ' =' 参 数 值 ' [DEFERRED][MEMORY|BOTH|SPFILE];
[DEFERRED] 只适用于动态参数,指定 DEFERRED,参数值延迟生效,对当前 session 不生效,只对新创建的会话生效;
如果不指定,缺省为立即生效,对当前会话和新创建的会话都生效。
B.ALTER SESSION SET '参数名称' ='参数值' [PURGE];
参数名称指动态会话级参数名字.[PURGE] 指是否清理执行计划。
举例:
修改参数:TEMP_SIZE
设置当前静态参数 TEMP_SIZE 参数值为 256,然后重启生效
SCOPE 参数为 1 表示获取 INI 文件中配置参数的值,为 2 表示获取内存中配置参数的值。
select SF_GET_PARA_VALUE(1,'TEMP_SIZE');
select para_name,para_value from v$dm_ini where
para_name='TEMP_SIZE';
ALTER SYSTEM SET 'TEMP_SIZE' =256 spfile;
修改系统动态、会话级参数 SORT_BUF_SIZE 要求延迟生效,对当前的session 不生效,对后面创建的会话才生效。
并且只修改内存。
select SF_GET_PARA_VALUE(2,'SORT_BUF_SIZE');
select para_name,para_value from v$dm_ini where para_name='SORT_BUF_SIZE';
ALTER SYSTEM SET 'SORT_BUF_SIZE' =100 both;
ALTER SYSTEM SET 'SORT_BUF_SIZE' =110 DEFERRED memory;
C.通过函数过程修改参数
DBA 可以在 DM 数据库运行过程中执行
SF_GET_PARA_VALUE
SF_GET_PARA_DOUBLE_VALUE
SF_GET_PARA_STRING_VALUE
这三个函数来获取系统的当前配置参数,并且可以使用
SP_SET_PARA_VALUE
SP_SET_PARA_DOUBLE_VALUE
SP_SET_PARA_STRING_VALUE
过程来修改静态/动态配置参数.
D.还可以用 alter 来修改
1).SP_SET_PARA_VALUE (scope int, paraname varchar(256), value int64)
该过程用于修改整型静态配置参数和动态配置参数
2).SP_SET_PARA_DOUBLE_VALUE (scope int, paraname varchar(8187), value double)
该过程用于修改浮点型静态配置参数和动态配置参数
3)SP_SET_PARA_STRING_VALUE()
该过程用于修改字符串型静态配置参数和动态配置参数。
4).SF_SET_SYSTEM_PARA_VALUE (paraname varchar(256), value
int64\double\varchar(256), deferred int, scope int64)
该过程用于修改系统整型、double、varchar 的静态配置参数或动态配置参数。
SF_SET_SYSTEM_PARA_VALUE ('BUFFER',1024,1,2);
DEFERRED 参数:
为 0 表示当前 session 修改的参数立即生效,
为 1 表示当前 session 不生效,后续再生效,默认为 0。
E. SCOPE 参数
为 1 表示在内存和 INI 文件中都修改参数值,此时只能修改动态的配置参数。
为 2 表示只在 INI 文件中修改配置参数,此时可用来修改静态配置参数和动态配置参数。
只 有 具 有 DBA 角 色 的 用 户 才 有 权 限 调 用
SF_SET_SYSTEM_PARA_VALUE。
E.SF_SET_SESSION_PARA_VALUE (paraname varchar(8187), value bigint)
设置某个会话级 INI 参数的值
举例:
SELECT SF_GET_PARA_VALUE (1, 'BUFFER');
call SP_SET_PARA_VALUE (2,'BUFFER',800);
scope:取值为 1,2 。
1 表示 dm.ini 文件和内存参数都修改,不需要重启服务器;
2 表示只修改 dm.ini 文件,服务器重启后生效。
call SF_SET_SYSTEM_PARA_VALUE ('BUFFER',1024,1,2);
SELECT SF_GET_PARA_VALUE (1, 'BUFFER');
---------------------------------------------------------------------------------------------------------------------------------------
更多达梦数据库解决方案,可访问如下地址:
https://eco.dameng.com/
————————————————