openGauss开源数据库实战二十三

任务二十三 openGauss 参数管理

任务目标

掌握openGauss数据库各种参数的配置管理方法。

实施步骤

一、启动参数文件及参数类型

启动参数文件的位置由shell环境变量PGDATA来确定,可以通过echo $PGDATA命令查看。

在我们的实验环境中,启动参数文件位于/opt/huawei/install/data/dn/postgresql.conf 下。
启动参数文件中有两种类型的参数:一种参数在修改之后,需要重新启动openGaussDBMS才能生效;另外一种参数在修改之后只需要reload一下就可以生效。

1.参数值修改后必须重新启动数据库的参数

参数max_connections用来配置用户连接到openGaussDBMS的最大连接数。执行下面的命令,查看当前数据库管理系统中参数max_connections的值:

gsql -d postgres -p 26000 -r
show max_connections;
\q

如果想把参数max_connections的当前值1000修改为4000,可以手动修改启动参数文件postgresql.conf中max_connections的值。先进入Linux vi编辑器:

vi /opt/huawei/install/data/dn/postgresql.conf

将下面这行

max_connections = 5000

修改为

max_connections = 4000

然后需要重新启动openGaussDBMS,让修改生效:

gs_om -t restart

执行下面的命令,检查刚刚进行的参数修改:

gsql -d postgres -p 26000 -r
show max_connections;
\q
2.参数值修改后只需要reload操作的参数

参数temp_buffers用来设置每个数据库会话能够使用的最大临时缓冲区。执行下面的命令,查看当前数据库管理系统中参数temp_buffers的值:

gsql -d postgres -p 26000 -r
show temp_buffers;
\q

如果想把参数temp_buffers的当前值1MB修改为16MB,可以手动修改启动参数文件postgresql.conf中temp_buffers的值。先进入Linux vi编辑器:

vi /opt/huawei/install/data/dn/postgresql.conf

将下面这行

#temp_buffers = 8MB

修改为

temp_buffers = 16MB

不需要重新启动数据库,执行下面的命令,reload参数文件让参数生效:

gsql -d postgres -p 26000 -r
select pg_reload_conf();
\q 

需要重新登录到openGauss DBMS来查看参数temp_buffers的当前值:

gsql -d postgres -p 26000 -r
show temp_buffers;
\q

还有一种修改方法,直接执行下面的命令,可以修改参数文件并完成reload操作:

gs_guc reload -N all -I all -c "temp_buffers = 8MB"
gsql -d postgres -p 26000 -r
show temp_buffers;
\q 

检查启动参数文件postgresql.conf,发现参数temp_buffers已经被修改为8MB

二、设置数据库级参数

首先查看当前数据库studentdb的参数enable_indexscan的设置情况:

gsql -d studentdb -h 192.168.100.91 -U student -p 26000 -W student@ustb2020 -r
\x
select * from pg_settings where name='enable_indexscan';
select current_setting('enable_indexscan');

将数据库studentdb的参数enable_indexscan设置为off并退出:

alter database studentdb set enable_indexscan=off;
select * from pg_settings where name='enable_indexscan';
\q

再次查看当前数据库studentdb的参数enable_indexscan的设置情况:

gsql -d studentdb -h 192.168.100.91 -U student -p 26000 -W student@ustb2020 -r
\x
select * from pg_settings where name='enable_indexscan';
select current_setting('enable_indexscan');

在这里插入图片描述

将数据库studentdb的参数enable_indexscan设置为on并退出:

alter database studentdb set enable_indexscan=on;
\q

三、设置用户级参数

首先查看当前数据库用户student的参数enable_indexscan`的设置情况:

gsql -d studentdb -h 192.168.100.91 -U student -p 26000 -W student@ustb2020 -r
select current_setting('enable_indexscan');

将数据库用户student的参数enable_indexscan设置为ofr并退出gsql:

alter role student set enable_indexscan=off;
\q

再次查看当前数据库用户student的参数enable_indexscan的设置情况:

gsql -d studentdb -h 192.168.100.91 -U student -p 26000 -W student@ustb2020 -r
select current_setting('enable_indexscan');
\q

虽然数据库studentdb的参数enable_indexscan已经设置为on,但是用户student的参数enable_indexscan的值为off,由于用户级参数的优先级高于数据库级参数,因此在用户student登录到数据库studentdb后,参数enable_indexscan的值由用户级的设置决定。

四、设置会话级参数

首先查看当前会话的参数enable_indexscan的设置情况:

gsql -d studentdb -h 192.168.100.91 -U student -p 26000 -W student@ustb2020 -r
select current_setting('enable_indexscan');

如上所述,在用户student登录到数据库studentdb后,参数enable_indexscan的值由用户级的参数设置决定,目前参数enable_indexscan的值是off
执行下面的语句,在会话级设置参数enable_indexscan:

-- set命令设置会话级参数
set enable_indexscan=on;
select current_setting('enable_indexscan');

可以看出,参数设置的优先级顺序是:会话级别>用户级别>数据库级别。

五、将参数设置为默认值

在会话级将参数设置为默认值:

set enable_indexscan to default;

在用户级将参数设置为默认值:

alter role student set enable_indexscan to default;

在数据库级将参数设置为默认值:

alter database studentdb set enable_indexscan to default;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值