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

8.PostgreSQL常用的配置文件

DBA随笔记 2024-10-30
169

1. postgresql.conf参数文件

postgresql.conf 是 PostgreSQL 数据库的主要配置文件,用于控制数据库实例的行为和特性,一般在$PGDATA目录下。这个文件包括了众多的配置选项,比如内存使用限制、连接设置、日志记录规则等。根据系统资源和应用需求对这些参数进行调整,可以优化数据库的性能、安全性和可用性。

以下是一些常见的postgresql.conf 配置参数及其说明,以帮助我们了解如何配置 PostgreSQL:

    1.监听地址(listen_addresses):
    控制 PostgreSQL 监听哪些网络地址。您可以设置为 'localhost' 以便仅接受来自本机的连接,或者设为 '*' 以接受任何地址的连接。
    2.端口(port):
    PostgreSQL 服务监听的端口,默认是 5432
    3.最大连接数(max_connections):
    同时连接到数据库的客户端最大数量。需要根据系统资源进行适当配置。
    4.共享缓冲区(shared_buffers):
    PostgreSQL 用于缓存数据的内存大小。通常设置为系统内存的15%-25%。
    5.工作内存(work_mem):
    每个数据库操作可用的内存量,影响排序、哈希操作的性能。
    6.维护工作内存(maintenance_work_mem):
    数据库维护操作(如索引创建和VACUUM操作)能使用的最大内存。
    7.自动清理(autovacuum):
    控制自动清理进程参数。自动清理用于回收空间,更新表的统计信息,非常关键。
    8.日志记录设置(log_*):
    控制日志的生成和管理,如 log_statement 定义记录哪些类型的SQL语句,log_directory和log_filename定义日志文件的存储位置和名称规则等。
    9. WAL配置(wal_level, max_wal_senders等):
    WAL(Write-Ahead Logging)相关的配置,决定了日志的详细程度、复制功能以及点对点延迟等。
    10.时间和区域设置(timezone, lc_*):
    控制服务器的时区和区域设置,例如lc_messages控制系统消息的语言,timezone确定时间戳的时区等。

    2. pg_hba.conf配置文件

    pg_hba.conf 是 PostgreSQL 数据库的一个重要配置文件,用于控制客户端对数据库的访问权限,一般在$PGDATA目录下。HBA 代表“host-based authentication”,即基于主机的认证。通过编辑这个文件,我们可以细致地指定哪些用户可以从哪些主机上以何种方式连接到数据库实例中的哪个数据库。

    pg_hba.conf文件中的每条记录定义了一种连接类型、一个客户端IP地址(范围)、数据库、用户以及用于该连接的认证方法。下面是pg_hba.conf中一些常用的认证方法:
      trust:允许连接而不进行密码认证。这是最不安全的认证方法,通常仅在非常可信的环境中使用,比如仅限本机访问的配置。
      reject:拒绝所有连接。
      md5:使用MD5加密的密码进行认证。
      password:使用明文密码进行认证(不推荐,除非连接是通过SSL加密)。
      peer:基于操作系统的用户身份进行认证(仅适用于本地连接)。
      ident:使用ident服务器进行认证(适用于TCP/IP连接)。
      scram-sha-256:使用SCRAM-SHA-256进行密码认证。这是一种安全的认证方式,推荐使用。

      对pg_hba.conf进行的修改在重新加载配置文件或重启数据库服务后立即生效。我们可以通过PostgreSQL的pg_ctl reload命令或SQL命令SELECT pg_reload_conf();来重新加载配置,无需重启数据库服务。

      编辑此文件时要格外小心,错误的配置可能导致无法连接到数据库。建议在进行任何更改之前备份pg_hba.conf文件。



      文章转载自DBA随笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论