DM-INI参数配置

摘要:
查看各项功能的配置文件selectnamefromsysobjectswherenamelike'V$DM_%INI';参数分类实例参数文件dm.ini中参数主要分为两类:功能配置参数、性能调优参数。MAL_INI集群必配项,MAL通信开关。TIMER_INI选配,异步备机开关,配置异步备机必须要配置该项。通过动态性能视图v$DM_INI,该视图可以查看所有ini参数和dminit建库参数信息。查看配置参数当前值其中,函数的SCOPE参数值为1:表示获取INI文件中配置参数的值,值为2:表示获取内存中配置参数的值SF_GET_PA

配置文件

前言

每创建一个DM数据库,就会自动生成 dm.ini 文件。dm.ini 是 DM 数据库启动所必须的配置文件,通过配置该文件可以设置 DM 数据库服务器的各种功能和性能选项,当然还有其它参数配置文件,归档参数文件dmarch.ini及配置集群的参数文件dmmal.ini、dmwatcher.ini、dmmpp.ini、dmtimer.ini、dmwmon.ini。达梦数据库的参数文件dm.ini是必须的,其它均可选择配置。且除了实例参数文件dm.ini外,其它参数文件按照部署规范配置好后,基本上无须做任何修改。

主要配置文件

说明

参数文件说明
dm.ini达梦数据库启动所必须的配置文件,通过配置该文件可以设置达梦数据库服务器的各种功能和性能选项。达梦数据库是否读参数文件dmarch.ini、dmmal.ini、dmmpp.ini、dmtimer.ini,均有dm.ini参数文件中的相应参数(MAL_INI、ARCH_INI、MPP_INI、TIMER_INI)来控制。
dmarch.ini用于配置REDO日志的本地归档和远程归档。所谓远程归档指这台实例的REDO日志发送到集群中另外一个实例(该实例为这台实例的备机)。
dmmal.ini达梦数据库集群间MAL系统的配置文件,通过该文件配置达梦集群中每个实例的IP地址、端口号等信息。
dmwatcher.ini守护进程的配置文件。
dmmpp.iniMPP集群的配置文件。
dmtimer.ini异步备机的配置文件。
dmmonitor.ini数据守护系统的监视器配置文件。

查看各项功能的配置文件

select name from sysobjects where name like 'V$DM_%INI';

参数分类

实例参数文件dm.ini中参数主要分为两类:功能配置参数、性能调优参数。

参数名说明
CTL_PATH必配,实例控制文件路径。
SYSTEM_PATH必配,系统表空间路径。
TEMP_PATH必配,临时表空间路径。
BAK_PATH必配,数据库备份默认路径。
INSTANCE_NAME必配,数据库实例名称。
ARCH_INI选配项,REDO本地归档开关,如不配置,无法进行数据库备份。
MAL_INI集群必配项,MAL通信开关。
DW_PORT集群必配项,数据库和守护进程的TCP通信端口。
TIMER_INI选配,异步备机开关,配置异步备机必须要配置该项。
MPP_INI选配,MPP集群开关,配置MPP集群必须要配置该项。

其它参数均为选配项,包括功能参数、性能调优参数、监控参数等。

参数属性

INI 参数属性分为静态、动态和手动三种类型,分别对应动态性能视图V$PARAMETER中的TYPE类型IN FILE、READ ONLY、SYS和SESSION。

  1. 静态参数(IN FILE):只能修改 ini 文件,修改后重启DB才能生效,为系统级参数,生效后会影响所有的会话
  2. 动态参数(SYS和SESSION):ini 文件和内存同时可修改,修改后即时生效。
    • 动态参数又分为会话级和系统级。
      • SESSION: 会话级参数被修改后,新参数值只会影响新创建的会话
      • SYS: 系统级参数修改后,将会影响所有的会话
  3. 手动参数(READ ONLY):在运行过程中不能被修改,必须手动修改 dm.ini 参数文件,然后重启才能生效。

参数查看

查看方式

  1. 直接查看参数文件,如:dm.ini

  2. 通过动态性能视图v$PARAMETER,该视图显示ini参数和dminit建库参数的类型及参数值信息(当前会话值、系统值及dm.ini文件中的值)

    select top 5 name, type, value, sys_value, file_value from v$parameter;
    

    其中,VALUE表示当前会话值,SYS_VALUE表示系统值,FILE_VALUE表示dm.ini文件中值。

  3. 通过动态性能视图v$DM_INI,该视图可以查看所有ini参数和dminit建库参数信息。同时,也提供了分类的视图查看相关的配置,如:V$DM_ARCH_INI

    select top 5 para_name, para_value from v$dm_ini;
    
    select * from V$DM_ARCH_INI;
    
  4. 通过相应函数查看参数值,其中SCOPE参数值为1:表示获取INI 文件中配置参数的值,值为2:表示获取内存中配置参数的值

    • SF_GET_PARA_VALUE(scope int, paraname varchar(256)) :配置参数的值类型为数值类型时使用该函数来获取当前值
    • SF_GET_PARA_DOUBLE_VALUE(scope int, paraname varchar(8187)):配置参数的值类型为浮点型时使用该函数来获取当前值
    • SF_GET_PARA_STRING_VALUE (scope int, paraname varchar(8187)):配置参数的值为字符串类型时用该系统函数来获取当前值
    • SF_GET_SESSION_PARA_VALUE (paraname varchar(8187)):获得当前会话的某个会话级 INI 参数的值

调整配置参数

修改参数的方式

  1. 直接编辑参数配置文件,如:dm.ini
  2. 通过SQL语句修改参数
  3. 通过系统函数修改参数

通过SQL语句修改参数

修改全局参数

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

语法
ALTER SYSTEM SET '<参数名称>'=<参数值> [DEFERRED] [MEMORY|BOTH|SPFILE];
  • DEFERRED: 只适用于动态参数。指定DEFERRED时,参数值延迟生效,对当前session不生效,只对新创建的会话生效;缺省为立即生效,即对当前会话和新创建的会话都生效。
示例
-- 设置当前系统动态、会话级参数 SORT_BUF_SIZE 参数值为 200
ALTER SYSTEM SET 'SORT_BUF_SIZE'=200 DEFERRED MEMORY;
修改会话级参数

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

语法
ALTER SESSION SET '<参数名称>'=<参数值> [PURGE];
  • PURGE: 是否清理执行计划
示例
-- 设置当前会话的 HAGR_HASH_SIZE 参数值为 2000000
ALTER SESSION SET 'HAGR_HASH_SIZE'=2000000;

通过系统函数修改参数

在 DM 数据库中,很多参数都是动态的,会自动响应各种负载,但是 DBA 仍然可以调用系统过程来改变 DM 实例的运行参数,从而获得更佳的性能体验。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 过程来修改静态/动态配置参数。

查看配置参数当前值

其中,函数的SCOPE参数值为1:表示获取INI 文件中配置参数的值,值为2:表示获取内存中配置参数的值

  • SF_GET_PARA_VALUE(scope int, paraname varchar(256)) :配置参数的值类型为数值类型时,使用该函数来获取当前值

    -- 获得 dm.ini 文件中 BUFFER 参数值
    SELECT SF_GET_PARA_VALUE (1, 'BUFFER');
    
  • SF_GET_PARA_DOUBLE_VALUE(scope int, paraname varchar(8187)):配置参数的值类型为浮点型时,使用该函数来获取当前值

  • SF_GET_PARA_STRING_VALUE (scope int, paraname varchar(8187)):配置参数的值为字符串类型时,用该系统函数来获取当前值

  • SF_GET_SESSION_PARA_VALUE (paraname varchar(8187)):获得整数类型的会话级 INI 参数的值

  • SF_GET_SESSION_PARA_DOUBLE_VALUE (paraname varchar(8187) ):获得浮点型的会话级 INI 参数的值

修改参数当前值

SCOPE参数为1表示在内存和INI文件中都修改参数值,此时只能修改动态的配置参数。参数为 2 表示只在 INI 文件中修改配置参数,此时可用来修改静态配置参数和动态配置参数。只有具有 DBA 角色的用户才有权限调用SP_SET_PARA_VALUE,SP_SET_PARA_DOUBLE_VALUE和SF_SET_SYSTEM_PARA_VALUE。

  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. SF_SET_SYSTEM_PARA_VALUE (paraname varchar(256), value int64doublevarchar(256),deferred int, scope int64)
    该过程用于修改 int、double、varchar 类型的静态配置参数或动态配置参数。当DEFERRED 参数值为 0 表示当前 session 修改的参数立即生效;值为 1 表示当前 session不生效,后续再生效,默认为 0。
  4. SP_SET_PARA_STRING_VALUE (scope int, ini_param_name varchar(256) ,value varchar(8187)):设置字符串型参数值
  5. SF_SET_SESSION_PARA_VALUE (paraname varchar(8187), value bigint):设置某个会话级 INI 参数的值,设置的参数值只对本会话有效
  6. SP_RESET_SESSION_PARA_VALUE (paraname varchar(8187)):重置某个会话级INI参数的值,使得这个INI参数的值和系统INI参数的值保持一致
  7. SF_SET_SQL_LOG (svrlog int,svrmsk varchar(1000)):设置服务器日志相关 INI 参数 SVR_LOG 和 SQL_TRACE_MASK
示例
-- 查看参数值
select SF_GET_PARA_VALUE(2,'SORT_BUF_SIZE');

select para_name,para_value from v$dm_ini where para_name='SORT_BUF_SIZE';

-- 设置当前系统动态、会话级参数 SORT_BUF_SIZE 参数值为 200,延迟生效
ALTER SYSTEM SET 'SORT_BUF_SIZE' =200 DEFERRED MEMORY;

-- 将 dm.ini 文件中 HFS_CACHE_SIZE 参数值设置为 320
SP_SET_PARA_VALUE (1,'HFS_CACHE_SIZE',320);
select SF_GET_PARA_VALUE(2,'HFS_CACHE_SIZE');

免责声明:文章转载自《DM-INI参数配置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Ubuntu AndroidStudio没有启动图标的问题Mysql的索引下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

java web定时任务---quartz

写在前面:   前面有简单的记录下Timer定时的用法,但是在此次项目中,选择的是quartz来完成定时操作任务的。两者都可以完成定时操作,但是spring可以整合quartz,并且配置起来也比较简便,还可以同时跑多个任务。就选择了quartz,quartz的用法也很强大,这里也是简单的记录下。   第一步还是需要写自己的任务类,如果有涉及到对数据库的增删...

Spring c3p0连接池无法释放解决方案

通过c3p0配置连接池的时候,在进行压力测试的时候,日志出现了这样一个错误:Data source rejected establishment of connection, message from server: “Too many connections” 数据库的连接过多。 然后查看mysql的最大连接数,为100。 于是便更改最大连接池。 由于...

mybatis批量增、删、改(更新)操作oracle和mysql批量写法小记

前言:用mybatis也好几年了,mybatis在批量的增删操作也写起来也是比较简单的,只有批量更新这一块是特别坑,特此记录。注:本文主要用来记录oracle和mysql数据库在使用mybatis的情况下批量增、删、改(更新)的常用写法 一、批量插入1、oracle写法: <insert parameterType="cc.eguid.Zaixcs"...

ASP.NET基础知识整理

Asp.net六大对象 1.Request-->读取客户端在Web请求期间发送的值 常用方法: 1、Request.UrlReferrer请求的来源,可以根据这个判断从百度搜的哪个关键词、防下载盗链、防图片盗链,可以伪造(比如迅雷)。 (使用全局一般处理程序) 2、Request.UserHostAddress获得访问者的IP地址 3、Reque...

Django【十七】权限管理与路径导航

1、url权限管理 设计表 1、设计表 系统一共有多少个路径; 有哪些用户使用; 用户在公司的角色; 对角色进行权限分配(什么样的角色可以访问什么样的路径); 2、往表中添加数据,分配角色权限 3、登录成功,设置session,并将该用户可以访问的url从表中取出保存在session中, 4、设置中间件rocess_re...

【学习】026 Zookeeper

什么Zookeeper Zookeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKe...