openGauss学习笔记-130 openGauss 数据库管理-参数设置-重设参数

文章目录

    • [openGauss学习笔记-130 openGauss 数据库管理-参数设置-重设参数](#openGauss学习笔记-130 openGauss 数据库管理-参数设置-重设参数)
      • [130.1 背景信息](#130.1 背景信息)
      • [130.2 GUC参数设置](#130.2 GUC参数设置)
      • [130.3 操作步骤](#130.3 操作步骤)
      • [130.4 示例](#130.4 示例)

openGauss学习笔记-130 openGauss 数据库管理-参数设置-重设参数

130.1 背景信息

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参数说明

130.2 GUC参数设置

openGauss提供了六类GUC参数,具体分类和设置方式请参考表1

表 1 GUC参数分类

参数类型 说明 设置方式
INTERNAL 固定参数,在创建数据库的时候确定,用户无法修改,只能通过show语法或者pg_settings视图进行查看。
POSTMASTER 数据库服务端参数,在数据库启动时确定,可以通过配置文件指定。 支持方式一、方式四。
SIGHUP 数据库全局参数,可在数据库启动时设置或者在数据库启动后,发送指令重新加载。 支持方式一、方式二、方式四。
BACKEND 会话连接参数。在创建会话连接时指定,连接建立后无法修改。连接断掉后参数失效。内部使用参数,不推荐用户设置。 支持方式一、方式二、方式四。说明:设置该参数后,下一次建立会话连接时生效。
SUSET 数据库管理员参数。可在数据库启动时、数据库启动后或者数据库管理员通过SQL进行设置。 支持方式一、方式二或由数据库管理员通过方式三设置。
USERSET 普通用户参数。可被任何用户在任何时刻设置。 支持方式一、方式二或方式三设置。

openGauss提供了四种方式来修改GUC参数,具体操作如下:

表 2 GUC参数设置方式

方式一:

  1. 使用如下命令修改参数。

    gs_guc set -D datadir -c "paraname=value"

说明:

如果参数是一个字符串变量,则使用-c parameter="'value'"或者使用-c "parameter = 'value'"。

使用以下命令在数据库节点上同时设置某个参数。

sql 复制代码
gs_guc set -N all -I all -c "paraname=value"

使用以下命令在数据库节点上设置cm_agent某个参数。

sql 复制代码
gs_guc set -Z cmagent -c "paraname=value"
gs_guc set -Z cmagent -N all -I all -c "paraname=value" 

使用以下命令在数据库节点上设置cm_server某个参数。

sql 复制代码
gs_guc set -Z cmserver -c "paraname=value"
gs_guc set -Z cmserver -N all -I all -c "paraname=value" 
  1. 重启数据库使参数生效。

说明:

重启openGauss操作会导致用户执行操作中断,请在操作之前规划好合适的执行窗口。

sql 复制代码
gs_om -t stop && gs_om -t start

方式二:

sql 复制代码
gs_guc reload -D datadir -c "paraname=value"

说明:

使用以下命令在数据库节点上同时设置某个参数。

sql 复制代码
gs_guc reload -N all -I all -c "paraname=value"

方式三:

修改指定数据库、用户、会话级别的参数。

  • 设置数据库级别的参数

    sql 复制代码
    openGauss=# ALTER DATABASE dbname SET paraname TO value;

    在下次会话中生效。

  • 设置用户级别的参数

    sql 复制代码
    openGauss=# ALTER USER username SET paraname TO value;

    在下次会话中生效。

  • 设置会话级别的参数

    sql 复制代码
    openGauss=# SET paraname TO value;

    修改本次会话中的取值。退出会话后,设置将失效。

    说明:

    SET设置的会话级参数优先级最高,其次是ALTER设置的,其中ALTER DATABASE设置的参数值优先级高于ALTER USER设置,这三种设置方式设置的优先级都高于gs_guc设置方式。

方式四:

使用ALTER SYSTEM SET修改数据库参数。

  • 设置POSTMASERT级别的参数

    sql 复制代码
    openGauss=# ALTER SYSTEM SET paraname TO value;

    重启后生效。

  • 设置SIGHUP级别的参数

    sql 复制代码
    openGauss=# ALTER SYSTEM SET paraname TO value;

    立刻生效(实际等待线程重新加载参数略有延迟)。

  • 设置BACKEND级别的参数

    sql 复制代码
    openGauss=# ALTER SYSTEM SET paraname TO value;

    在下次会话中生效。

注意: 使用方式一和方式二设置参数时,若所设参数不属于当前环境,数据库会提示参数不在支持范围内的相关信息。

130.3 操作步骤

使用方式一设置数据库参数,以在数据库主节点设置archive_mode参数为例。

  1. 以操作系统用户omm登录数据库主节点。

  2. 查看archive_mode参数。

    bash 复制代码
    cat /gaussdb/data/dbnode/postgresql.conf | grep archive_mode
    ini 复制代码
    archive_mode = on

    on表示日志要进行归档操作。

  3. 设置archive_mode参数为off,关闭日志的归档操作。

    bash 复制代码
    gs_guc set -D /gaussdb/data/dbnode -c "archive_mode=off"

    说明:

    可以使用以下命令在数据库节点上设置archive_mode参数为off。

    python 复制代码
    gs_guc set -N all -I all -c "archive_mode=off"
  4. 重启数据库使参数生效。

    sql 复制代码
    gs_om -t stop && gs_om -t start
  5. 使用如下命令连接数据库。

    css 复制代码
    gsql -d postgres -p 8000

    postgres为需要连接的数据库名称,8000为数据库主节点的端口号。

    连接成功后,系统显示类似如下信息:

    python 复制代码
    gsql((openGauss x.x.x build f521c606) compiled at 2021-09-16 14:55:22 commit 2935 last mr 6385 release)
    Non-SSL connection (SSL connection is recommended when requiring high-security)
    Type "help" for help.
    
    openGauss=# 
  6. 检查参数设置的正确性。

    sql 复制代码
    openGauss=# SHOW archive_mode;
     archive_mode
    --------------
     off
    (1 row)

使用方式二设置参数,以在数据库主节点设置authentication_timeout参数为例。

  1. 以操作系统用户omm登录数据库主节点。

  2. 查看authentication_timeout参数。

    bash 复制代码
    cat /gaussdb/data/dbnode/postgresql.conf | grep authentication_timeout
    ini 复制代码
    authentication_timeout = 1min
  3. 设置authentication_timeout参数为59s。

    python 复制代码
    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。

    python 复制代码
    gs_guc reload -N all -I all -c "authentication_timeout = 59s"
  4. 使用如下命令连接数据库。

    css 复制代码
    gsql -d postgres -p 8000

    postgres为需要连接的数据库名称,8000为数据库主节点的端口号。

    连接成功后,系统显示类似如下信息:

    python 复制代码
    gsql((openGauss x.x.x build f521c606) compiled at 2021-09-16 14:55:22 commit 2935 last mr 6385 release)
    Non-SSL connection (SSL connection is recommended when requiring high-security)
    Type "help" for help.
    
    openGauss=# 
  5. 检查参数设置的正确性。

    sql 复制代码
    openGauss=# SHOW authentication_timeout;
     authentication_timeout 
    ------------------------
     59s
    (1 row)

使用方式三设置参数,以设置explain_perf_mode参数为例。

  1. 以操作系统用户omm登录数据库主节点。

  2. 使用如下命令连接数据库。

    css 复制代码
    gsql -d postgres -p 8000

    postgres为需要连接的数据库名称,8000为数据库主节点的端口号。

    连接成功后,系统显示类似如下信息:

    python 复制代码
    gsql((openGauss x.x.x build f521c606) compiled at 2021-09-16 14:55:22 commit 2935 last mr 6385 release)
    Non-SSL connection (SSL connection is recommended when requiring high-security)
    Type "help" for help.
    
    openGauss=# 
  3. 查看explain_perf_mode参数。

    markdown 复制代码
    openGauss=# SHOW explain_perf_mode;
     explain_perf_mode 
    -------------------
     normal
    (1 row)
  4. 设置explain_perf_mode参数。

    使用以下任意方式进行设置:

    • 设置数据库级别的参数

      makefile 复制代码
      openGauss=# ALTER DATABASE postgres SET explain_perf_mode TO pretty;

      当结果显示为如下信息,则表示设置成功。

      sql 复制代码
      ALTER DATABASE

      在下次会话中生效。

    • 设置用户级别的参数

      sql 复制代码
      openGauss=# ALTER USER omm SET explain_perf_mode TO pretty;

      当结果显示为如下信息,则表示设置成功。

      sql 复制代码
      ALTER ROLE

      在下次会话中生效。

    • 设置会话级别的参数

      makefile 复制代码
      openGauss=# SET explain_perf_mode TO pretty;

      当结果显示为如下信息,则表示设置成功。

      sql 复制代码
      SET
  5. 检查参数设置的正确性。

    markdown 复制代码
    openGauss=# SHOW explain_perf_mode;
     explain_perf_mode
    --------------
     pretty
    (1 row)

130.4 示例

  • 示例1:使用方式一修改openGauss数据库主节点的最大连接数。

    1. 以操作系统用户omm登录数据库主节点。

    2. 使用如下命令连接数据库。

      css 复制代码
      gsql -d postgres -p 8000

      postgres为需要连接的数据库名称,8000为数据库主节点的端口号。

      连接成功后,系统显示类似如下信息:

      python 复制代码
      gsql((openGauss x.x.x build f521c606) compiled at 2021-09-16 14:55:22 commit 2935 last mr 6385 release)
      Non-SSL connection (SSL connection is recommended when requiring high-security)
      Type "help" for help.
      
      openGauss=# 
    3. 查看最大连接数。

      sql 复制代码
      openGauss=# SHOW max_connections;
       max_connections 
      -----------------
       200
      (1 row)
    4. 使用如下命令退出数据库。

      makefile 复制代码
      openGauss=# \q
    5. 修改openGauss数据库主节点的最大连接数。

      python 复制代码
      gs_guc set -N all -I all -c "max_connections = 800"
    6. 重启openGauss。

      sql 复制代码
      gs_om -t stop && gs_om -t start
    7. 使用如下命令连接数据库。

      css 复制代码
      gsql -d postgres -p 8000

      postgres为需要连接的数据库名称,8000为数据库主节点的端口号。

      连接成功后,系统显示类似如下信息:

      python 复制代码
      gsql((openGauss x.x.x build f521c606) compiled at 2021-09-16 14:55:22 commit 2935 last mr 6385 release)
      Non-SSL connection (SSL connection is recommended when requiring high-security)
      Type "help" for help.
      
      openGauss=# 
    8. 查看最大连接数。

      sql 复制代码
      openGauss=# SHOW max_connections;
       max_connections 
      -----------------
       800
      (1 row)
  • 示例2:使用方式二设置数据库主节点的客户端认证最长时间参数"authentication_timeout"

    1. 以操作系统用户omm登录数据库主节点。

    2. 使用如下命令连接数据库。

      css 复制代码
      gsql -d postgres -p 8000

      postgres为需要连接的数据库名称,8000为数据库主节点的端口号。

      连接成功后,系统显示类似如下信息:

      python 复制代码
      gsql((openGauss x.x.x build f521c606) compiled at 2021-09-16 14:55:22 commit 2935 last mr 6385 release)
      Non-SSL connection (SSL connection is recommended when requiring high-security)
      Type "help" for help.
      
      openGauss=# 
    3. 查看客户端认证的最长时间。

      sql 复制代码
      openGauss=# SHOW authentication_timeout;
       authentication_timeout 
      ------------------------
       1min
      (1 row)
    4. 使用如下命令退出数据库。

      makefile 复制代码
      openGauss=# \q
    5. 修改数据库主节点的客户端认证最长时间。

      python 复制代码
      gs_guc reload -N all -I all -c "authentication_timeout = 59s"
    6. 使用如下命令连接数据库。

      css 复制代码
      gsql -d postgres -p 8000

      postgres为需要连接的数据库名称,8000为数据库主节点的端口号。

      连接成功后,系统显示类似如下信息:

      python 复制代码
      gsql((openGauss x.x.x build f521c606) compiled at 2021-09-16 14:55:22 commit 2935 last mr 6385 release)
      Non-SSL connection (SSL connection is recommended when requiring high-security)
      Type "help" for help.
      
      openGauss=# 
    7. 查看客户端认证的最长时间。

      sql 复制代码
      openGauss=# SHOW authentication_timeout;
       authentication_timeout 
      ------------------------
       59s
      (1 row)
  • 示例3:修改openGauss数据库节点的最大连接数。

    1. 以操作系统用户omm登录数据库主节点。

    2. 使用如下命令连接数据库。

      css 复制代码
      gsql -d postgres -p 8000

      postgres为需要连接的数据库名称,8000为数据库主节点的端口号。

      连接成功后,系统显示类似如下信息:

      python 复制代码
      gsql((openGauss x.x.x build f521c606) compiled at 2021-09-16 14:55:22 commit 2935 last mr 6385 release)
      Non-SSL connection (SSL connection is recommended when requiring high-security)
      Type "help" for help.
      
      openGauss=# 
    3. 查看最大连接数。

      sql 复制代码
      openGauss=# SHOW max_connections;
       max_connections 
      -----------------
       200
      (1 row)
    4. 使用如下命令退出数据库。

      makefile 复制代码
      openGauss=# \q
    5. 修改openGauss数据库节点的最大连接数。

      python 复制代码
      gs_guc set -N all -I all -c "max_connections = 500"
    6. 重启openGauss。

      sql 复制代码
      gs_om -t stop
      gs_om -t start
    7. 使用如下命令连接数据库。

      css 复制代码
      gsql -d postgres -p 8000

      postgres为需要连接的数据库名称,8000为数据库主节点的端口号。

      连接成功后,系统显示类似如下信息:

      python 复制代码
      gsql((openGauss x.x.x build f521c606) compiled at 2021-09-16 14:55:22 commit 2935 last mr 6385 release)
      Non-SSL connection (SSL connection is recommended when requiring high-security)
      Type "help" for help.
      
      openGauss=# 
    8. 查看最大连接数。

      sql 复制代码
      openGauss=# SHOW max_connections;
       max_connections 
      -----------------
       500
      (1 row)
  • 示例4:设置数据库节点的客户端认证最长时间参数"authentication_timeout"

    1. 以操作系统用户omm登录数据库主节点。

    2. 使用如下命令连接数据库。

      css 复制代码
      gsql -d postgres -p 8000

      postgres为需要连接的数据库名称,8000为数据库主节点的端口号。

      连接成功后,系统显示类似如下信息:

      python 复制代码
      gsql((openGauss x.x.x build f521c606) compiled at 2021-09-16 14:55:22 commit 2935 last mr 6385 release)
      Non-SSL connection (SSL connection is recommended when requiring high-security)
      Type "help" for help.
      
      openGauss=# 
    3. 查看客户端认证的最长时间。

      sql 复制代码
      openGauss=# SHOW authentication_timeout;
       authentication_timeout 
      ------------------------
       1min
      (1 row)
    4. 使用如下命令退出数据库。

      makefile 复制代码
      openGauss=# \q
    5. 修改openGauss数据库节点的客户端认证最长时间。

      python 复制代码
      gs_guc reload -N all -I all -c "authentication_timeout = 30s"
    6. 使用如下命令连接数据库。

      css 复制代码
      gsql -d postgres -p 8000

      postgres为需要连接的数据库名称,8000为数据库主节点的端口号。

      连接成功后,系统显示类似如下信息:

      python 复制代码
      gsql((openGauss x.x.x build f521c606) compiled at 2021-09-16 14:55:22 commit 2935 last mr 6385 release)
      Non-SSL connection (SSL connection is recommended when requiring high-security)
      Type "help" for help.
      
      openGauss=# 
    7. 查看客户端认证的最长时间。

      sql 复制代码
      openGauss=# SHOW authentication_timeout;
       authentication_timeout 
      ------------------------
       30s
      (1 row)

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

相关推荐
异世界贤狼转生码农2 小时前
MongoDB Windows 系统实战手册:从配置到数据处理入门
数据库·mongodb
QuZhengRong2 小时前
【数据库】Navicat 导入 Excel 数据乱码问题的解决方法
android·数据库·excel
码农阿豪2 小时前
Windows从零到一安装KingbaseES数据库及使用ksql工具连接全指南
数据库·windows
时序数据说7 小时前
时序数据库市场前景分析
大数据·数据库·物联网·开源·时序数据库
听雪楼主.11 小时前
Oracle Undo Tablespace 使用率暴涨案例分析
数据库·oracle·架构
我科绝伦(Huanhuan Zhou)11 小时前
KINGBASE集群日常维护管理命令总结
数据库·database
妖灵翎幺11 小时前
Java应届生求职八股(2)---Mysql篇
数据库·mysql
HMBBLOVEPDX11 小时前
MySQL的事务日志:
数据库·mysql
weixin_4196583113 小时前
MySQL数据库备份与恢复
数据库·mysql
专注API从业者15 小时前
基于 Flink 的淘宝实时数据管道设计:商品详情流式处理与异构存储
大数据·前端·数据库·数据挖掘·flink