oracle pg locks,从Oracle到PG-PostgreSQL参数配置和查看详解

一、postgresql数据库参数配置文件介绍

和Oracle一样,pg也有自己专门的参数配置文件:

[postgres@akendb01]$ls -l *.conf

-rw------- 1 postgres postgres 4786 Oct 10 22:54 pg_hba.conf

-rw------- 1 postgres postgres 1636 Aug 26 21:28 pg_ident.conf

-rw------- 1 postgres postgres 137 Oct 4 10:19 postgresql.auto.conf

-rw------- 1 postgres postgres 24030 Aug 27 22:03 postgresql.conf

[postgres@akendb01]$

上面列出了pg主库的配置文件,和实例参数配置相关的是postgresql.conf和postgresql.auto.conf。其中:

1.postgresql.conf和Oracle的pfile一样,可以直接vi修改将具体的参数固化,参数值重启不丢失。

2.postgresql.auto.conf则专门用于记录通过以下命令修改的参数值:

alter system set parametername=p_value

重启不失效,且参数值会覆盖postgresql.conf文件的同名参数值。

3.不建议对postgresql.auto.conf 手工vi编辑修改,有点类似Oracle的spfile文件,但只有alter system命令修改的参数才会记录到该文件。

二、postgresql数据库参数配置

1 .全局参数修改方式修改postgresql.conf。

通过alter system 命令修改全局配置(会保存到postgresql.auto.conf)

启动时设置,不推荐,除非进入单用户模式。

psql -c configparameter=newvalue

2 .全局参数修改示例#修改语法:alter system set parametername=value|default;

#重置语法:alter system reset parametername;

#重置所有参数,生产环境慎用:alter system reset all;

(postgres@[local]:5432)[postgres]#alter system set client_min_messagess=warning;

SET

(postgres@[local]:5432)[postgres]#reset client_min_messagess;

RESET

3.配置database级别的参数#修改语法:alter database dbname set parametername {to|=} {value|'value'|default}

#重置语法:alter database dbname reset parametername

alter database db1 set client_min_messages to warning;

alter database db1 reset client_min_messages;

4. 配置session级别的参数

1)直接set命令方式set parametername {to|=} {value|'value'|default};

reset parametername ;

2)update视图pg_settings方式update pg_settings set setting=new_value where name='parametername';

3)调用set_config()函数方式更新session参数值select set_config(parametername, new_value, is_local);

关于函数中的第三个参数解析:

If is_local is true, the new value will only apply to the current transaction.

If you want the new value to apply for the current session, use false instead.

5.配置user/role级别的参数#设置语法:alter role username [in database dbname] set configparameter {to | =} {value|'value'|default}

#重置语法:alter role username [in database dbname] reset configparameter;

#重置所有参数:--重置某个参数:alter role username [in database dbname] reset all;

6.查看语法帮助

\h alter {system|database|...}.... <<

7.参数生效的几种方式

postgresql的参数分几种生效类型:postmaster:只能重启生效。

sighup:给服务器发送HUP信号即可重新加载postgresql.conf生效。

backend:与sighup类似,不影响已有会话,对新会话生效。

user:单个会话用户在任意时间可以修改,只对当前会话生效。

superuser:只对超级用户如postgres生效,生效不用重新加载配置。

internal:编译期间的设置,只有重新编译才生效。

对于不支持即时生效的参数,可以通过以下方式使新的参数值生效:使用超级用户调用pg_reload_config()函数

使用pg_ctl命令触发SIGHUP信号重新加载配置文件:pg_ctl reload

用UNIX的kill命令手动发起HUP信号:

ps -ef | grep -i postmaster | grep -v grep | xargs kill -HUP

重启DB服务

三、postgresql数据库参数查看

1.方法一:show parametername|all

该方法类似于Oracle的show parameter parameter name。使用 show all查看所有参数值。和Oracle的show parameter直接回车的效果相同。

如下查看指定参数值:show client_min_messages;

2. 方法二:使用pg_settings视图

该方法类似于Oracle的v$parameter,可直接查看当前会话的具体参数值。select name,setting from pg_settings where name='shared_buffers';

————————本文完————————

你可能感兴趣的:(oracle,pg,locks)