暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss guc参数类型与设置参数

会当凌绝顶 2023-10-26
394

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'"。

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

    gs_guc set -N all -I all -c "paraname=value"

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

    gs_guc set -Z cmagent -c "paraname=value"
    gs_guc set -Z cmagent -N all -I all -c "paraname=value" 

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

    gs_guc set -Z cmserver -c "paraname=value"
    gs_guc set -Z cmserver -N all -I all -c "paraname=value" 
  2. 重启数据库使参数生效。

    说明:

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

    gs_om -t stop && gs_om -t start

方式二

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

说明:

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

gs_guc reload -N all -I all -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;

    在下次会话中生效。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论