重设参数

    • 参数名称不区分大小写。
    • 参数取值有整型、浮点型、字符串、布尔型和枚举型五类。

      • 布尔值可以是(on,off)、(true,false)、(yes,no)或者(1,0),且不区分大小写。
      • 枚举类型的取值是在系统表pg_settings的enumvals字段取值定义的。
    • 对于有单位的参数,在设置时请指定单位,否则将使用默认的单位。

      • 参数的默认单位在系统表pg_settings的unit字段定义的。
      • 内存单位有:KB(千字节)、MB(兆字节)和GB(吉字节)。
      • 时间单位:ms(毫秒)、s(秒)、min(分钟)、h(小时)和d(天)。

    具体参数说明请参见GUC参数说明

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

    表 1 GUC参数分类

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

    表 2 GUC参数设置方式

    序号

    设置方法

    方式一

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

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

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

    2. 重启数据库使参数生效。
      说明:
      1. gs_om -t stop && gs_om -t start

    方式二

    1. gs_guc reload -D datadir -c paraname=value
    说明:

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

    1. gs_guc reload -N all -I all -c paraname=value

    方式三

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

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

      在下次会话中生效。

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

      在下次会话中生效。

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

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

    方式四

    使用修改数据库参数。

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

      重启后生效。

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

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

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

      在下次会话中生效。

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

    1. 以操作系统用户omm登录数据库主节点。
    2. 查看archive_mode参数。

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

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

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

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

      1. gs_om -t stop && gs_om -t start
    5. 使用如下命令连接数据库。

      1. gsql -d postgres -p 8000

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

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

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

      1. postgres=# SHOW archive_mode;
      2. archive_mode
      3. --------------
      4. off
      5. (1 row)

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

    1. 以操作系统用户omm登录数据库主节点。
    2. 查看authentication_timeout参数。

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

      1. Total instances: 2. Failed instances: 0.
      2. Success to perform gs_guc!

      说明: 可以使用以下命令在数据库节点上设置authentication_timeout参数为59s。

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

      1. gsql -d postgres -p 8000

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

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

      1. gsql ((openGauss x.x.x build 290d125f) compiled at 2020-12-08 02:59:43 commit 2143 last mr 131
      2. Non-SSL connection (SSL connection is recommended when requiring high-security)
      3. Type "help" for help.
      4. postgres=#
    5. 检查参数设置的正确性。

      1. authentication_timeout
      2. ------------------------
      3. 59s
      4. (1 row)

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

    1. 以操作系统用户omm登录数据库主节点。
    2. 使用如下命令连接数据库。

      1. gsql -d postgres -p 8000

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

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

      1. gsql ((openGauss x.x.x build 290d125f) compiled at 2020-12-08 02:59:43 commit 2143 last mr 131
      2. Non-SSL connection (SSL connection is recommended when requiring high-security)
      3. Type "help" for help.
      4. postgres=#
      1. postgres=# SHOW explain_perf_mode;
      2. explain_perf_mode
      3. -------------------
      4. normal
      5. (1 row)
    3. 设置explain_perf_mode参数。

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

      • 设置数据库级别的参数

        1. postgres=# ALTER DATABASE postgres SET explain_perf_mode TO pretty;

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

        1. ALTER DATABASE

        在下次会话中生效。

      • 设置用户级别的参数

        1. postgres=# ALTER USER omm SET explain_perf_mode TO pretty;

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

        1. ALTER ROLE

        在下次会话中生效。

      • 设置会话级别的参数

        1. postgres=# SET explain_perf_mode TO pretty;

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

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

      1. postgres=# SHOW explain_perf_mode;
      2. explain_perf_mode
      3. --------------
      4. pretty
      5. (1 row)
    • 示例1:使用方式一修改openGauss数据库主节点的最大连接数。

      1. 以操作系统用户omm登录数据库主节点。
      2. 使用如下命令连接数据库。

        1. gsql -d postgres -p 8000

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

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

        1. gsql ((openGauss x.x.x build 290d125f) compiled at 2020-12-08 02:59:43 commit 2143 last mr 131
        2. Non-SSL connection (SSL connection is recommended when requiring high-security)
        3. postgres=#
      3. 查看最大连接数。

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

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

        1. gs_guc set -N all -I all -c "max_connections = 800"
      6. 重启openGauss。

        1. gs_om -t stop && gs_om -t start
      7. 使用如下命令连接数据库。

        1. gsql -d postgres -p 8000

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

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

        1. gsql ((openGauss x.x.x build 290d125f) compiled at 2020-12-08 02:59:43 commit 2143 last mr 131
        2. Non-SSL connection (SSL connection is recommended when requiring high-security)
        3. Type "help" for help.
        4. postgres=#
      8. 查看最大连接数。

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

      1. 以操作系统用户omm登录数据库主节点。
      2. 使用如下命令连接数据库。

        1. gsql -d postgres -p 8000

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

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

        1. gsql ((openGauss x.x.x build 290d125f) compiled at 2020-12-08 02:59:43 commit 2143 last mr 131
        2. Non-SSL connection (SSL connection is recommended when requiring high-security)
        3. Type "help" for help.
        4. postgres=#
      3. 查看客户端认证的最长时间。

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

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

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

        1. gsql -d postgres -p 8000

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

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

      7. 查看客户端认证的最长时间。

        1. postgres=# SHOW authentication_timeout;
        2. authentication_timeout
        3. ------------------------
        4. (1 row)