首页 > 数据库 > > 服务端工具-gs_guc
目前GaussDB 200配置文件(“postgresql.conf”、“pg_hba.conf”)中的参数默认值都是单机的配置模式。应用程序可以通过调用gs_guc来设置适合自己的参数。
这个文件记录gs_guc产生的日志。
默认路径:$GAUSSLOG/bin/gs_guc。
当“gs_guc-current.log”文件大小满16M后,会根据当前时刻生成一个备份文件。
使用gs_guc encrypt命令加密用户密码时,如果指定的-M的值为server,则会生成这两个文件。其中“server.key.cipher”存储用户密码的密文,“server.key.rand”存储的是加密因子。
使用gs_guc encrypt命令加密用户密码时,如果指定的-M的值为client,则会生成这两个文件。其中“client.key.cipher”存储用户密码的密文,“client.key.rand”存储的是加密因子。
“client.key.cipher”和“client.key.rand”是不指定-U选项时生成的密文文件和加密因子文件。如果通过-U指定了用户名,则会生成以用户名开头的文件。以指定-U test为例,生成的文件名为:“test.key.cipher、test.key.rand”。
使用gs_guc encrypt命令加密用户密码时,如果指定的-M的值为source,则会生成这两个文件。其中“datasource.key.cipher”存储用户密码的密文,“datasource.key.rand”存储的是加密因子。
“datasource.key.cipher”和“datasource.key.rand”是创建Data Source对象时调用的密钥文件。gs_guc生成时即有读写权限。使用前需将这两个文件放入各节点目录$GAUSSHOME/bin,且确保具有读写权限。gs_om工具可以协助您快速将文件放入集群各节点对应目录下。
“obsserver.key.cipher”和“obsserver.key.rand”是创建OBS服务对象时调用的密钥文件。
gs_guc check -Z NODE-TYPE [-N NODE-NAME] [-I INSTANCE-NAME | -D DATADIR] -c "parameter"检查逻辑集群的配置文件中参数(逻辑集群仅支持DN)
gs_guc check -Z datanode [-N NODE-NAME] [-I INSTANCE-NAME | -D DATADIR] -c "parameter" --lcname=LCNAME修改配置文件中参数
gs_guc set -Z NODE-TYPE [-N NODE-NAME] [-I INSTANCE-NAME | -D DATADIR] -c "parameter = value"修改逻辑集群的配置文件中参数(逻辑集群仅支持DN)
gs_guc set -Z datanode [-N NODE-NAME] [-I INSTANCE-NAME | -D DATADIR] -c "parameter = value" --lcname=LCNAME同时修改CN和DN配置文件中参数(postgresql.conf)
gs_guc set -Z coordinator -Z datanode [-N NODE-NAME] [-I INSTANCE-NAME | -D DATADIR] -c "parameter = value"将已设置的参数值修改为默认值
gs_guc [ set | reload ] -Z NODE-TYPE [-N NODE-NAME] [-I INSTANCE-NAME | -D DATADIR] -c "parameter"将逻辑集群中已设置的参数值修改为默认值
gs_guc [ set | reload ] -Z datanode [-N NODE-NAME] [-I INSTANCE-NAME | -D DATADIR] -c "parameter" --lcname=LCNAME修改配置文件中参数,同时发送信号量到postgresql.conf或者gtm.conf
gs_guc reload -Z NODE-TYPE [-N NODE-NAME] [-I INSTANCE-NAME | -D DATADIR] -c parameter=value修改客户端认证策略,同时发送信号量到pg_hba.conf
gs_guc [ set | reload ] -Z NODE-TYPE [-N NODE-NAME] [-I INSTANCE-NAME | -D DATADIR] -h "HOSTTYPE DATABASE USERNAME IPADDR-WITH-IPMASK AUTHMEHOD authentication-options option"
authmehod-options支持以下选项:
trust:不验密,禁止远程主机使用trust方式访问集群
reject:拒绝访问
md5、sha256、cert:客户端证书认证
gss:kerberos认证
gs_guc [ set | reload ] -Z NODE-TYPE [-N NODE-NAME] [-I INSTANCE-NAME | -D DATADIR] -h "HOSTTYPE DATABASE USERNAME IPADDR-WITH-IPMASK AUTHMEHOD"
如果需要注释已经设置的认证策略,请使用-h "HOSTTYPE DATABASE USERNAME IPADDR-WITH-IPMASK AUTHMEHOD",不需要指定authmehod-options。
gs_guc -? | --help显示版本号信息
gs_guc -V | --version-Z为cmserver或者cmagent
gs_guc set -Z NODE-TYPE -N all -I all -c "parameter = value"gs_guc set -Z NODE-TYPE -c "parameter = value"生成加密密文文件和加密因子文件
gs_guc encrypt [-M keymode] -K password [-U username] -D DATADIR说明:
-K是用户指定的密码,gs_guc会对该密码进行长度(8<=len<=16)和密码复杂度要求,如果不满足,将会报错。
-M是加密类型,当前仅支持server、client和source。默认值为server。
gs_guc generate [-o prefix] -S cipherkey -D DATADIR说明:
-o是输出的OBS类型的cipher和rand文件前缀名称,默认输出文件名前缀为obsserver。其内容仅支持数字、字母和下划线。
-S是用户指定的密码。当其值为default时,会随机生成一段字符串作为密码,该密码长度为13。
表示只修改配置文件中的参数。
表示只检查配置文件中的参数。
表示修改配置文件中的参数,同时发送信号量给数据库进程,使其重新加载配置文件。
生成加密密码文件。
需要设置的主机名称。
取值范围:已有主机名称。
当参数取值为ALL时,表示设置集群中所有的主机。
需要设置的实例名称。
取值范围:已有实例名称。
当参数取值为ALL时,表示设置主机中所有的实例。
需要执行命令的集群实例路径。使用encrypt命令时,此参数表示指定的密码文件生成的路径。
要设定的集群配置参数的名称和参数值。
取值范围:postgresql.conf中的所有参数。
要设定的逻辑集群名称。
取值范围:已经创建的逻辑集群名称。
当进行check操作时,表示需要检查的参数名称;当进行set/reload操作时,表示需要恢复为数据库默认值的参数名称。
指定需要在“pg_hba.conf”增加的客户端认证策略。
取值范围:
HOSTTYPE是必输参数,取值:
其中“local”是一个Unix域套接字,“host”是普通或SSL加密的TCP / IP套接字,“hostssl”是SSL加密的TCP / IP套接字,“hostnossl”是一个纯TCP / IP套接字。
authmehod-options是可选输入,取值:
详细的参数说明请参见“pg_hba.conf”配置文件中的描述。
显示帮助信息。
显示版本信息。
实例类型。
取值范围:
设定该密码在数据库运行过程中,用于服务端(server)、客户端(client)还是创建Data Source对象时调用。
在使用ssl功能时,会涉及到服务端证书和私钥文件的加密密码和客户端证书和私钥文件的加密密码,在加密存储加密密码时,需要指定模式,否则默认是生成服务端的密码文件。
取值范围:
指定需要加密的密码。
取值范围:字符串,符合密码复杂度的要求。
指定要加密的用户,隶属于OS用户。
比如,GaussDB 200可以为每个用户配置不同的ssl证书和私钥文件,指定该选项,可以生成按用户名区分的密码文件。
指定需要加密的字符串。
取值范围:字符串。
指定需要输出的OBS类型的cipher和rand文件前缀名称字符串,默认输出文件名前缀为obsserver。
取值范围:仅支持数字、字母和下划线
示例1:修改数据库允许的最大连接数为800。修改后需要重启数据库才能生效。
gs_guc set -Z coordinator -D ${BIGDATA_DATA_HOME}/mppdb/data1/coordinator -c "max_connections = 800" -N plat1
Total instances: 1. Failed instances: 0.
Success to perform gs_guc!
示例2:将已设置的数据库允许的最大连接数值修改为默认值。修改后需要重启数据库才能生效。
gs_guc set -Z coordinator -D ${BIGDATA_DATA_HOME}/mppdb/data1/coordinator -c "max_connections" -N plat1
Total instances: 1. Failed instances: 0.
Success to perform gs_guc!
示例3:设置客户端认证策略
gs_guc set -Z coordinator -N all -I all -h "host replication testuser 10.252.95.191/32 sha256"
Total instances: 2. Failed instances: 0.
Success to perform gs_guc!
示例4:注释清理已经设置的客户端认证策略
gs_guc set -Z coordinator -N all -I all -h "host replication testuser 10.252.95.191/32"
Total instances: 2. Failed instances: 0.
Success to perform gs_guc!
示例5:加密服务器端存储用户密码的明文,避免密码泄露。
gs_guc encrypt -K Gauss@123 -D /data/xzg/wisequery/gaussdb
gs_guc encrypt -K ***
示例6:检查当前集群中各个实例的参数配置情况。
gs_guc check -Z coordinator -D ${BIGDATA_DATA_HOME}/mppdb/data1/coordinator -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
示例7:同时修改CN和DN的参数,例如修改数据库允许的最大连接数为800。修改后需要重启数据库才能生效。
gs_guc set -Z coordinator -Z datanode -N all -I all -c "max_connections = 800"
Total instances: 21. Failed instances: 0.
Success to perform gs_guc!
示例8:修改CM Server的参数,例如修改集群日志大小为80MB。修改后需要重启数据库才能生效。
gs_guc set -Z cmserver -N all -I all -c "log_file_size = 80MB"
Total instances: 1. Failed instances: 0.
Success to perform gs_guc!
示例9:修改CM Agent的参数,修改cmagent连接尝试次数。修改后需要重启数据库才能生效。
gs_guc set -Z cmagent -c "agent_connect_retries = 100"
Total instances: 3. Failed instances: 0.
Success to perform gs_guc!
示例10:修改DN的参数,修改archive_command归档命令,由用户自己保证归档路径的有效性。修改后需要重启数据库才能生效。推荐使用此方法。
gs_guc set -Z datanode -N all -D /data/datanode -c "archive_command= 'cp %p /data/datanode/pg_xlog/archive_status/%f'"
Total instances: 3. Failed instances: 0.
Success to perform gs_guc!
示例11:修改CN的参数,修改archive_command归档命令,由用户自己保证归档路径的有效性。修改后需要重启数据库才能生效。不推荐使用此方法。
gs_guc set -Z coordinator -N all -I all -c "archive_command= 'cp %p pg_xlog/archive_status/%f'"
Total instances: 3. Failed instances: 0.
Success to perform gs_guc!
示例12:通过用户输入的明文密码,生自定义的test.key.cipher和test.key.rand文件。
gs_guc generate -S Mppdb@123 -D data/xzg/wisequery/gaussdb -o test
gs_guc encrypt -S ***
示例13:修改逻辑集群logical_t1的参数,将shared_buffers改为2GB。需逻辑集群生效。
gs_guc set -Z datanode -N all -I all -c "shared_buffers = 2GB" --lcname="logical_t1"
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3127365/ ,如需转载,请注明出处,否则将追究法律责任。