背景信息
目前openGauss配置文件(“postgresql.conf”“pg_hba.conf”)中的参数默认值都是单机的配置模式。应用程序可以通过调用gs_guc来设置适合自己的参数。gs_guc工具由操作系统用户omm执行。
- “gs_guc-current.log”这个文件记录gs_guc产生的日志。默认路径:$GAUSSLOG/bin/gs_guc。
- “gs_guc-年-月-日_HHMMSS.log”当“gs_guc-current.log”文件大小满16M后,会根据当前时刻生成一个备份文件。
- “server.key.cipher”,“server.key.rand”使用gs_guc encrypt命令加密用户密码时,如果指定的-M的值为server,则会生成这两个文件。其中“server.key.cipher”存储用户密码的密文,“server.key.rand”存储的是加密因子。
- “client.key.cipher”,“client.key.rand”使用gs_guc encrypt命令加密用户密码时,如果指定的-M的值为client,则会生成这两个文件。其中“client.key.cipher”存储用户密码的密文,“client.key.rand”存储的是加密因子
- “datasource.key.cipher”,“datasource.key.rand”使用gs_guc encrypt命令加密用户密码时,如果指定的-M的值为source,则会生成这两个文件。其中“datasource.key.cipher”存储用户密码的密文,“datasource.key.rand”存储的是加密因子。
语法
- 检查配置文件中参数
gs_guc check [-N NODE-NAME] [-I INSTANCE-NAME | -D DATADIR] -c "parameter"
- 修改配置文件中参数
gs_guc set [-N NODE-NAME] [-I INSTANCE-NAME | -D DATADIR] -c "parameter = value"
- 将已设置的参数值修改为默认值
gs_guc [ set | reload ] [-N NODE-NAME] [-I INSTANCE-NAME | -D DATADIR] -c "parameter"
- 修改配置文件中参数,同时发送信号量到postgresql.conf
gs_guc reload [-N NODE-NAME] [-I INSTANCE-NAME | -D DATADIR] -c parameter=value
- 修改客户端认证策略,同时发送信号量到pg_hba.conf
gs_guc [ set | reload ] [-N NODE-NAME] [-I INSTANCE-NAME | -D DATADIR] -h "HOSTTYPE
DATABASE USERNAME IPADDR-WITH-IPMASK AUTHMEHOD authentication-options"
- 注释已经设置的客户端认证策略, 同时发送信号量到pg_hba.conf
gs_guc [ set | reload ] [-N NODE-NAME] [-I INSTANCE-NAME | -D DATADIR] -h "HOSTTYPE
DATABASE USERNAME IPADDR-WITH-IPMASK AUTHMEHOD"
- 显示帮助信息
gs_guc -? | --help
- 显示版本号信息
gs_guc -V | --version
- 生成加密密码文件
gs_guc encrypt [-M keymode] -K password [-U username] -D DATADIR
命令参考
- set
表示只修改配置文件中的参数。 - check
表示只检查配置文件中的参数。 - reload
表示修改配置文件中的参数,同时发送信号量给数据库进程,使其重新加载配置文件。 - encrypt/generate
生成加密密码文件。 - -N
需要设置的主机名称。
取值范围:已有主机名称。
当参数取值为ALL时,表示设置openGauss中所有的主机。 - -I INSTANCE-NAME
需要设置的实例名称。
取值范围:已有实例名称。
当参数取值为ALL时,表示设置主机中所有的实例。 - -D
需要执行命令的openGauss实例路径。使用encrypt命令时,此参数表示指定的密
码文件生成的路径。 - -c parameter=value
要设定的openGauss配置参数的名称和参数值。 - -c parameter
当进行check操作时,表示需要检查的参数名称;当进行set/reload操作时,参数
值不允许为空,为空时不会恢复为数据库参数的默认值。 - -h host-auth-policy
指定需要在“pg_hba.conf”增加的客户端认证策略。
取值范围:
– HOSTTYPE DATABASE USERNAME IPADDR IPMASK [authmehod-options]
– HOSTTYPE DATABASE USERNAME IPADDR-WITH-IPMASK [authmehodoptions ]
– HOSTTYPE DATABASE USERNAME HOSTNAME [authmehod-options ]
HOSTTYPE是必选参数,取值:
– local
– host
– hostssl
– hostnossl
其中“local”是一个Unix域套接字,“host”是普通或SSL加密的TCP / IP套接字,“hostssl”是SSL加密的TCP / IP套接字,“hostnossl”是一个纯TCP / IP套接字。
authmehod-options是可选输入,取值:
– trust
– reject
– md5
– sha256
– cert
– gss
- -?, --help
显示帮助信息。 - -V, --version
显示版本信息。
示例
示例 1:加密服务器端存储用户密码的明文,避免密码泄露。
gs_guc encrypt -K Gauss@123 -D /data/xzg/wisequery/gaussdb
gs_guc encrypt -K ***
示例2: 检查openGauss中各个实例的参数配置情况。
gs_guc check -D /gaussdb/data/dbnode -c "max_connections" -N plat1
Total GUC values: 1. Failed GUC values: 0.
The value of parameter max_connections is same on all instances.
max_connections=800
示例3:注释清理已经设置的客户端认证策略
gs_guc set -N all -I all -h "host replication testuser 10.252.95.191/32"
Total instances: 2. Failed instances: 0.
Success to perform gs_guc!