citusdb

PostgreSQL使用repmgr配置级联复制

安稳与你 提交于 2020-04-06 15:12:09
最近的项目要求配置共享存储的四节点集群,使集群能够形成负载均衡。 但是大家知道,PostgreSQL不支持使用同一数据目录生成多个实例,在执行pg_ctl start的时候,如果指定的数据目录有实例在运行,则该实例会发生错误导致数据库down掉。故而,我们选择了基于pgpool-II + repmgr的策略来实现基于NAS共享存储的负载均衡策略。架构如下图所示: 共享磁盘的实现方法多种多样,本文主要讲解repmgr的使用方法: (零)准备工作 本例中,准备了四台虚拟机,IP地址分别为: 192.168 . 100.1 node1 192.168 . 100.2 node2 192.168 . 100.3 node3 192.168 . 100.4 node4 NAS存储中,分别创建目录data1、data2、data3、data4,并挂载到各数据节点上。* 注意目录权限必须为 700 在所有节点安装repmgr。其中,只有 node1节点上执行initdb ,而node2、node3、node4 均不初始化 。 在node1节点的postgresql.conf添加以下配置: hot_standby = on wal_level = ' replica ' max_wal_senders = 50 创建repmgr用户及数据库 [Harvest@node1 ~] createuser