达梦数据库如何更改dm.ini参数详解

1. 参数属性

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

2. 调整配置参数(如何通过调用系统过程生效)

在 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 过程来修改静态/动态配置参数:

  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),value 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。
    DM 的动态 INI 参数分为系统级和会话级两种级别。会话级参数在服务器运行过程中被修改时,之前创建的会话不受影响,只有新创建的会话使用新的参数值。
  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 参数的值。
    需要注意的是,在对参数进行调整前,DBA 应该深刻理解配置参数中每个参数的含义和对系统的影响,避免由于错误的调整导致影响整个系统对外提供正常服务。对于一些关键业务,在实际调整前,建议在测试系统上先进行试验,验证通过后再在生产系统上进行调整。

3. 查询参数信息视图

V$PARAMETER
显示ini参数和dminit建库参数的类型及参数值信息(当前会话值、系统值及dm.ini文件中的值)。

序号 字段 类型 说明
1 ID INTEGER ID 号
2 NAME VARCHAR(80) 参数名字
3 TYPE VARCHAR(200) 参数类型。READ ONLY:手动参数,表示服务器运行过程中不可修改;IN FILE:静态参数,只可修改 ini 文件;SYS 和 SESSION:动态参数,ini 文件和内存同时可修改,其中,SYS 系统级参数;SESSION 会话级参数
4 VALUE VARCHAR(4000) 参数的值(当前会话)
5 SYS_VALUE VARCHAR(4000) 参数的值(系统)
6 FILE_VALUE VARCHAR(4000) 参数的值(ini 文件)
7 DESCRIPTION VARCHAR2(255) 参数描述

你可能感兴趣的:(达梦数据库)