首页 > 其他分享 >openGauss 参数设置

openGauss 参数设置

时间:2024-04-29 14:13:19浏览次数:28  
标签:postgres 数据库 参数 设置 openGauss 连接 参数设置

参数设置

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参数分类

参数类型

说明

设置方式

INTERNAL

固定参数,在创建数据库的时候确定,用户无法修改,只能通过show语法或者pg_settings视图进行查看。

POSTMASTER

数据库服务端参数,在数据库启动时确定,可以通过配置文件指定。

支持表2中的方式一、方式四。

SIGHUP

数据库全局参数,可在数据库启动时设置或者在数据库启动后,发送指令重新加载。

支持表2中的方式一、方式二、方式四。

BACKEND

会话连接参数。在创建会话连接时指定,连接建立后无法修改。连接断掉后参数失效。内部使用参数,不推荐用户设置。

支持表2中的方式一、方式二、方式四。

说明:

设置该参数后,下一次建立会话连接时生效。

SUSET

数据库管理员参数。可在数据库启动时、数据库启动后或者数据库管理员通过SQL进行设置。

支持表2中的方式一、方式二或由数据库管理员通过方式三设置。

USERSET

普通用户参数。可被任何用户在任何时刻设置。

支持表2中的方式一、方式二或方式三设置。

openGauss提供了四种方式来修改GUC参数,具体操作请参考表2

表 2 GUC参数设置方式

序号

设置方法

方式一

  1. 使用如下命令修改参数。
    gs_guc set -D datadir -c "paraname=value"
    说明:

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

  2. 重启数据库使参数生效。 说明:

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

    gs_ctl restart -D datadir

方式二

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

方式三

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

  • 设置数据库级别的参数
    openGauss=# ALTER DATABASE dbname SET paraname TO value;

    在下次会话中生效。

  • 设置用户级别的参数
    openGauss=# ALTER USER username SET paraname TO value;

    在下次会话中生效。

  • 设置会话级别的参数
    openGauss=# SET paraname TO value;

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

    说明:

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

方式四

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

  • 设置POSTMASERT级别的参数
    openGauss=# ALTER SYSTEM SET paraname TO value;

    重启后生效。

  • 设置SIGHUP级别的参数
    openGauss=# ALTER SYSTEM SET paraname TO value;

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

  • 设置BACKEND级别的参数
    openGauss=# ALTER SYSTEM SET paraname TO value;

    在下次会话中生效。

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

操作步骤

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

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

  2. 查看archive_mode参数。

    cat /gaussdb/data/dbnode/postgresql.conf | grep archive_mode
    
    archive_mode = on
    

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

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

    gs_guc set -D /gaussdb/data/dbnode -c "archive_mode=off"
    
  4. 重启数据库使参数生效。

    gs_ctl restart -D /gaussdb/data/dbnode
    
  5. 使用如下命令连接数据库。

    gsql -d postgres -p 8000
    

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

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

    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. 检查参数设置的正确性。

    openGauss=# SHOW archive_mode;
     archive_mode
    --------------
     off
    (1 row)
    

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

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

  2. 查看authentication_timeout参数。

    cat /gaussdb/data/dbnode/postgresql.conf | grep authentication_timeout
    
    authentication_timeout = 1min
    
  3. 设置authentication_timeout参数为59s。

    gs_guc reload  -D /gaussdb/data/dbnode -c "authentication_timeout = 59s"
    
    Total instances: 2. Failed instances: 0.
    Success to perform gs_guc!
    
  4. 使用如下命令连接数据库。

    gsql -d postgres -p 8000
    

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

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

    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. 检查参数设置的正确性。

    openGauss=# SHOW authentication_timeout;
     authentication_timeout 
    ------------------------
     59s
    (1 row)
    

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

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

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

    gsql -d postgres -p 8000
    

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

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

    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参数。

    openGauss=# SHOW explain_perf_mode;
     explain_perf_mode 
    -------------------
     normal
    (1 row)
    
  4. 设置explain_perf_mode参数。

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

    • 设置数据库级别的参数

      openGauss=# ALTER DATABASE postgres SET explain_perf_mode TO pretty;
      

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

      ALTER DATABASE
      

      在下次会话中生效。

    • 设置用户级别的参数

      openGauss=# ALTER USER omm SET explain_perf_mode TO pretty;
      

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

      ALTER ROLE
      

      在下次会话中生效。

    • 设置会话级别的参数

      openGauss=# SET explain_perf_mode TO pretty;
      

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

      SET
      
  5. 检查参数设置的正确性。

    openGauss=# SHOW explain_perf_mode;
     explain_perf_mode
    --------------
     pretty
    (1 row)
    

示例

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

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

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

      gsql -d postgres -p 8000
      

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

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

      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. 查看最大连接数。

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

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

      gs_guc set  -D /gaussdb/data/dbnode -c "max_connections = 800"
      
    6. 重启openGauss。

      gs_ctl restart -D /gaussdb/data/dbnode
      
    7. 使用如下命令连接数据库。

      gsql -d postgres -p 8000
      

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

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

      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. 查看最大连接数。

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

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

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

      gsql -d postgres -p 8000
      

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

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

      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. 查看客户端认证的最长时间。

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

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

      gs_guc reload  -D /gaussdb/data/dbnode -c "authentication_timeout = 59s"
      
    6. 使用如下命令连接数据库。

      gsql -d postgres -p 8000
      

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

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

      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. 查看客户端认证的最长时间。

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

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

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

      gsql -d postgres -p 8000
      

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

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

      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. 查看最大连接数。

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

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

      gs_guc set  -D /gaussdb/data/dbnode -c "max_connections = 500"
      
    6. 重启openGauss。

      gs_ctl restart -D /gaussdb/data/dbnode
      
    7. 使用如下命令连接数据库。

      gsql -d postgres -p 8000
      

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

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

      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. 查看最大连接数。

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

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

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

      gsql -d postgres -p 8000
      

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

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

      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. 查看客户端认证的最长时间。

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

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

      gs_guc reload  -D /gaussdb/data/dbnode -c "authentication_timeout = 30s"
      
    6. 使用如下命令连接数据库。

      gsql -d postgres -p 8000
      

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

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

      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. 查看客户端认证的最长时间。

      openGauss=# SHOW authentication_timeout;
       authentication_timeout 
      ------------------------
       30s
      (1 row)
      

详情查看:https://opengauss.org

详情查看:https://docs-opengauss.osinfra.cn

标签:postgres,数据库,参数,设置,openGauss,连接,参数设置
From: https://www.cnblogs.com/renxyz/p/18165565

相关文章

  • openGauss Schema
    SchemaSchema又称作模式。通过管理Schema,允许多个用户使用同一数据库而不相互干扰,可以将数据库对象组织成易于管理的逻辑组,同时便于将第三方应用添加到相应的Schema下而不引起冲突。每个数据库包含一个或多个Schema。数据库中的每个Schema包含表和其他类型的对象。数据库创建初......
  • openGauss SSL证书管理
    SSL证书管理openGauss默认配置了通过openssl生成的安全证书、私钥。并且提供证书替换的接口,方便用户进行证书的替换。证书生成-TLS证书生成-TLCP证书替换主备证书认证配置详情查看:https://opengauss.org详情查看:https://docs-opengauss.osinfra.cn......
  • openGauss MOT纵向扩容架构
    MOT纵向扩容架构纵向扩容即为同一台机器添加额外的核以增加算力。纵向扩容是传统上为单对控制器和多核的机器增加算力的常见形式。纵向扩容架构受限于控制器的可扩展性。技术要求MOT旨在实现以下目标:线性扩容:MOT提供事务性存储引擎,利用单个NUMA架构服务器的所有核,以提供近线......
  • openGauss mysql_fdw
    mysql_fdwmysql_fdw是一款开源插件。openGauss基于开源的mysql_fdwRelease2.5.3版本进行开发适配。编译和使用mysql_fdw需要环境上包含MariaDB的开发包,所以openGauss默认不编译mysql_fdw,下面依次介绍如何编译和使用mysql_fdw。编译mysql_fdw编译mysql_fdw需要安装MariaDB的......
  • openGauss NUMA-aware分配和亲和性
    NUMA-aware分配和亲和性非统一内存访问(NUMA)是一种计算机内存设计,用于多重处理,其中内存访问时间取决于内存相对于处理器的位置。处理器可以利用NUMA的优势,优先访问本地内存(速度更快),而不是访问非本地内存(这意味着它不会访问另一个处理器的本地内存或处理器之间共享的内存)。MOT内存......
  • openGauss 创建和管理分区表
    创建和管理分区表背景信息openGauss数据库支持的分区表为范围分区表、间隔分区表、列表分区表、哈希分区表。范围分区表:将数据基于范围映射到每一个分区,这个范围是由创建分区表时指定的分区键决定的。这种分区方式是最为常用的,并且分区键经常采用日期,例如将销售数据按照月份进......
  • 2024-04-28 记录antd-img-crop参数设置
    前言:以前在做富文本编辑的时候,关于图片裁剪部分使用了antd-img-crop,忘了还有那些可使用的参数,现在上网查找并记录下来吧。antd-img-crop:一个图片裁剪插件,用于包装antd组件库中的upload组件。其官网地址在此:https://github.com/nanxiaobei/antd-img-crop安装:pnpmaddantd-img......
  • openGauss MOT本地内存和全局内存
    MOT本地内存和全局内存SILO管理本地内存和全局内存,如所示。全局内存是所有核共享的长期内存,主要用于存储所有的表数据和索引。本地内存是短期内存,主要由会话使用,用于处理事务及将数据更改存储到事务内存中,直到提交阶段。当事务需要更改时,SILO将该事务的所有数据从全局内存复......
  • openGauss MOT并发控制机制
    MOT并发控制机制通过大量研究,我们找到了最佳的并发控制机制,结论为:基于SILO[的OCC算法是MOT中最符合ACID特性的OCC算法。SILO为满足MOT的挑战性需求提供了最好的基础。说明:MOT完全符合原子性、一致性、隔离性、持久性(ACID)特性,如MOT简介所述。下面介绍MOT的并发控制机制。......
  • openGauss MOT查询原生编译_JIT
    MOT查询原生编译(JIT)MOT使您可以在执行之前以原生格式(使用PREPARE语句)准备并分析预编译的完整查询。这种本机格式以后可以更有效地执行(使用EXECUTE命令)。这种类型的执行效率要高得多,因为在执行期间,本机格式绕过了多个数据库处理层。这种分工避免了重复的解析分析操作。LiteExecu......