ITPub博客

首页 > 数据库 > PostgreSQL > PostgreSQL:参数简介

PostgreSQL:参数简介

原创 PostgreSQL 作者:Ryan_Bai 时间:2020-12-15 10:48:08 0 删除 编辑

该文件是 PostgreSQL 的参数文件,该文件中配置了 PostgreSQL 启动所读取的初始化参数,如果没有指定初始化参数,使用默认的初始化参数启动。类似于 Oracle 中的初始化参数文件。

分类

  • internal:这些参数是只读参数,其中有些参数是 postgres 程序写死的,或者使用一些不同的编辑选项确定的;有些参数是数据库实例初始化时就确定了的,之后就不能再改变此参数值了。这类参数值不能配置在 postgresql.conf 中,因为它们是由 postgres 程序和在初始化实例时写死的。

  • postmaster:改变这些参数值需要重启 PostgreSQL 实例。在 postgresql.conf 文件中改变这些参数后,需要重启 PostgreSQL 实例才能生效。

  • sighup:在 posgtresql.conf 文件中可改变这些参数的值,不需要重启数据库,只需要向 postmaster 进程发送 SIGHUP 信号,让其重启配置新的参数值就可以了。postmaster 进程接收到 SIGHUP 信号后,也会向它的子进程发送 SIGHUP 信号,让新的参数值在所有的进程中都生效。

  • backend:在 postgresql.conf 更改这些设置无需重启服务器,只需要 postmaster 发送一个 SIGHUP 信号,让它重新读取 postgresql.conf 中新的配置值即可,但新的配置值只会出现在这之后的新连接中,在已有的连接中,这些参数的值不会改变。这些参数的值也可以在新连接时,由连接的一些参数改变。

  • superuser:这类参数可以由超级用户使用 set 来改变。而超级用户改变参数值时,只会影响自身的 session 配置,不会影响其他用户。向 postmaster 进程发送 SIGHUP 信号,也只会影响后续建的连接,不会影响现有的连接。

  • user:普通用户可使用 set 命令通过此类参数来改变本连接中的配置值。除了普通用户都可以改变外,这类参数与 superuser 类参数没有区别。

修改参数

  • 全局配置修改

    • 修改 postgresql.conf 配置文件(用于永久修改,需要重启数据库)

    • 通过 ALTER SYSTEM 命令修改

      ALTER SYSTEM SET listen_addresses='*';

      会自动编辑 postgresql.auto.conf 文件,在数据库启动时会加载此文件,并用它的配置覆盖 postgresql.conf 中已有的配置(不要手动修改它)

  • 非全局配置修改

    • DATABASE 级别

      ALTER DATABASE <库名> SET listen_addresses='*';
      ALTER DATABASE <库名> RESET listen_addresses
    • SESSION 级别

      • SET 命令

        SET listen_addresses='*';
        SET listen_addresses TO DEFAULT;
      • PG_SETTINGS 视图

        UPDATE `pg_settings`
           SET setting = '*'
         WHERE name = 'listen_addresses'
      • set_config

        SELECT set_config('configparameter',new_value,false)
    • ROLE 级别

      ALTER ROLE <角色名> IN DATABASE <库名> SET listen_addresses='*';
      ALTER ROLE <角色名> IN DATABASE <库名> RESET listen_addresses

查看参数

  • 数据字典查看

  • SELECT name,setting 
      FROM pg_settings
     WHERE name ~ 'xxx';
    SELECT current_setting(name);
  • show all

参数生效

pg_ctl -D /pgdata/10/data reload
SELECT pg_reload_conf()

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31490526/viewspace-2742274/,如需转载,请注明出处,否则将追究法律责任。

上一篇: PostgreSQL:锁
下一篇: PostgreSQL:EXPLAIN
请登录后发表评论 登录
全部评论
Oracle ACE Associate; OCMU 用户组成员; Oracle 10g OCE、OCA、OCP; Oracle 11g OCP、OCM; MySQL 5.6 OCP; Oracle 11g OCP讲师; PostgreSQL PGCE 获得者;

注册时间:2017-09-18

  • 博文量
    226
  • 访问量
    261367