Postgres数据库搭建主从集群

本文详细介绍了如何搭建Postgres数据库的主从集群,包括Master和Slave的配置步骤,如安装RPM包、初始化主库、设置复制权限、配置归档和恢复文件,以及验证主从同步状态。此外,还提到了可选的pgpool安装和smlar插件的安装过程。

一、postgresql流复制

实例: 1 MASTER
2 SLAVE

(一)Master

  1. 安装Master
    依次安装rpm包:
    rpm -ivh postgresql11-libs-11.7-1PGDG.rhel6.x86_64.rpm
    rpm -ivh postgresql11-11.7-1PGDG.rhel6.x86_64.rpm
    rpm -ivh postgresql11-server-11.7-1PGDG.rhel6.x86_64.rpm
    rpm -ivh postgresql11-contrib-11.7-1PGDG.rhel6.x86_64.rpm
    rpm -ivh postgresql11-devel-11.7-1PGDG.rhel6.x86_64.rpm
  2. 主库初始化service postgresql-11 initdb
  3. 创建用户repuser,并赋予复制和登录的权限
    CREATE USER repuser LOGIN REPLICATION ENCRYPTED PASSWORD ‘repuser’;
  4. 修改postgresql.conf
    listen_addresses = ‘*’
    wal_log_hints = on
    wal_level = hot_standby
    max_wal_senders = 5
    archive_mode = on
    archive_command = ‘cp %p /var/lib/pgsql/11/data/pg_archive/%f’
    wal_keep_segments = 64
    synchronous_standby_names = ‘cbas_standby_[host1],cbas_standby_[host2]’
  5. 创建归档目录mkdir /var/lib/pgsql/11/data/pg_archive , 赋权postgres:postgres
  6. 修改pg_hba.conf
    h
### PostgreSQL 主从复制集群搭建指南 #### 修改 `postgresql.conf` 配置文件 为了使主节点能够接受来自其他服务器的连接请求,需调整配置参数。设置监听地址为所有可用网络接口,并启用流复制功能: ```plaintext listen_addresses = '*' wal_level = replica max_wal_senders = 10 wal_keep_segments = 10 synchronous_standby_names = 'slave1' max_replication_slots = 10 ``` 这些更改确保了日志写入提前(WAL)级别适合于热备目的,允许最多十个并发复制客户端连接到主数据库实例[^4]。 #### 创建并启动 Docker 容器 通过Docker可以快速创建PostgreSQL服务容器,在命令行执行以下指令来运行一个新的PostgresSQL镜像实例作为主节点: ```bash docker run -d \ -p 54321:5432 \ --name postgres-master \ --restart=always \ -v /local/path/to/pgdata:/var/lib/postgresql/data/ \ postgres:latest ``` 此命令指定了端口映射、容器名称以及数据卷挂载路径等选项[^3]。 #### 初始化从节点并与主节点同步 对于每一个希望加入集群成为只读副本的新成员来说,首先要初始化其存储目录结构,接着利用pg_basebackup工具完成一次全量备份操作从而实现初始状态的一致性加载。具体步骤如下所示: 1. 启动新的Docker容器用于充当备用角色; 2. 使用pg_basebackup命令获取最新的在线快照; 3. 编辑recovery.conf文件指定上游源的位置信息以便后续自动追加增量更新记录; 注意:实际环境中建议采用更安全的方式传输敏感认证凭证而非明文形式硬编码在脚本里。 #### 测试与验证 当所有的准备工作完成后就可以尝试向主库提交一些简单的事务变更看看能否正常传播至各个子节点上去了。可以通过对比不同机器间相同表内特定字段值的变化情况来进行直观判断[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值