zoukankan      html  css  js  c++  java
  • DM-INI参数配置

    配置文件

    前言

    每创建一个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.ini MPP集群的配置文件。
    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');
    
  • 相关阅读:
    那些离不开的 Chrome 扩展插件
    Spring Boot 实战 —— 入门
    Maven 学习笔记
    Linux lvm 分区知识笔记
    Linux 双向 SSH 免密登录
    CentOS Yum 源搭建
    Ubuntu 系统学习
    iOS 测试三方 KIF 的那些事
    Swift 网络请求数据与解析
    iOS Plist 文件的 增 删 改
  • 原文地址:https://www.cnblogs.com/binliubiao/p/15417902.html
Copyright © 2011-2022 走看看