MST

星途 面试题库

面试题:PostgreSQL的pg_hba.conf文件在主从复制环境下,配置访问控制有哪些需要特别注意的点?

阐述主从复制环境中,pg_hba.conf对于主库和从库在允许连接的IP、用户权限等方面的配置要求及可能出现的问题,以及如何避免因配置不当导致复制中断。
35.3万 热度难度
数据库PostgreSQL

知识考点

AI 面试

面试题答案

一键面试

主库配置要求

  1. 允许连接的IP
    • 需配置从库的IP地址,在pg_hba.conf中添加如下格式的记录:
    host replication replication_user from_slave_ip/32 trust
    
    这里replication_user是用于复制的用户,from_slave_ip为从库的IP,/32表示匹配精确的IP地址,trust表示信任该连接,无需密码验证。
  2. 用户权限
    • 创建具有复制权限的用户,例如:
    CREATE USER replication_user WITH REPLICATION PASSWORD 'password';
    
    此用户专门用于主从复制,且必须具有REPLICATION权限。

从库配置要求

  1. 允许连接的IP:通常不需要特殊配置pg_hba.conf来允许主库连接从库,因为从库主要是主动连接主库获取数据。
  2. 用户权限:从库使用与主库配置中相同的replication_user及其密码来连接主库进行复制。

可能出现的问题

  1. IP配置错误
    • 如果主库pg_hba.conf中配置的从库IP错误,从库将无法连接主库,导致复制中断。例如写成了错误的网段或错误的IP地址。
  2. 用户权限问题
    • 如果主库上创建的复制用户没有REPLICATION权限,或者密码配置错误,从库连接主库时会因权限不足或认证失败而导致复制无法启动。
    • pg_hba.conf中的认证方式配置不当,如使用了需要密码认证但密码未正确设置,也会导致连接失败。

避免配置不当导致复制中断的方法

  1. 仔细核对IP配置
    • 在配置主库pg_hba.conf允许从库IP连接时,仔细确认从库的真实IP地址,可通过ip addr等命令在从库服务器上核实。
  2. 正确设置用户权限
    • 在主库创建复制用户时,确保赋予REPLICATION权限。在从库配置连接主库参数时,仔细核对用户名和密码,可通过测试连接工具(如pg_basebackup)进行验证。
  3. 定期检查配置
    • 定期检查pg_hba.conf文件,确保配置没有被意外修改。可以通过配置管理工具(如Ansible等)来管理和监控配置文件的一致性。