GaussDB的参数修改调整
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.
本文转自“墨天轮”社区GaussDB频道
- 点赞
- 收藏
- 关注作者
评论(0)