达梦8-参数管理

实验环境:

操作系统版本

银河麒麟Linux kylin10 4.19.90-24.4.v2101.ky10.x86_64

数据库版本

DM Database Server 64 V8

        Oracle数据库的实例在启动到nomount状态会读取初始化参数文件spfile(二进制文件)或pfile(文本文件),参数文件内包含与数据库实例相关参数。

        每创建一个 DM 数据库,就会自动生成 dm.ini 参数文件。dm.ini DM 数据库启动所必须的配置文件,通过配置该文件可以设置 DM 数据库服务器的各种功能和性能选项,主要的配置模块包括:控制文件相关、实例名、内存相关、线程相关等。

        其他参数文件:dmmal.ini MAL 系统的配置文件,dmarch.ini 用于配置归档,dm_svc.conf 是一个客户端配置文件,sqllog.ini 用于 SQL 日志的配置等等。

1、参数分类

参数属性分为三种:手动、静态和动态。

参数

属性

说明

手动(READ ONLY)

不能被动态修改

必须手动修改 dm.ini 参数文件,然后重启才能生效。

静态(IN FILE)

可以被动态修改

修改后重启服务器才能生效。

动态(SYS和SESSION)

可以被动态修改

修改后即时生效。动态参数又分为会话级(SESSION)系统级(SYS)两种。会话级参数被修改后,新参数值只会影响当前会话和新创建的会话,之前创建的会话不受影响;系统级参数的修改则会影响所有的会话。

--通过动态视图v$dm_ini参看参数类型

SQL> select distinct para_type from v$dm_ini;



行号     PARA_TYPE

---------- ---------

1          READ ONLY

2          SYS

3          IN FILE

4          SESSION

2、参数的查看

2.1 dm.ini文件

通过系统命令vi、cat、more等可以查看dm.ini参数文件中的参数信息。 

--示例 参看和MEMORY相关的参数 

[dmdba@kylin10 DAMENG]$ cat dm.ini | grep MEMORY
                MAX_OS_MEMORY                   = 100                   #Maximum Percent Of OS Memory
                MEMORY_POOL                     = 500                   #Memory Pool Size In Megabyte
                MEMORY_N_POOLS                  = 1                     #Number of Memory Pool 
                MEMORY_TARGET                   = 15000                 #Memory Share Pool Target Size In Megabyte
                MEMORY_EXTENT_SIZE              = 32                    #Memory Extent Size In Megabyte
                MEMORY_LEAK_CHECK               = 0                     #Memory Pool Leak Checking Flag
                MEMORY_MAGIC_CHECK              = 1                     #Memory Pool Magic Checking Flag
                MEMORY_BAK_POOL                 = 4                     #Memory Backup Pool Size In Megabyte
                HUGE_MEMORY_PERCENTAGE          = 50                    #Maximum percent of HUGE buffer that can be allocated to work as common memory pool
                XBOX_MEMORY_TARGET              = 1024                  #Memory target size in Megabyte of XBOX system
                MAX_SESSION_MEMORY              = 0                     #Maximum memory(In Megabytes) a single session can use
[dmdba@kylin10 DAMENG]$

2.2 动态性能视图

2.2.1 动态性能视图v$dm_ini

序号

列名称

数据类型

说明

1

PARA_NAME

VARCHAR(128)

参数名称

2

PARA_VALUE

VARCHAR(256)

系统参数值

3

MIN_VALUE

VARCHAR(256)

最小值

4

MAX_VALUE

VARCHAR(256)

最大值

5

DEFAULT_VALUE

VARCHAR(256)

默认值

6

MPP_CHK

CHAR(1)

是否检查 MPP 节点间参数一致性。 Y 是, N 否

7

SESS_VALUE

VARCHAR(256)

会话参数值

8

FILE_VALUE

VARCHAR(256)

INI文件中参数值

9

DESCRIPTION

VARCHAR(256)

参数描述

10

PARA_TYPE

VARCHAR(200)

参数类型

11

SYNC_FLAG

VARCHAR(16)

参数是否需要进行同步。取值包括 NOT_SYNC、

DSC_SYNC、 DW_SYNC、 DPC_SYNC、 ALL_SYNC。

执行 INI 参数全局同步时,各字段值含义如下:
NOT_SYNC:不进行参数同步;

DSC_SYNC:仅 DMDSC 环境下进行参数同步;

DW_SYNC:仅普通主备/普通 RAFT 主备环境下进行参数

同步;

DPC_SYNC:仅 DMDPC 环境下进行参数同步;

ALL_SYNC:普通主备/RAFT 主备/DSC 集群/DPC 集群环

境下均进行参数同步

12

SYNC_LEVEL

VARCHAR(16)

SYNC_LEVEL 专用于主备环境中,标识备库参数是否需要

和主库保持同步。同步的方式有两种: 1.服务器定时自动同

步,通过 INI 参数 INI_SYNC 进行设置; 2.通过

SF_SYNC_INI 函数手动同步。

SYNC_LEVEL 字段值说明如下:

NO_SYNC:参数在当前环境不会被同步;

CAN_SYNC:参数在当前环境中,可以和主库同步。是否

同步,均不影响主备环境的使用;

MUST_SYNC:参数在当前环境中,必须和主库保持同步

--示例 通过视图v$dm_ini查看与buffer相关的参数 

SQL> select * from v$dm_ini where para_name like '%BUFFER%';

行号     PARA_NAME           PARA_VALUE MIN_VALUE MAX_VALUE DEFAULT_VALUE MPP_CHK SESS_VALUE
---------- ------------------- ---------- --------- --------- ------------- ------- ----------
           FILE_VALUE DESCRIPTION                                       PARA_TYPE SYNC_FLAG
           ---------- ------------------------------------------------- --------- ---------
           SYNC_LEVEL
           ----------
1          HUGE_BUFFER         80         8         1048576   80            N       80
           80         Initial Huge Buffer Size In Megabytes             IN FILE   ALL_SYNC
           CAN_SYNC

2          HUGE_BUFFER_POOLS   4          1         512       4             N       4
           4          Huge Buffer Pools                                 IN FILE   ALL_SYNC
           CAN_SYNC

3          BUFFER              1000       8         1048576   1000          N       1000
           1000       Initial System Buffer Size In Megabytes           IN FILE   ALL_SYNC
           CAN_SYNC

4          BUFFER_POOLS        19         1         512       19            N       19
           19         Buffer Pools                                      IN FILE   ALL_SYNC
           CAN_SYNC

5          BUFFER_MODE         0          0         1         0             N       0
           0          Buffer pool elimination mode, 0 = LRU, 1 = clock  IN FILE   ALL_SYNC
           CAN_SYNC

6          BUFFER_FAST_RELEASE 1          0         1         1             N       1
           1          Whether discard freed page in recycle pool        SYS       ALL_SYNC
           CAN_SYNC

7          MAX_BUFFER          1000       8         1048576   1000          N       1000
           1000       maximum system buffer size in Megabytes           IN FILE   ALL_SYNC
           CAN_SYNC
2.2.2 动态性能视图v$parameter 

序号

列名称

数据类型

说明

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

VARCHAR(255)

参数描述

8

DEFAULT_VALUE

VARCHAR(256)

参数默认值

9

ISDEFAULT

INTEGER

dm.ini中参数的值和默认值是否相同,1表示相同,0表示不同

SQL> select * from v$parameter where name like '%BUFFER%';  

行号     ID          NAME                TYPE    VALUE SYS_VALUE FILE_VALUE
---------- ----------- ------------------- ------- ----- --------- ----------
           DESCRIPTION                                       DEFAULT_VALUE ISDEFAULT  
           ------------------------------------------------- ------------- -----------
1          21          HUGE_BUFFER         IN FILE 80    80        80
           Initial Huge Buffer Size In Megabytes             80            1

2          22          HUGE_BUFFER_POOLS   IN FILE 4     4         4
           Huge Buffer Pools                                 4             1

3          23          BUFFER              IN FILE 1000  1000      1000
           Initial System Buffer Size In Megabytes           1000          1

4          24          BUFFER_POOLS        IN FILE 19    19        19
           Buffer Pools                                      19            1

5          25          BUFFER_MODE         IN FILE 0     0         0
           Buffer pool elimination mode, 0 = LRU, 1 = clock  0             1

6          33          BUFFER_FAST_RELEASE SYS     1     1         1
           Whether discard freed page in recycle pool        1             1

7          37          MAX_BUFFER          IN FILE 1000  1000      1000
           maximum system buffer size in Megabytes           1000          1

--示例 查看数据库的兼容模式

SQL> SELECT PARA_NAME,PARA_VALUE,PARA_TYPE FROM V$DM_INI WHERE PARA_NAME LIKE 'COMPA%';

行号     PARA_NAME       PARA_VALUE PARA_TYPE
---------- --------------- ---------- ---------
1          COMPATIBLE_MODE 2          IN FILE

2.3 DM系统函数查看 

2.3.1 查询数值类型参数值

--语法格式:

select SF_GET_PARA_VALUE (scope int, paraname varchar(256));

--SCOPE 参数为 1 表示获取 INI 文件中配置参数的值

--SCOPE 参数为 2 表示获取内存中配置参数的值

--示例:获取 DM.INI 文件中动态参数 HFS_CACHE_SIZE 的当前值

SQL> select SF_GET_PARA_VALUE (1,'HFS_CACHE_SIZE');
行号     SF_GET_PARA_VALUE(1,'HFS_CACHE_SIZE')
---------- -------------------------------------
1          160
2.3.2 查询浮点型参数值

--语法格式

select SF_GET_PARA_DOUBLE_VALUE(scope int, paraname varchar(8187));

--SCOPE 参数为 1 表示获取 INI 文件中配置参数的值

--SCOPE 参数为 2 表示获取内存中配置参数的值

 

--示例:获取内存中 参数SEL_RATE_EQU 的当前值

SQL> select SF_GET_PARA_DOUBLE_VALUE(2,'SEL_RATE_EQU');

行号     SF_GET_PARA_DOUBLE_VALUE(2,'SEL_RATE_EQU')
---------- ------------------------------------------
1          2.500000000000000E-02
2.3.3 查询字符串类型参数值 

--语法格式

select SF_GET_PARA_STRING_VALUE(scope int, paraname varchar(8187));

--SCOPE 参数为 1 表示获取 INI 文件中配置参数的值

--SCOPE 参数为 2 表示获取内存中配置参数的值

--示例:获取 DM.INI 文件中动态参数 SQL_TRACE_MASK 的当前值

SQL> select SF_GET_PARA_STRING_VALUE(1,'SQL_TRACE_MASK');

行号     SF_GET_PARA_STRING_VALUE(1,'SQL_TRACE_MASK')
---------- --------------------------------------------
1          1
2.3.4 获得当前会话的某个会话级 INI 参数的值 

--语法格式

select SF_GET_SESSION_PARA_VALUE (paraname varchar(8187));

--示例:获取当前会话 USE_HAGR_FLA 参数的值 

SQL> select SF_GET_SESSION_PARA_VALUE ('USE_HAGR_FLAG');

行号     SF_GET_SESSION_PARA_VALUE('USE_HAGR_FLAG')
---------- ------------------------------------------
1          0

3、参数的修改

3.1 DM控制台工具console

使用图形化工具,打开DM控制台工具,可以直接查看和修改实例的参数。

 

        双击参数对应的值,进入编辑模式,可以进行修改,如上图修改数据库兼容模式,将参数“COMPATIBLE_MODE”的值修改为“1”,修改完成后点击保存。在控制台工具修改都是静态修改,即使该参数是动态参数也不会立即生效,需要重启数据库才能生效。 

3.2 修改dm.ini文件

可以使用系统vi命令直接修改相关参数的参数值,修改完成后需要重启数据库才能生效

3.3 DM系统函数修改

3.3.1 修改整型静态配置参数和动态配置参数

--语法格式

SP_SET_PARA_VALUE (scope int, paraname varchar(256), value int64);

--SCOPE 参数为 1 表示在内存和 INI 文件中都修改参数值,此时只能修改动态的配置参数。当 SCOPE 等于 1,试图修改静态配置参数时服务器会返回错误信息

--SCOPE 参数为 2 表示只在 INI 文件中修改配置参数,此时可用来修改静态配置参数和动态配置参数

 --示例:将 DM.INI 文件中动态参数 HFS_CACHE_SIZE 设置为 320,在 disql 中执行以下命令即可立即生效。

SQL> SP_SET_PARA_VALUE (1,'HFS_CACHE_SIZE',320);

--示例 修改TEMP表空间的大小

--参看参数值,参数类型
SQL> select para_name,para_value,para_type from v$dm_ini where para_name='TEMP_SIZE';

行号     PARA_NAME PARA_VALUE PARA_TYPE
---------- --------- ---------- ---------
1          TEMP_SIZE 10         IN FILE



--参看该参数的系统参数值(para_value),会话参数值(sess_value)和INI文件中参数值(file_value)。
SQL> select para_name,para_value,sess_value,file_value from v$dm_ini where para_name='TEMP_SIZE';

行号     PARA_NAME PARA_VALUE SESS_VALUE FILE_VALUE
---------- --------- ---------- ---------- ----------
1          TEMP_SIZE 10         10         10



--修改TEMP_SIZE参数值
SQL> sp_set_para_value(2,'TEMP_SIZE',100);
DMSQL 过程已成功完成

SQL>  select para_name,para_value,sess_value,file_value from v$dm_ini where para_name='TEMP_SIZE';

行号     PARA_NAME PARA_VALUE SESS_VALUE FILE_VALUE
---------- --------- ---------- ---------- ----------
1          TEMP_SIZE 10         10         100


--重启数据库实例
[dmdba@kylin10 tool]$ /dm8/bin/DmServiceDMSERVER restart
Stopping DmServiceDMSERVER:                                [ OK ]
Starting DmServiceDMSERVER:                                [ OK ]


--登陆数据库 查看参数值的修改情况
[dmdba@kylin10 tool]$ disql sysdba/Dameng123

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 2.522(ms)
disql V8
SQL> select para_name,para_value,sess_value,file_value from v$dm_ini where para_name='TEMP_SIZE';

行号     PARA_NAME PARA_VALUE SESS_VALUE FILE_VALUE
---------- --------- ---------- ---------- ----------
1          TEMP_SIZE 100        100        100
3.3.2 修改浮点型静态配置参数和动态配置参数 

--语法格式

SP_SET_PARA_DOUBLE_VALUE(scope int,paraname varchar(8187),value double);

--SCOPE 参数为 1 表示在内存和 INI 文件中都修改参数值,此时只能修改动态的配置参数。当 SCOPE 等于 1,试图修改静态配置参数时服务器会返回错误信息

--SCOPE参数为 2 表示只在 INI 文件中修改配置参数,此时可用来修改静态配置参数和动态配置参数

--示例:将 DM.INI 文件中动态参数 SEL_RATE_EQU 设置为 0.3,在 disql 中执行以下命令即可立即生效。

SQL> SP_SET_PARA_DOUBLE_VALUE(1, 'SEL_RATE_EQU', 0.3);
3.3.3 修改系统整型、double、 varchar 的静态配置参数或动态配置参数 

--语法格式

SF_SET_SYSTEM_PARA_VALUE(paraname varchar(256),value int64\double\varchar(256),deferred int,scope int64);

--DEFERRED 参数为 0 表示当前 session 修改的参数立即生效,默认为 0

--DEFERRED 参数为 1 表示当前 session 不生效,后续再生效

--SCOPE 参数为 1 表示在内存和 INI 文件中都修改参数值,此时只能修改动态的配置参数

--SCOPE 参数为 2 表示只在 INI 文件中修改配置参数,此时可用来修改静态配置参数和动态配置参数

--示例:将动态参数 ENABLE_DDL_ANY_PRIV 设置为 1,且当前 session 立即生效

SQL> select SF_SET_SYSTEM_PARA_VALUE('ENABLE_DDL_ANY_PRIV',1,0,1);
3.3.4 修改某个会话级 INI 参数的值 

设置的参数值只对本会话有效。

--语法格式

SF_SET_SESSION_PARA_VALUE (paraname varchar(8187), value bigint);

--示例:将 USE_HAGR_FLAG 设置为 1,且只对本会话有效

SQL> select SF_SET_SESSION_PARA_VALUE ('USE_HAGR_FLAG',1); 
3.3.5 重置某个会话级 INI 参数的值

重置参数值使得这个 INI 参数的值和系统 INI 参数的值保持一致。 

--语法格式

SP_RESET_SESSION_PARA_VALUE (paraname varchar(8187));

--示例:重置 USE_HAGR_FLAG

SQL> select SP_RESET_SESSION_PARA_VALUE ('USE_HAGR_FLAG');

3.4 alter语句修改 

修改系统参数:

--语法格式

ALTER SYSTEM SET ‘<参数名称>’ =<参数值> [DEFERRED] [MEMORY|BOTH|SPFILE];

[DEFERRED] 只适用于动态会话级参数, 若指定DEFERRED,则参数值延迟生效,对当前会话不生效,只对新创建的会话生效;若不指定DEFERRED,则参数值立即生效,对当前会话和新创建的会话都生效。针对动态系统级参数,无论是否指定DEFERRED,参数值均对所有会话生效,包括所有已经创建的会话以及新创建的会话; 针对静态参数,指定DEFERRED将报错;

[MEMORY|BOTH|SPFILE] 设置INI参数修改的位置。其中, MEMORY只对内存中的INI值做修改; SPFILE则只对INI文件中的INI值做修改; BOTH则内存和INI文件都做修改。默认情况下,为MEMORY。对于静态参数,只能指定SPFILE。

--示例 静态参数修改

SQL> ALTER SYSTEM SET ‘MTAB_MEM_SIZE’ =1200 spfile;

--PURGE关键字指是否清理执行计划

ALTER SESSION SET ‘<参数名称>’ =<参数值> [PURGE]; 

--示例 修改当前会话参数 

SQL> ALTER SESSION SET ‘HAGR_HASH_SIZE’ =2000000;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值