• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    pgpool-II搭建集群,实现高可用与读写分离

    发布者: 山止川行 | 发布时间: 2025-6-14 13:34| 查看数: 71| 评论数: 0|帖子模式

    pcp进程:pcp是一个命令行的管理工具,用户可以使用此管理工具向pgpool-II发送管 理命令。
    pgpool-II父进程:pgpool-II父进程负责检查各个底层数据库的健康状态。
    pgpool-II子进程:负责接收用户发过来的SQL请求,然后再根据规则将SQL请求发送 到底层的数据库上。
    worker进程:pgpool-II 3.X版本之后才增加的进程,负责检查底层数据库之间的复制 延迟。
    watchdog进程:可以把多个pgpool-II组成一个高可用集群,解决pgpool-II自身的高可用问题,提供了vip的管理功能。
    </ol><a name="_lab2_0_2">
    看门狗进程详细介绍

    pgpool-II在3.2版本之后把健康检查的功能从pgpool-II父进程中剥离出来,放到了一个 叫“看门狗”(watchdog)的模块中,该模块添加的功能如下。

    • pgpool服务是否正常工作的检测:看门狗模块监控pgpool服务的响应是否正常,而不 是简单监控进程是否存活。它通过向被它监控的pgpool发送查询,并检查响应情况来判断 pgpool是否正常工作。看门狗进程还监控从pgpool到前端服务器的连接(如应用服务器) 。从pgpool到前端服务器的连接作为pgpool的服务来监控。
    • 看门狗进程相互监控:看门狗进程交换被监控服务器的信息用来保证信息是最新的 ,并允许看门狗进程相互监控。 ·在某些故障检测中交换各自pgpool的主/备状态:当一个pgpool的故障被检测到,看门狗进程会把故障信息通知到其他的看门狗进程,同时看门狗进程会通过投票来确定哪一 个pgpool是主pgpool,哪一个是备pgpool。
    • 在pgpool进行主备切换的时候自动进行虚拟IP地址的漂移:当一个备用pgpool服务器 提升为主pgpool时,相应的虚拟IP也会漂移过来。这样应用程序不需要修改配置就可以连 接到新的主pgpool上。
    • 当原先发生故障的pgpool服务器恢复时,会自动注册为为备用pgpool服务器:当发生 故障的服务器恢复后,或原服务器彻底损坏通过增加新的服务器来替换原先的服务器时, 新的服务器连接上来后,新服务器上的看门狗进程通知其他的看门狗进程,新的备pgpool 服务器加进来了,让整个环境恢复成高可用状态。

    原始模式:只实现一个故障切换的功能,可以配置多个后端数据库,当第一个后端 数据库不能工作时,pgpool-II会切换到第二个后端数据库,如果第二个后端数据库也不能 工作,再切换到第三个后端数据库,依次类推。
    内置复制(Native Replication)的模式:实际上就是把修改数据库的操作同时发送到 后端所有的数据库上进行处理,只读查询发送给任意一台数据库。此模式下可以实现负载 均衡的功能。
    主/备模式:此模式下,使用其他软件(非pgpool自身)完成实际的数据复制,如使 用Slony-I或流复制,中间件层使用pgpool-II。此时,pgpool-II主要提供高可用和连接池的 功能。在主/备模式中,DDL和DML操作在主节点上执行,SELECT语句可以在主备节点 上执行,当然也可以强制SELECT语句在主节点上执行,但需要在SELECT语句前添加“/* NO LOAD BALANCE*/”注释。
    </ol>pgpool-II 3.0版本之后支持配合使用流复制+Standby的主/备模式,这基本是现在的主流模式。所以此文我们是基于这种模式部署的。操作步骤很多,请注意哪些是在所有节点执行,哪些是只在主节点执行
    <a name="_label1">
    1.环境规划


    主机
    [/td][td]hostname
    [/td][td]节点配置
    [/td][td]角色
    [/td][td]组件
    [/td][td]vip
    [/td][/tr][tr][td]10.0.0.41
    [/td][td]postgres-01
    [/td][td]Centos7.9 4c/8GB
    [/td][td]Leader
    [/td][td]PostgreSQL 15.5、pgpool-II-4.5.6
    [/td][td=1,3]10.0.0.44
    [/td][/tr][tr][td]10.0.0.42
    [/td][td]postgres-02
    [/td][td]Centos7.9 4c/8GB
    [/td][td]standby1
    [/td][td]PostgreSQL 15.5、pgpool-II-4.5.6
    [/td][/tr][tr][td]10.0.0.43
    [/td][td]postgres-03
    [/td][td]Centos7.9 4c/8GB
    [/td][td]standby2
    [/td][td]PostgreSQL 15.5、pgpool-II-4.5.6
    [/td][/tr][/table] <a name="_lab2_1_5">
    1.2PostgreSQL版本和配置


    Item
    Value
    Detail
    PostgreSQL Version
    15.5
    -
    port
    5432
    -
    $PGDATA
    /data/pgsql/data
    -
    Archive mode
    on
    /data/pgsql/archive
    Replication Slots
    Enabled
    Async/Sync Replication
    Async
    -


    Item
    [/td][td]Value
    [/td][td]Detail
    [/td][/tr][tr][td]Pgpool-II Version
    [/td][td]4.4.5
    [/td][td]-
    [/td][/tr][tr][td=1,4]port
    [/td][td]9999
    [/td][td]Pgpool-II接收连接
    [/td][/tr][tr][td]9898
    [/td][td]PCP 进程接收连接
    [/td][/tr][tr][td]9000
    [/td][td]看门狗接收连接
    [/td][/tr][tr][td]9694
    [/td][td]UDP port接收看门狗心跳信号
    [/td][/tr][tr][td]Config file
    [/td][td]/usr/local/pgpool/etc/pgpool.conf
    [/td][td]-
    [/td][/tr][tr][td]User running Pgpool-II
    [/td][td]postgres (Pgpool-II 4.1 or later)
    [/td][td]Pgpool-II 4.0 or before, the default user running Pgpool-II is root
    [/td][/tr][tr][td]Running mode

    [/td][td]streaming replication mode
    [/td][td]-
    [/td][/tr][tr][td]Watchdog
    [/td][td]on
    [/td][td]Life check method: heartbeat
    [/td][/tr][/table] <a name="_lab2_1_7">
    1.4 相关脚本


    模块
    脚本名
    说明
    Failover
    failover.sh
    用于启动failover
    follow_primary.sh
    failover之后从节点与新主节点的同步
    Online recovery
    recovery_1st_stage
    用于恢复从节点的数据
    pgpool_remote_start
    用于启动从节点
    Watchdog
    escalation.sh
    用于安全的切换主从


    用户名
    [/td][td]Password
    [/td][td]说明
    [/td][/tr][tr][td]repl
    [/td][td]Repl@123
    [/td][td]PostgreSQL流复制用户
    [/td][/tr][tr][td]pgpool
    [/td][td]Pgpool@123
    [/td][td]Pgpool-II  (<a href="https://www.pgpool.net/docs/45/en/html/runtime-config-health-check.html#GUC-HEALTH-CHECK-USER" rel="nofollow" target="_blank"> health_check_user) and ( sr_check_user)
    [/td][/tr][tr][td]postgres
    [/td][td]Postgres@123
    [/td][td]User running online recovery
    [/td][/tr][tr][td]appuser
    [/td][td]Appuser@123
    [/td][td]业务用户
    [/td][/tr][/table]
    1. yum install -y yum-utils openjade docbook-dtds docbook-style-dsssl docbook-style-xsl
    2. yum install -y cmake make gcc zlib gcc-c++ perl readline readline-devel zlib
    3. yum install -y yum-builddep flex libselinux-devel libxml2-devel libxslt-devel openssl-devel pam-devel readline-devel libcurl-devel json-c-devel
    复制代码

    4.5 配置访问控制文件
    1. #所有节点
    2. cat >> /etc/hosts << EOF
    3. 10.0.0.41 postgres-01
    4. 10.0.0.42 postgres-02
    5. 10.0.0.43 postgres-03
    6. EOF
    复制代码
    5.pgpool配置


    5.1 相关脚本配置
    1. #所有节点
    2. groupadd -g 701 postgres
    3. useradd -g 701 -u 701 -s /bin/bash -m postgres
    4. passwd postgres

    5. mkdir /data/pgsql/{data,log,archive} -p
    6. mkdir /data/pgpool/log -p
    7. chown -R postgres.postgres /data

    8. # Pgpool-II运行的进程通常是在后台运行,没有关联的终端,所以如果不做处理,在执行 if_up_cmd、if_down_cmd 和 arping_cmd 这些带有 sudo 的命令时就会失败
    9. visudo
    10. Defaults:postgres !requiretty
    11. postgres ALL=(ALL) NOPASSWD: /sbin/ip,/usr/sbin/arping
    复制代码
    配置failover.sh

    注意:以下操作在所有节点进行
    在检测到 PostgreSQL 后端节点出现故障时,自动执行一系列操作以实现故障转移,从而保障数据库服务的高可用性
    1. #所有节点都要与其它节点互信,需要特殊配置私钥文件得名称为id_rsa_pgpool,因为pgpool的很多配置文件里面的变量都已经写好了这个名字

    2. (1)生成公钥
    3. su - postgres
    4. mkdir /home/postgres/.ssh
    5. cd /home/postgres/.ssh
    6. ssh-keygen -t rsa -f id_rsa_pgpool
    7. s

    8. (2)将公钥分发到所有节点
    9. for i in {1..3};do ssh-copy-id -i id_rsa_pgpool.pub postgres@postgres-0$i;done
    10. (3)修改权限
    11. chmod 600 ~/.ssh/*
    12. chmod 644 ~/.ssh/*.pub
    13. chmod 700 ~/.ssh

    14. (4)互信验证
    15. for i in {1..3};do ssh postgres@postgres-0$i -i id_rsa_pgpool hostname;done
    16. for i in {1..3};do ssh postgres@postgres-0$i -i id_rsa_pgpool.pub hostname;done
    复制代码
    配置follow_primary.sh

    注意:以下操作在所有节点进行
    1. > /etc/sysctl.conf
    2. cat >> /etc/sysctl.conf << EOF
    3. vm.swappiness = 0
    4. vm.overcommit_memory=2
    5. vm.overcommit_ratio=90
    6. vm.dirty_background_ratio = 10   
    7. vm.dirty_ratio = 20
    8. #测试环境物理内存8G,数据节点shared_buffer=2G,最大连接数500为例,进行如下设置
    9. #        SEMMSL SEMMNS SEMOPM SEMMNI
    10. kernel.sem=300  60000  100    200
    11. vm.nr_hugepages=1500                 
    12. EOF
    13. sysctl -p

    14. echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
    15. echo "never" > /sys/kernel/mm/transparent_hugepage/defrag

    16. chmod +x /etc/rc.d/rc.local


    17. cat >> /etc/rc.local << EOF
    18. #修改为数据库系统盘符
    19. blockdev --setra 4096 /dev/sdc
    20. echo deadline > /sys/block/sdc/queue/scheduler
    21. if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
    22. echo never > /sys/kernel/mm/transparent_hugepage/enabled
    23. fi
    24. if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
    25. echo never > /sys/kernel/mm/transparent_hugepage/defrag
    26. fi
    27. EOF

    28. cat /sys/kernel/mm/transparent_hugepage/enabled
    29. cat /sys/kernel/mm/transparent_hugepage/defrag

    30. > /etc/security/limits.conf
    31. cat >> /etc/security/limits.conf << EOF
    32. * soft nofile 65536
    33. * hard nofile 65536
    34. * soft nproc 131072
    35. * hard nproc 131072
    36. * soft memlock -1
    37. * hard memlock -1
    38. EOF

    39. systemctl stop firewalld
    40. systemctl disable firewalld

    41. setenforce 0
    42. sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
    复制代码
    配置recovery_1st_stage

    注意:以下操作在主节点执行
    # 官方原文:出于安全原因,该命令文件必须放置在数据库数据目录中。例如,如果recovery_1st_stage_command = 'sync-command',则Pgpool-II将在$PGDATA目录中查找命令脚本,并尝试执行$PGDATA/sync-command
    1. #所有节点
    2. (1)编译安装
    3. cd /opt
    4. wget https://ftp.postgresql.org/pub/source/v15.5/postgresql-15.5.tar.gz
    5. tar xf postgresql-15.5.tar.gz
    6. cd postgresql-15.5
    7. ./configure --prefix=/usr/local/postgresql-15.5 --with-perl --with-python
    8. make && make install

    9. (2)创建软连接,方便日后升级
    10. ln -sf /usr/local/postgresql-15.5 /usr/local/pgsql

    11. (3)安装contrib目录下的工具
    12. cd contrib/
    13. make && make install

    14. (4)加入环境变量
    15. [root@Postgres-01 contrib]# vi /etc/profile
    16. export PATH=/usr/local/pgsql/bin:$PATH
    17. export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH
    18. export PGDATA=/data/pgsql/data
    19. export PGHOST=/tmp
    20. [root@Postgres-01 contrib]# source /etc/profile
    21. (5)验证安装
    22. [root@Postgres-01 contrib]# psql -V
    23. psql (PostgreSQL) 15.5
    复制代码
    配置pgpool_remote_start

    注意:以下操作在主节点执行
    官方原文:
    注意:脚本路径和文件名是硬编码的,$PGDATA/pgpool_remote_start在主节点上执行。
    1. cd /opt
    2. wget https://www.pgpool.net/mediawiki/download.php"export PATH=/usr/local/pgpool/bin/:$PATH">> /etc/profile
    3. [postgres@postgres-01 pgpool-II-4.5.6]$ source /etc/profile

    4. # 安装pgpool_recovery
    5. cd ./src/sql/pgpool-recovery/
    6. make && make install
    复制代码
    配置escalation.sh

    注意:以下操作在所有节点进行
    主要用于当前 Pgpool 节点被选举为 Leader 时,执行 VIP切换和资源接管
    1. [root@postgres-01 ~]# su - postgres
    2. [postgres@postgres-01 ~]$ initdb -D $PGDATA
    复制代码
    5.2 访问控制文件与密码验证文件

    注意:以下操作在所有节点进行

    配置pool_hba.conf

    用于客户端到pgpool的访问控制
    1. [postgres@postgres-01 ~]$ cd $PGDATA
    2. > postgresql.conf
    3. cat >> postgresql.conf << EOF
    4. ############# Connection #############
    5. listen_addresses = '*'   
    6. port = 5432   
    7. max_connections = 500   
    8. superuser_reserved_connections = 3
    9. ############# Buffer #############
    10. shared_buffers = 2GB
    11. temp_buffers = 8MB
    12. work_mem = 4MB
    13. huge_pages = on
    14. ############# Log #############
    15. logging_collector = on
    16. log_min_messages = warning
    17. log_statement = ddl
    18. log_directory = '/data/pgsql/log'
    19. log_filename = 'postgresql-%Y-%m-%d.log'
    20. log_truncate_on_rotation = off
    21. log_rotation_age = 1d
    22. log_rotation_size = 0
    23. ############# Wal #############
    24. wal_level = replica
    25. wal_compression = on
    26. max_wal_senders = 10
    27. wal_log_hints = on
    28. fsync = on
    29. archive_mode = on
    30. archive_command = 'cp "%p" "/data/pgsql/archive"'
    31. ############# VACUUM #############
    32. autovacuum = on
    33. autovacuum_max_workers = 10
    34. ############ 流复制 ##############
    35. hot_standby=on
    36. hot_standby_feedback=on
    37. max_replication_slots = 10
    38. EOF
    复制代码
    配置pool_passwd文件

    用于客户端到pgpool的用户密码验证
    1. [postgres@postgres-01 data]$ pg_ctl start -D $PGDATA

    2. # 安装pgpool_recovery扩展
    3. # 如果一个节点损坏,要在线把失败的节点再加回集群,需要使用到函数"pgpool_recovery"、"pgpool_remote_start"、"pgpool_switch_xlog"。另外,附带工具pgpoolAdmin控制pgpoolII启停和重新连接后端的PostgreSQL节点,需要使用函数"pgpool_pgctl"。这些函数都在pgpool提供的扩展插件pgpool_recovery中
    4. [postgres@postgres-01 ~]$ psql template1
    5. psql (15.5)
    6. Type "help" for help.

    7. template1=# CREATE EXTENSION pgpool_recovery;
    复制代码
    配置pcp.conf文件

    对 PCP(Pgpool-II Command Prompt)工具的认证信息进行管理,独立哈希算法(非标准 MD5) ,纯 32 位哈希字符串(无md5前缀)
    1. [postgres@postgres-01 data]$ psql
    2. set password_encryption = md5;

    3. CREATE user pgpool  password 'Pgpool@123';
    4. GRANT pg_monitor TO pgpool;

    5. CREATE user repl replication  password 'Repl@123';

    6. alter user postgres password 'Postgres@123';

    7. CREATE USER appuser WITH PASSWORD 'Appuser@123' login;
    8. create database appdb;
    9. \c appdb
    10. GRANT USAGE ON SCHEMA public TO appuser;
    11. GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO appuser;
    12. ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO appuser;
    复制代码
    配置pgpool_node_id文件

    从 Pgpool-II 4.2 开始,所有主机的所有配置参数都相同。如果启用了监视器功能,以消除对哪个主机是哪个主机的干扰,则需要pgpool_node_id文件
    1. [postgres@postgres-01 data]$ vim pg_hba.conf
    2. host    replication     repl            10.0.0.0/24             md5
    3. host    all             pgpool          10.0.0.0/24             md5
    4. host    all             postgres        10.0.0.0/24             md5
    5. host    all             postgres        127.0.0.1/32            md5
    6. local   all             postgres                                md5
    7. host    appdb           appuser         10.0.0.0/24             md5

    8. # 重新加载配置
    9. [postgres@postgres-01 data]$ psql
    10. postgres=# select pg_reload_conf();
    复制代码
    配置.pgpass文件

    当 Pgpool 需要连接后端 PostgreSQL 节点进行(健康检查、故障转移、负载均衡)时,提供用户名和密码
    1. (1)所有节点做的操作
    2. [root@postgres-01 ~]# chown -R postgres.postgres /usr/local/pgpool
    3. cd /usr/local/pgpool/etc
    4. cp pool_hba.conf.sample pool_hba.conf
    5. cp pcp.conf.sample pcp.conf
    6. cp pgpool.conf.sample pgpool.conf
    7. cp follow_primary.sh.sample follow_primary.sh
    8. cp failover.sh.sample failover.sh
    9. cp escalation.sh.sample escalation.sh
    10. cp recovery_1st_stage.sample recovery_1st_stage
    11. cp pgpool_remote_start.sample pgpool_remote_start

    12. chmod +x follow_primary.sh
    13. chmod +x failover.sh
    14. chmod +x escalation.sh
    15. chmod +x recovery_1st_stage
    16. chmod +x pgpool_remote_start

    17. mkdir sample
    18. mv *.sample sample

    19. (2)主节点操作
    20. mv recovery_1st_stage /data/pgsql/data
    21. mv pgpool_remote_start /data/pgsql/data
    复制代码
    配置.pcppass 文件

    .pcppass 文件可让用户在使用 PCP 工具时无需每次都手动输入用户名和密码,从而实现自动认证。
    1. # 所有节点
    2. # 修改failover.sh文件中的如下配置
    3. # PGHOME=/usr/local/pgsql
    4. cd /usr/local/pgpool/etc
    5. sed -i 's/^PGHOME=.*/PGHOME=\/usr\/local\/pgsql/' /usr/local/pgpool/etc/failover.sh
    复制代码
    5.3 编辑主配置文件

    注意:以下操作在所有节点进行
    1. # 修改/usr/local/pgpool/etc/follow_primary.sh文件中的如下配置
    2. # PGHOME=/usr/local/pgsql/
    3. # ARCHIVEDIR=/data/pgsql/archive
    4. # PGPOOL_PATH=/usr/local/pgpool/bin
    5. # 95行左右的.pgpass文件路径由/var/lib/pgsql/.pgpass更改为/home/postgres/.pgpass
    6. # failover后,新主节点的连接信息,写入到什么文件,RECOVERYCONF=${NODE_PGDATA}/postgresql.auto.conf
    7. cd /usr/local/pgpool/etc
    8. sed -i 's/^PGHOME=.*/PGHOME=\/usr\/local\/pgsql/' follow_primary.sh
    9. sed -i 's/^ARCHIVEDIR=.*/ARCHIVEDIR=\/data\/pgsql\/archive/' follow_primary.sh
    10. sed -i 's/^PGPOOL_PATH.*/PGPOOL_PATH=\/usr\/local\/pgpool\/bin/' follow_primary.sh
    11. sed -i 's/\/var\/lib\/pgsql/\/home\/postgres/' follow_primary.sh
    12. sed -i 's/myrecovery.conf/postgresql.auto.conf/' follow_primary.sh
    复制代码
    6. 集群启动


    6.1 启动pgpool
    1. # 修改/data/pgsql/data/recovery_1st_stage文件中的如下配置:
    2. # PGHOME=/usr/local/pgsql
    3. # ARCHIVEDIR=/data/pgsql/archive
    4. # REPLUSER=repl
    5. # 在56行左右的pg_basebackup命令的后面加上-R参数
    6. # 59行左右的.pgpass文件路径由/var/lib/pgsql/.pgpass更改为/home/postgres/.pgpass
    7. cd /usr/local/pgpool/etc
    8. sed -i 's/^PGHOME=.*/PGHOME=\/usr\/local\/pgsql/' recovery_1st_stage
    9. sed -i 's/^ARCHIVEDIR=.*/ARCHIVEDIR=\/data\/pgsql\/archive/' recovery_1st_stage
    10. sed -i 's/^REPLUSER=.*/REPLUSER=repl/' recovery_1st_stage
    11. sed -i 's/-X stream/-X stream -R/' recovery_1st_stage
    12. sed -i 's/\/var\/lib\/pgsql/\/home\/postgres/' recovery_1st_stage
    复制代码


    6.2 启动后端数据库从节点

    会在主节点触发recovery_1st_stage、pgpool_remote_start两个脚本,从主节点克隆数据,并直接启动从节点
    1. # 修改/data/pgsql/data/pgpool_remote_start文件中的如下配置
    2. # PGHOME=/usr/local/pgsql
    3. cd /usr/local/pgpool/etc
    4. sed -i 's/^PGHOME=.*/PGHOME=\/usr\/local\/pgsql/' pgpool_remote_start
    复制代码
    6.3 查看集群状态

    使用vip连接pgpool 9999端口,查看后端数据库
    1. # 修改escalation.sh文件中的如下配置
    2. # PGPOOLS=(10.0.0.41 10.0.0.42 10.0.0.43)
    3. # VIP=10.0.0.44
    4. # DEVICE=ens33
    5. cd /usr/local/pgpool/etc
    6. sed -i 's/^PGPOOLS.*/PGPOOLS=(10.0.0.41 10.0.0.42 10.0.0.43)/' escalation.sh
    7. sed -i 's/^VIP.*/VIP=10.0.0.44/' escalation.sh
    8. sed -i 's/^DEVICE.*/DEVICE=ens33/' escalation.sh
    复制代码

    查看流复制
    1. [postgres@postgres-01 etc]$ cd /usr/local/pgpool/etc
    2. [postgres@postgres-01 etc]$ > pool_hba.conf
    3. cat >> pool_hba.conf << EOF
    4. host    all         pgpool      10.0.0.0/24           md5        
    5. host    all         pgpool      127.0.0.1/32          md5

    6. host    all         postgres    10.0.0.0/24           md5
    7. host    all         postgres    127.0.0.1/32          md5
    8. local   all         postgres                          md5

    9. host    appdb       appuser     10.0.0.0/24           md5
    10. EOF
    复制代码

    查看pool_node节点信息
    1. [postgres@postgres-01 etc]$ cd /usr/local/pgpool/etc
    2. pg_md5 -p -m -u postgres pool_passwd
    3. password: (输入密码Postgres@123)

    4. pg_md5 -p -m -u pgpool pool_passwd
    5. password: (输入密码Pgpool@123)

    6. pg_md5 -p -m -u appuser pool_passwd
    7. password: (输入密码Appuser@123)

    8. [postgres@postgres-01 etc]$ cat pool_passwd
    9. postgres:md5dd27d33705155fd675e498384ad3d2ea
    10. pgpool:md52a23dd6e92c7f1d2a42fafbb757ef026
    11. appuser:md5af0df380d022abbae08aeff4d162a25b
    复制代码

    到此这篇关于pgpool-II搭建集群,实现高可用与读写分离的文章就介绍到这了,更多相关pgpool-II实现高可用与读写分离内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    来源:https://www.jb51.net/server/33992283j.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表