重庆思庄Oracle、Redhat认证学习论坛

标题: openGauss如何修改数据库参数 [打印本页]

作者: 郑全    时间: 2022-11-17 16:10
标题: openGauss如何修改数据库参数
本帖最后由 郑全 于 2022-11-17 16:23 编辑


我们知道ORACLE修改参数,可以使用命令修改:
alter system set parameter=valuescope=memory|spfile|both;
那么,OPENGAUSS呢,

答案是肯定的,一样可以修改参数,只是使用的一个单独的一个工具gs_guc来实现,见下面例子:

1.语法
   gs_guc 同时修改配置文件中参数(postgresql.conf)

只是修改参数值
   gs_guc set [-N NODE-NAME] [-I INSTANCE-NAME | -D DATADIR] -c "parameter =value"

将已设置的参数值修改为默认值
   gs_guc [ set | reload ] [-N NODE-NAME] [-I INSTANCE-NAME | -D DATADIR] -c "parameter"

2.命令参考
       表示只修改配置文件中的参数。
       表示修改配置文件中的参数,同时发送信号量给数据库进程,使其重新加载配置文件。
      需要设置的主机名称。
      取值范围:已有主机名称。
      当参数取值为ALL时,表示设置openGauss中所有的主机。
      需要设置的实例名称。
      取值范围:已有实例名称。
      当参数取值为ALL时,表示设置主机中所有的实例。
      需要执行命令的openGauss实例路径。使用encrypt命令时,此参数表示指定的密码文件生成的路径。
      备注:-D 与"-I" 不能一块使用
   要设定的openGauss配置参数的名称和参数值。
       说明:
      如果参数是一个字符串变量,则使用-c parameter="'value'" 或者 使用 -c "parameter = 'value'"。
      当使用gs_guc      set/reload为"log_directory” 恢复默认值时,其默认值会被置为具体的data目录。
   取值范围:postgresql.conf中的所有参数。

3.例子
修改数据库允许的最大连接数为800注意:修改后需要重启数据库才能生效。

[omm@dbserver1 ~]$ gs_guc set  -I all -N all -c "max_connections=800"

--使用set

[omm@dbserver1 ~]$ gs_guc set  -I all -N all -c "enable_wdr_snapshot=on"
Begin to perform the total nodes: 2.
Popen count is 2, Popen success count is 2, Popen failure count is 0.
Begin to perform gs_guc for datanodes.
Command count is 2, Command success count is 2, Command failure count is 0.

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

--使用reload
[omm@dbserver1 ~]$ gs_guc reload  -I all -N all -c "max_connections=800"
Begin to perform the total nodes: 2.
Popen count is 2, Popen success count is 2, Popen failure count is 0.
Begin to perform gs_guc for datanodes.
Command count is 2, Command success count is 2, Command failure count is 0.

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

--修改后,查看postgresql.conf配置文件,发现参数值修改了。

[omm@dbserver1 db1]$ grep -i '^max_connection' postgresql.conf
max_connections = 800                   # (change requires restart)

--未重启前,进入数据库看看,还是以前的值,可以说明使用set,reload,都一样。
postgres=# show max_connections;
max_connections
-----------------
5000
(1 row)

--重启:

[omm@dbserver1 ~]$ gs_om -t restart
Stopping cluster.
=========================================
Successfully stopped cluster.
=========================================
End stop cluster.
Starting cluster.
=========================================
[SUCCESS] dbserver1
2022-11-17 15:04:59.534 6375dd1b.1 [unknown] 139759725995776 [unknown] 0 dn_6001_6002 01000  0 [BACKEND] WARNING:  Failed to initialize the memory protect for g_instance.attr.attr_storage.cstore_buffers (1024 Mbytes) or shared memory (3648 Mbytes) is larger.
[SUCCESS] dbserver2
2022-11-17 15:05:01.783 6375dd1d.1 [unknown] 140125177128704 [unknown] 0 dn_6001_6002 01000  0 [BACKEND] WARNING:  Failed to initialize the memory protect for g_instance.attr.attr_storage.cstore_buffers (1024 Mbytes) or shared memory (3648 Mbytes) is larger.
Waiting for check cluster state...
=========================================
Successfully started.

--重启后,修改值已经生效。
[omm@dbserver1 ~]$ gsql -d postgres -p 26000 -r
gsql ((openGauss 2.0.0 build 78689da9) compiled at 2021-03-31 21:04:03 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

postgres=# show max_connections;
max_connections
-----------------
800
(1 row)





欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2