GaussDB的参数是存储在cfg/zengine.ini配置文件中。每一行存储一个参数。当某个参数有多个值的时候,可以用逗号分隔。当数据库实例启动时,会从配置文件中读取所有的参数。每个参数都有默认值,如果没有显示指定,那么参数初始化为默认值。部分参数会在数据库创建阶段写入控制文件,因此建库之后无法修改。
可以通过以下方式获取参数的配置情况:
SQL> show parameters
或者:
SQL> show parameter
NAME DATATYPE VALUE RUNTIME_VALUE EFFECTIVE
--------------------- ----------------- ------------------------- ----------------------------------------- --------------------------------------------
LSNR_ADDR GS_TYPE_VARCHAR 127.0.0.1,10.211.55.110 127.0.0.1,10.211.55.110 reboot
LSNR_PORT GS_TYPE_INTEGER 1888 1888 reboot
OPTIMIZED_WORKER_THREADS GS_TYPE_INTEGER 100 100 reboot
REACTOR_THREADS GS_TYPE_INTEGER 1 1 reboot
或者通过dv_parameters视图获取:
SQL> select name,value,RUNTIME_VALUE,DEFAULT_VALUE,ISDEFAULT,MODIFIABLE,EFFECTIVE from dv_parameters where name like 'BLOCK%';
NAME VALUE RUNTIME_VA DEFAULT_VA ISDEFAULT MODIFIABLE EFFECTIVE
------------------------------ ---------- ---------- ---------- -------------------- -------------------- --------------------
BLOCK_REPAIR_ENABLE FALSE FALSE FALSE TRUE TRUE immediately
BLOCK_REPAIR_TIMEOUT 60 60 60 TRUE TRUE immediately
2 rows fetched.
参数的调整方式有两种:
- 直接修改参数配置文件cfg/zengine.ini,重启数据库生效。
- 通过alter system set的方式,调整参数。
语法:alter system set parameter=value;
在哪些情况下,只能用直接修改cfg/zengine.ini参数文件的方式调整参数呢?如果dv_parameters视图MODIFIABLE的值为FALSE,表明这些参数不支持在线修改。默认情况下,有以下参数为非在线修改参数:
SQL> select name,value,MODIFIABLE from dv_parameters where MODIFIABLE='FALSE';
NAME VALUE MODIFIABLE
---------------------------------------------------------------- ---------------------------------------------------------------- --------------------
PAGE_SIZE 8K FALSE
CONTROL_FILES (/u01/app/gaussdb/data/data/cntl1, /u01/app/gaussdb/data/data/cntl2, /u01/app/gaussdb/data/data/cntl3) FALSE
ARCHIVE_CONFIG SEND,RECEIVE,NODG_CONFIG FALSE
LOG_ARCHIVE_CONFIG SEND,RECEIVE,NODG_CONFIG FALSE
ARCHIVE_MAX_THREADS 1 FALSE
LOG_ARCHIVE_MAX_PROCESSES 1 FALSE
ARCHIVE_MIN_SUCCEED_DEST 1 FALSE
LOG_ARCHIVE_MIN_SUCCEED_DEST 1 FALSE
ARCHIVE_TRACE 0 FALSE
LOG_ARCHIVE_TRACE 0 FALSE
_UNDO_SEGMENTS 32 FALSE
UPPER_CASE_TABLE_NAMES TRUE FALSE
EMPTY_STRING_AS_NULL TRUE FALSE
HAVE_SSL FALSE FALSE
COVERAGE_ENABLE FALSE FALSE
TYPE_MAP_FILE FALSE
DB_TIMEZONE +00:00 FALSE
XA_FORMAT_ID 247 FALSE
18 rows fetched.
如果采用alter system方式调整这类参数,会抛出“GS-00626”的错误:
SQL> alter system set ARCHIVE_TRACE=1;
GS-00626, Set ARCHIVE_TRACE is not supported
SQL> alter system set LOG_ARCHIVE_TRACE=1;
GS-00626, Set ARCHIVE_TRACE is not supported
SQL> exit
因此,这类参数必须在数据库关闭情况下修改。
添加以下参数至参数文件中:
ARCHIVE_TRACE=1
LOG_ARCHIVE_TRACE = 1
重启数据库。
SQL> select name,value,MODIFIABLE from dv_parameters where MODIFIABLE='FALSE';
NAME VALUE MODIFIABLE
---------------------------------------------------------------- ---------------------------------------------------------------- --------------------
PAGE_SIZE 8K FALSE
CONTROL_FILES (/u01/app/gaussdb/data/data/cntl1, /u01/app/gaussdb/data/data/cntl2, /u01/app/gaussdb/data/data/cntl3) FALSE
ARCHIVE_CONFIG SEND,RECEIVE,NODG_CONFIG FALSE
LOG_ARCHIVE_CONFIG SEND,RECEIVE,NODG_CONFIG FALSE
ARCHIVE_MAX_THREADS 1 FALSE
LOG_ARCHIVE_MAX_PROCESSES 1 FALSE
ARCHIVE_MIN_SUCCEED_DEST 1 FALSE
LOG_ARCHIVE_MIN_SUCCEED_DEST 1 FALSE
ARCHIVE_TRACE 1 FALSE
LOG_ARCHIVE_TRACE 1 FALSE
_UNDO_SEGMENTS 32 FALSE
UPPER_CASE_TABLE_NAMES TRUE FALSE
EMPTY_STRING_AS_NULL TRUE FALSE
HAVE_SSL FALSE FALSE
COVERAGE_ENABLE FALSE FALSE
TYPE_MAP_FILE FALSE
DB_TIMEZONE +00:00 FALSE
XA_FORMAT_ID 247 FALSE
18 rows fetched.
另外,这里需要注意的是通过alter system set调整的参数,会将参数直接写入到参数配置文件中。但是否即时生效要分为两种情况:
1、如果dv_parameters视图中effective字段显示的值为“reboot”。说明该参数的修改,需要重启之后才能生效。
SQL> alter system set LARGE_POOL_SIZE=40m;
Succeed.
SQL> select name,value,RUNTIME_VALUE,DEFAULT_VALUE,ISDEFAULT,MODIFIABLE,EFFECTIVE from dv_parameters where name = 'LARGE_POOL_SIZE';
NAME VALUE RUNTIME_VA DEFAULT_VA ISDEFAULT MODIFIABLE EFFECTIVE
------------------------------ ---------- ---------- ---------- -------------------- -------------------- --------------------
LARGE_POOL_SIZE 40m 32M 32M FALSE TRUE reboot
1 rows fetched.
2、如果dv_parameters视图中effective字段显示的值为“immediately”。说明该参数的修改,立即生效。
SQL> alter system set BLOCK_REPAIR_TIMEOUT=90;
Succeed.
SQL> select name,value,RUNTIME_VALUE,DEFAULT_VALUE,ISDEFAULT,MODIFIABLE,EFFECTIVE from dv_parameters where name = 'BLOCK_REPAIR_TIMEOUT';
NAME VALUE RUNTIME_VA DEFAULT_VA ISDEFAULT MODIFIABLE EFFECTIVE
------------------------------ ---------- ---------- ---------- -------------------- -------------------- --------------------
BLOCK_REPAIR_TIMEOUT 90 90 60 FALSE TRUE immediately
1 rows fetched.
最后修改时间:2020-02-23 15:46:46
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




