重设参数
背景信息
Vastbase提供了多种修改GUC参数的方法,用户可以方便的针对数据库、用户、会话进行设置。
- 参数名称不区分大小写。
参数取值有整型、浮点型、字符串、布尔型和枚举型五类。
- 布尔值可以是(on,off)、(true,false)、(yes,no)或者(1,0),且不区分大小写。
- 枚举类型的取值是在系统表pg_settings的enumvals字段取值定义的。
对于有单位的参数,在设置时请指定单位,否则将使用默认的单位。
- 参数的默认单位在系统表pg_settings的unit字段定义的。
- 内存单位有:KB(千字节)、MB(兆字节)和GB(吉字节)。
- 时间单位:ms(毫秒)、s(秒)、min(分钟)、h(小时)和d(天)。
具体参数说明请参见GUC参数说明。
GUC参数设置
Vastbase提供了六类GUC参数,具体分类和设置方式请参考表1:
表 1 GUC参数分类
固定参数,在创建数据库的时候确定,用户无法修改,只能通过show语法或者pg_settings视图进行查看。 |
||
支持表2中的方式一、方式四。 |
||
支持表2中的方式一、方式二、方式四。 |
||
支持表2中的方式一、方式二、方式四。 |
||
支持表2中的方式一、方式二或由数据库管理员通过方式三设置。 |
||
支持表2中的方式一、方式二或方式三设置。 |
Vastbase提供了四种方式来修改GUC参数,具体操作请参考表2:
表 2 GUC参数设置方式
vb_guc reload -D datadir -c "paraname=value" |
|
使用方式一和方式二设置参数时,若所设参数不属于当前环境,数据库会提示参数不在支持范围内的相关信息。
示例
示例1: 使用方式一设置数据库参数,以在数据库主节点设置archive_mode参数为例。
1、以操作系统用户vastbase登录数据库主节点。
2、查看archive_mode参数,on表示日志要进行归档操作。
cat /home/vastbase/data/vastbase/postgresql.conf | grep archive_mode
返回结果为如下:
archive_mode = on
3、设置archive_mode参数为off,关闭日志的归档操作。
vb_guc set -D $PGDATA -c "archive_mode=off"
4、重启数据库使参数生效。
vb_ctl restart
5、使用如下命令连接数据库,vastbase为需要连接的数据库名称,5432为数据库主节点的端口号。
vsql -d vastbase -p 5432
6、检查参数设置的正确性。
SHOW archive_mode;
返回结果为如下:
archive_mode
--------------
off
(1 row)
示例2:使用方式二设置参数,以在数据库主节点设置authentication_timeout参数为例。
1、以操作系统用户vastbase登录数据库主节点。
2、查看authentication_timeout参数。
cat /home/vastbase/data/vastbase/postgresql.conf | grep authentication_timeout
返回结果为如下:
authentication_timeout = 1min
3、设置authentication_timeout参数为59s。
vb_guc reload -D $PGDATA -c "authentication_timeout = 59s"
返回结果为如下:
Total instances: 2. Failed instances: 0.
Success to perform gs_guc!
4、使用如下命令连接数据库,vastbase为需要连接的数据库名称,5432为数据库主节点的端口号。
vsql -d vastbase -p 5432
5、检查参数设置的正确性。
SHOW authentication_timeout;
返回结果为如下:
authentication_timeout
------------------------
59s
(1 row)
示例3: 使用方式三设置参数,以设置explain_perf_mode参数为例。
1、以操作系统用户vastbasq登录数据库主节点。
2、使用如下命令连接数据库,vastbase为需要连接的数据库名称,5432为数据库主节点的端口号。
vsql -d vastbase -p 5432
3、查看explain_perf_mode参数。
SHOW explain_perf_mode;
结果显示为如下:
explain_perf_mode
-------------------
normal
(1 row)
4、设置explain_perf_mode参数。
使用以下任意方式进行设置:
设置数据库级别的参数
ALTER DATABASE postgres SET explain_perf_mode TO pretty;
当结果显示为如下信息,则表示设置成功。
ALTER DATABASE
在下次会话中生效。
设置用户级别的参数
ALTER USER vastbase SET explain_perf_mode TO pretty;
当结果显示为如下信息,则表示设置成功。
ALTER ROLE
在下次会话中生效。
设置会话级别的参数
SET explain_perf_mode TO pretty;
当结果显示为如下信息,则表示设置成功。
SET
5、检查参数设置的正确性。
SHOW explain_perf_mode;
返回结果为如下:
explain_perf_mode
--------------
pretty
(1 row)
示例4: 使用方式四设置参数,以设置autovacuum参数为例。
1、以操作系统用户vastbase登录数据库主节点。
2、使用如下命令连接数据库,vastbase为需要连接的数据库名称,5432为数据库主节点的端口号。
vsql -d vastbase -p 5432
3、查看autovacuum当前值。
show autovacuum;
返回结果为如下:
autovacuum
------------
off
(1 row)
4、设置参数autovacuum为on。
ALTER SYSTEM SET autovacuum to on;
5、检查参数设置的正确性。
show autovacuum;
返回结果为如下:
autovacuum
------------
on
(1 row)