配置运行参数
查看参数当前取值
openGauss安装后,有一套默认的运行参数,为了使openGauss与业务的配合度更高,用户需要根据业务场景和数据量的大小进行GUC参数调整。
操作步骤
- 以操作系统用户omm登录数据库主节点。
使用如下命令连接数据库。
gsql -d postgres -p 8000
postgres为需要连接的数据库名称,8000为数据库主节点的端口号。
连接成功后,系统显示类似如下信息:
gsql ((openGauss 1.0.1 build 290d125f) compiled at 2020-05-08 02:59:43 commit 2143 last mr 131
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=#
查看数据库运行参数当前取值。
方法一:使用SHOW命令。
使用如下命令查看单个参数:
postgres=# SHOW server_version;
server_version显示数据库版本信息的参数。
使用如下命令查看所有参数:
postgres=# SHOW ALL;
方法二:使用pg_settings视图。
使用如下命令查看单个参数:
postgres=# SELECT * FROM pg_settings WHERE NAME='server_version';
使用如下命令查看所有参数:
postgres=# SELECT * FROM pg_settings;
示例
查看服务器的版本号。
postgres=# SHOW server_version;
server_version
----------------
9.2.4
(1 row)
重设参数
背景信息
openGauss提供了多种修改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参数设置
openGauss提供了六类GUC参数,具体分类和设置方式请参考表1:
表 1 GUC参数分类
支持表2中的方式一、方式四。 | ||
支持表2中的方式一、方式二、方式四。 | ||
支持表2中的方式一、方式二、方式四。 | ||
支持表2中的方式一、方式二或由数据库管理员通过方式三设置。 | ||
支持表2中的方式一、方式二或方式三设置。 |
openGauss提供了四种方式来修改GUC参数,具体操作请参考表2:
表 2 GUC参数设置方式
操作步骤
使用方式一设置数据库参数,以在数据库主节点设置archive_mode参数为例。
- 以操作系统用户omm登录数据库主节点。
查看archive_mode参数。
cat /gaussdb/data/dbnode/postgresql.conf | grep archive_mode
archive_mode = on
on表示日志要进行归档操作。
设置archive_mode参数为off,关闭日志的归档操作。
gs_guc set -D /gaussdb/data/dbnode -c "archive_mode=off"
说明: 可以使用以下命令在数据库节点上设置archive_mode参数为off。
gs_guc set -N all -I all -c "archive_mode=off"
重启数据库使参数生效。
gs_om -t stop && gs_om -t start
使用如下命令连接数据库。
gsql -d postgres -p 8000
postgres为需要连接的数据库名称,8000为数据库主节点的端口号。
连接成功后,系统显示类似如下信息:
gsql ((openGauss 1.0.1 build 290d125f) compiled at 2020-05-08 02:59:43 commit 2143 last mr 131
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=#
检查参数设置的正确性。
postgres=# SHOW archive_mode;
archive_mode
--------------
off
(1 row)
使用方式二设置参数,以在数据库主节点设置authentication_timeout参数为例。
- 以操作系统用户omm登录数据库主节点。
查看authentication_timeout参数。
cat /gaussdb/data/dbnode/postgresql.conf | grep authentication_timeout
authentication_timeout = 1min
设置authentication_timeout参数为59s。
gs_guc reload -N all -I all -c "authentication_timeout = 59s"
Total instances: 2. Failed instances: 0.
Success to perform gs_guc!
说明: 可以使用以下命令在数据库节点上设置authentication_timeout参数为59s。
gs_guc reload -N all -I all -c "authentication_timeout = 59s"
使用如下命令连接数据库。
gsql -d postgres -p 8000
postgres为需要连接的数据库名称,8000为数据库主节点的端口号。
连接成功后,系统显示类似如下信息:
gsql ((openGauss 1.0.1 build 290d125f) compiled at 2020-05-08 02:59:43 commit 2143 last mr 131
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=#
检查参数设置的正确性。
postgres=# SHOW authentication_timeout;
authentication_timeout
------------------------
59s
(1 row)
使用方式三设置参数,以设置explain_perf_mode参数为例。
- 以操作系统用户omm登录数据库主节点。
使用如下命令连接数据库。
gsql -d postgres -p 8000
postgres为需要连接的数据库名称,8000为数据库主节点的端口号。
连接成功后,系统显示类似如下信息:
gsql ((openGauss 1.0.1 build 290d125f) compiled at 2020-05-08 02:59:43 commit 2143 last mr 131
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=#
查看explain_perf_mode参数。
postgres=# SHOW explain_perf_mode;
explain_perf_mode
-------------------
normal
(1 row)
设置explain_perf_mode参数。
使用以下任意方式进行设置:
设置数据库级别的参数
postgres=# ALTER DATABASE postgres SET explain_perf_mode TO pretty;
当结果显示为如下信息,则表示设置成功。
ALTER DATABASE
在下次会话中生效。
设置用户级别的参数
postgres=# ALTER USER omm SET explain_perf_mode TO pretty;
当结果显示为如下信息,则表示设置成功。
ALTER ROLE
在下次会话中生效。
设置会话级别的参数
postgres=# SET explain_perf_mode TO pretty;
当结果显示为如下信息,则表示设置成功。
SET
检查参数设置的正确性。
postgres=# SHOW explain_perf_mode;
explain_perf_mode
--------------
pretty
(1 row)
示例
示例1:使用方式一修改openGauss数据库主节点的最大连接数。
- 以操作系统用户omm登录数据库主节点。
使用如下命令连接数据库。
gsql -d postgres -p 8000
postgres为需要连接的数据库名称,8000为数据库主节点的端口号。
连接成功后,系统显示类似如下信息:
gsql ((openGauss 1.0.1 build 290d125f) compiled at 2020-05-08 02:59:43 commit 2143 last mr 131
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=#
查看最大连接数。
postgres=# SHOW max_connections;
max_connections
-----------------
200
(1 row)
使用如下命令退出数据库。
postgres=# \q
修改openGauss数据库主节点的最大连接数。
gs_guc set -N all -I all -c "max_connections = 800"
重启openGauss。
gs_om -t stop && gs_om -t start
使用如下命令连接数据库。
gsql -d postgres -p 8000
postgres为需要连接的数据库名称,8000为数据库主节点的端口号。
连接成功后,系统显示类似如下信息:
gsql ((openGauss 1.0.1 build 290d125f) compiled at 2020-05-08 02:59:43 commit 2143 last mr 131
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=#
查看最大连接数。
postgres=# SHOW max_connections;
max_connections
-----------------
800
(1 row)
示例2:使用方式二设置数据库主节点的客户端认证最长时间参数“authentication_timeout”
- 以操作系统用户omm登录数据库主节点。
使用如下命令连接数据库。
gsql -d postgres -p 8000
postgres为需要连接的数据库名称,8000为数据库主节点的端口号。
连接成功后,系统显示类似如下信息:
gsql ((openGauss 1.0.1 build 290d125f) compiled at 2020-05-08 02:59:43 commit 2143 last mr 131
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=#
查看客户端认证的最长时间。
postgres=# SHOW authentication_timeout;
authentication_timeout
------------------------
1min
(1 row)
使用如下命令退出数据库。
postgres=# \q
修改openGauss数据库主节点的客户端认证最长时间。
gs_guc reload -N all -I all -c "authentication_timeout = 59s"
使用如下命令连接数据库。
gsql -d postgres -p 8000
postgres为需要连接的数据库名称,8000为数据库主节点的端口号。
连接成功后,系统显示类似如下信息:
gsql ((openGauss 1.0.1 build 290d125f) compiled at 2020-05-08 02:59:43 commit 2143 last mr 131
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=#
查看客户端认证的最长时间。
postgres=# SHOW authentication_timeout;
authentication_timeout
------------------------
59s
(1 row)
示例3:修改openGauss数据库节点的最大连接数。
- 以操作系统用户omm登录数据库主节点。
使用如下命令连接数据库。
gsql -d postgres -p 8000
postgres为需要连接的数据库名称,8000为数据库主节点的端口号。
连接成功后,系统显示类似如下信息:
gsql ((openGauss 1.0.1 build 290d125f) compiled at 2020-05-08 02:59:43 commit 2143 last mr 131
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=#
查看最大连接数。
postgres=# SHOW max_connections;
max_connections
-----------------
200
(1 row)
使用如下命令退出数据库。
postgres=# \q
修改openGauss数据库节点的最大连接数。
gs_guc set -N all -I all -c "max_connections = 500"
重启openGauss。
gs_om -t stop
gs_om -t start
使用如下命令连接数据库。
gsql -d postgres -p 8000
postgres为需要连接的数据库名称,8000为数据库主节点的端口号。
连接成功后,系统显示类似如下信息:
gsql ((openGauss 1.0.1 build 290d125f) compiled at 2020-05-08 02:59:43 commit 2143 last mr 131
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=#
查看最大连接数。
postgres=# SHOW max_connections;
max_connections
-----------------
500
(1 row)
示例4:设置数据库节点的客户端认证最长时间参数“authentication_timeout”
- 以操作系统用户omm登录数据库主节点。
使用如下命令连接数据库。
gsql -d postgres -p 8000
postgres为需要连接的数据库名称,8000为数据库主节点的端口号。
连接成功后,系统显示类似如下信息:
gsql ((openGauss 1.0.1 build 290d125f) compiled at 2020-05-08 02:59:43 commit 2143 last mr 131
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=#
查看客户端认证的最长时间。
postgres=# SHOW authentication_timeout;
authentication_timeout
------------------------
1min
(1 row)
使用如下命令退出数据库。
postgres=# \q
修改openGauss数据库节点的客户端认证最长时间。
gs_guc reload -N all -I all -c "authentication_timeout = 30s"
使用如下命令连接数据库。
gsql -d postgres -p 8000
postgres为需要连接的数据库名称,8000为数据库主节点的端口号。
连接成功后,系统显示类似如下信息:
gsql ((openGauss 1.0.1 build 290d125f) compiled at 2020-05-08 02:59:43 commit 2143 last mr 131
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=#
查看客户端认证的最长时间。
postgres=# SHOW authentication_timeout;
authentication_timeout
------------------------
30s
(1 row)