栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

达梦数据库DM7调整配置参数方法介绍

达梦数据库DM7调整配置参数方法介绍

一、配置文件说明

配置文件是 DM 数据库用来设置功能选项的一些文本文件的集合,以 ini 为扩展名,它们具有固定的格式,用户可以通过修改其中的某些参数取值来达成如下两个方面的目标:

1)、调整配置参数,启用/禁用特定功能;
2)、调整配置参数,使之更符合当前系统实际需求,优化数据库,提升性能。

在我们安装并初始化数据库之后,会在特定目录自动生成ini配置文件,为了提升性能,或者做一些实验进行数据验证,我们经常需要修改其中的一些参数,这里主要介绍达梦数据库DM7修改参数的几种方法。

 

二、参数类型说明

达梦数据库INI 参数,目前分为手动、静态和动态三种类型,分别对应 v$parameter 动态视图中 TYPE 中 READ ONLY、IN FILE、SYS 和 SESSION;服务器运行过程中,手动(READ ONLY)参数不能被修改,静态和动态参数可以修改。

静态(IN FILE):只会修改 ini 文件,修改后重启服务器才能生效,为系统级参数,生效后会影响所有的会话;
动态(SYS 和 SESSION):ini 文件和内存同时可修改,修改后即时生效。其中,SYS为系统级参数,修改后会影响所有的会话;SESSION 为会话级参数,服务器运行过程中被修改时,之前创建的会话不受影响,只有新创建的会话使用新的参数值。

三、修改参数方法介绍

对于达梦数据库,目前主要提供三种查询修改参数的方法:

1)、配置文件查询修改;
2)、登录数据库执行SQL语句查询修改;
3)、使用数据库函数查询修改;

1、直接修改配置文件:

vim dm.ini

wq保存退出,重启数据库服务生效,这个没有太多好说的,算是最常使用的方法,在此不一一赘述。

2、SQL语句查询修改:

上面提到过,INI参数,对应的内容存储在动态视图V$PARAMETER,因此,如果需要查询的话,可以执行命令查询当前设置(也有动态视图V$DM_INI可以查询,在此不展开赘述):

SELECt * FROM V$PARAMETER WHERe NAME=$参数名;

ID : ID 号
NAME : 参数名字
TYPE : 参数类型:READ ONLY:手动参数,表示服务器运行过程中不可修改;IN FILE:静态参数,只可修改 ini 文件;SYS 和 SESSION:动态参数,ini 文件和内存同时可修改,其中,SYS 系统级参数;SESSION 会话级参数
VALUE :参数的值(当前会话)
SYS_VALUE :参数的值(系统)
FILE_VALUE :参数的值(ini 文件)
DEscriptION:参数描述

 

其次是具体的SQL语句修改参数

2.1、ALTER SYSTEM语法,修改静态或动态(系统级、会话级)参数值,使修改之后的参数值能够在全局范围内起作用。

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

[DEFERRED]: 只适用于动态参数。指定DEFERRED,参数值延迟生效,对当前session不生效,只对新创建的会话生效;缺省为立即生效,对当前会话和新创建的会话都生效。
[MEMORY|BOTH|SPFILE]:指设置INI参数修改的位置。其中,MEMORY只对内存中的INI值做修改;SPFILE则只对INI文件中的INI值做修改;BOTH则内存和INI文件都做修改。默认情况下,为MEMORY。对于静态参数,只能指定SPFILE。

会话级别参数调整测试:

查询该参数会话级别生效,修改该参数,然后打开其他会话连接确认

新建SYSDBA连接,查询确认参数调整符合预期

2.2、ALTER SESSION 语法,修改动态会话级参数(即 TYPE 为 SESSION 的参数),使修改之后的 INI 参数值只对当前会话起作用,不会影响其他会话或系统的 INI 参数值。

语法格式:
ALTER SESSION SET ‘<参数名称>’ =<参数值> [PURGE];

[PURGE] :是否清理执行计划。

3、数据库函数查询修改:

在 DM 数据库中,很多参数都是动态的,查询参数的函数主要有四个:

1. SF_GET_SESSION_PARA_VALUE (paraname varchar(8187))
获得当前会话的某个会话级 INI 参数的值。

2. SF_GET_PARA_VALUE (scope int, paraname varchar(256))
配置参数的值类型为数值类型时,使用该函数来获取当前值。SCOPE 参数为 1 表示获取INI 文件中配置参数的值,为 2 表示获取内存中配置参数的值。
3. SF_GET_PARA_DOUBLE_VALUE(scope int, paraname varchar(8187))
配置参数的值类型为浮点型时,使用该函数来获取当前值。SCOPE参数为1表示获取INI文件中配置参数的值,为 2 表示获取内存中配置参数的值。
4. SF_GET_PARA_STRING_VALUE (scope int, paraname varchar(8187))
配置参数的值为字符串类型时,用该系统函数来获取当前值。SCOPE 参数为 1 表示获取INI 文件中配置参数的值,为 2 表示获取内存中配置参数的值。

上面介绍的是通过函数查询参数,而修改参数的方法,函数名也是大同小异:

1. SP_SET_PARA_VALUE (scope int, paraname varchar(256), value int64)
修改整型静态配置参数和动态配置参数,需要DBA角色执行权限。
SCOPE:为1表示在内存和INI文件中都修改参数值,此时只能修改动态的配置参数;参数为 2 表示只在 INI 文件中修改配置参数,此时可用来修改静态配置参数和动态配置参数。当 SCOPE 等于 1,试图修改静态配置参数时服务器会返回错误信息。

2. SP_SET_PARA_DOUBLE_VALUE (scope int, paraname varchar(8187), value double)
修改浮点型静态配置参数和动态配置参数,需要DBA角色执行权限。
SCOPE :为 1表示在内存和INI 文件中都修改参数值,此时只能修改动态的配置参数;参数为 2 表示只在 INI 文件中修改配置参数,此时可用来修改静态配置参数和动态配置参数。当 SCOPE 等于 1,试图修改静态配置参数时服务器会返回错误信息。

3. SF_SET_SESSION_PARA_VALUE (paraname varchar(8187), value bigint)
设置某个会话级 INI 参数的值,设置的参数值只对本会话有效。

4. SF_SET_SYSTEM_PARA_VALUE (paraname varchar(256), value int64doublevarchar(256), DEFERRED int, SCOPE int64)
修改系统整型、double、varchar 的静态配置参数或动态配置参数,需要DBA角色执行权限。
DEFERRED 参数:为 0 表示当前 session 修改的参数立即生效,为 1 表示当前 session
不生效,后续再生效,默认为 0。
SCOPE 参数:为 1 表示在内存和 INI 文件中都修改参数值,此时只能修改动态的配置参数。参数为 2 表示只在 INI 文件中修改配置参数,此时可用来修 改 静 态 配 置 参 数 和 动 态 配 置 参 数。 
5. SP_RESET_SESSION_PARA_VALUE (paraname varchar(8187))
重置某个会话级 INI 参数的值,使得这个 INI 参数的值和系统 INI 参数的值保持一致。

更多参数设置,详情可参考达梦数据库官方文档:
DM 数据库快速上手指南 | 达梦技术文档

 

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/327135.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号