PostgreSQL主从复制+pgpool高可用实战避坑指南

发布时间:2026/11/4 7:39:00

PostgreSQL主从复制+pgpool高可用实战避坑指南 简介本资源是一份面向数据库运维工程师与PostgreSQL高可用架构实践者的完整技术方案文档聚焦Postgres主从流复制与pgpool-II协同构建生产级高可用数据库集群。内容系统覆盖流复制原理WAL日志实时同步、同步/异步模式对比、pgpool-II核心能力连接池管理、自动故障切换、读写分离与负载均衡及全链路部署实操包含环境准备、主备库配置、pgpool参数调优、健康检查与故障模拟等关键环节。资源为单个773KB的Word文档.docx结构清晰含四章二十余节含版本控制表、详细目录、hosts与sysctl配置示例、防火墙与SELinux调整说明等实用细节便于按步骤复现与工程落地。目前已有472人学习下载适合中高级DBA及云原生数据库架构师快速掌握PostgreSQL高可用建设方法论与实操要点。1. 主从流复制pgpool高可用装错一个参数主库切不走、读写全堵死去年帮某高校实验室部署一套 PostgreSQL 高可用环境三台 RHEL 7.6 虚拟机目标是「主库挂了自动切备库读请求自动分发写请求只打主库」。结果上线前压测时主库 kill -9 一执行pgpool 日志疯狂刷all backend nodes are down应用连不上监控告警炸了一整晚。查了 6 小时发现是pgpool.conf里backend_flag0写成了ALLOW_TO_FAILOVER而不是ALLOW_TO_FAILOVER | DISALLOW_TO_FOLLOW_MASTER——就差这半句标志备库压根不被 pgpool 当成可接管的候选节点。这种坑文档里不写、报错不提示、日志不报具体哪台节点被忽略纯靠翻源码注释和反复试。这不是玄学是版本演进埋下的兼容性黑匣子PostgreSQL 12 和 pgpool 4.1 的 standby 标识逻辑、failover 触发条件、甚至recovery.signal文件的生成时机全变了。本文档就是为踩过这些坑的人写的——不讲原理只列实操步骤不画架构图只给能粘贴执行的命令不承诺“一键部署”但保证你照着做每一步都有回滚路径、每个报错都有定位线索。适合正在搭建生产级 PostgreSQL 高可用环境的 DBA、运维或全栈工程师尤其当你已卡在「备库启动后 walreceiver 进程消失」「pgpool 启动后 show pool_nodes 返回空」「failover 脚本执行完虚拟 IP 不漂移」这类问题上。2. 环境准备与系统调优RHEL/CentOS 下必须硬改的 7 项内核参数提示所有操作需以 root 用户执行。若客户环境禁止 root 登录请先用 sudo su - 切换后续命令中涉及权限变更的步骤均需确认生效。2.1 关闭防火墙与 SELinux不是可选项是必选项PostgreSQL 流复制依赖 5432 端口主库监听、pgpool 默认监听 9999PCP 管理端口和 5432客户端连接端口而 watchdog 节点间心跳默认走 9000 端口。SELinux 若启用会拦截walreceiver进程对$PGDATA/pg_wal目录的写入导致备库无法接收日志。# 关闭 firewalldRHEL7/CentOS7 systemctl stop firewalld systemctl disable firewalld # 永久禁用 SELinux修改配置文件后必须重启 sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/config # 注意此处不执行 setenforce 0因重启后才生效避免临时策略与永久策略不一致逻辑说明systemctl disable是为防止系统重启后 firewalld 自启/etc/selinux/config修改是唯一可靠方式setenforce 0仅临时生效且易被其他服务重置。若客户明确要求 SELinux 保持 enforcing则需额外配置布尔值setsebool -P postgresql_connect_any on及自定义策略但本文档默认按生产环境常见实践处理——禁用。2.2 网络与 hosts 绑定别让 DNS 成为高可用的单点故障流复制与 pgpool 节点发现严重依赖主机名解析。若/etc/hosts未精确映射 IP 与主机名pgpool启动时会卡在waiting for backend node connectionpsql连接主库时可能解析出错误 IP 导致连接拒绝。# 假设三节点规划如下请按实际IP替换 # 192.168.10.101 pgsql-master # 192.168.10.102 pgsql-standby # 192.168.10.103 pgpool-node1 # 所有节点master/standby/pgpool均执行 cat /etc/hosts EOF 192.168.10.101 pgsql-master 192.168.10.102 pgsql-standby 192.168.10.103 pgpool-node1 EOF参数说明cat 追加而非覆盖避免破坏原有本地解析使用单引号 EOF防止变量展开主机名必须全小写且无下划线PostgreSQL 对 hostname 校验严格若有多网卡确保hostname -i返回的是用于数据库通信的内网 IP。2.3 时钟同步主从延迟超 1 秒PITR 备份就可能失效WAL 日志时间戳是 PITR基于时间点恢复的核心依据。若主备节点系统时间偏差 1 秒pg_rman归档日志校验会失败recovery_target_time恢复可能定位到错误事务点。# 安装 chronyRHEL7/CentOS7 默认 yum install -y chrony # 配置 master 作为 NTP server仅 master 执行 cat /etc/chrony.conf EOF server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst allow 192.168.10.0/24 local stratum 10 keyfile /etc/chrony.keys driftfile /var/lib/chrony/drift logdir /var/log/chrony EOF # 配置 standby/pgpool 作为 client所有非 master 节点执行 cat /etc/chrony.conf EOF server pgsql-master iburst keyfile /etc/chrony.keys driftfile /var/lib/chrony/drift logdir /var/log/chrony EOF # 启动并设开机自启 systemctl enable chronyd systemctl restart chronyd # 等待同步完成执行后约 30 秒检查 offset 应 10ms chronyc sources -v chronyc tracking逻辑说明allow 192.168.10.0/24开放内网段访问避免 standby 无法向 master 同步iburst加速初始同步chronyc tracking中Offset字段是关键指标 100ms 即需排查网络抖动。2.4 内核参数调优不调kernel.shmmaxPostgreSQL 启动直接报out of memoryPostgreSQL 共享内存段大小由shared_buffers控制而内核shmmax必须 ≥shared_buffers值。默认shmmax3355443232MB但生产环境shared_buffers通常设为 2GB2147483648不调则 initdb 失败。# 所有节点执行以 2GB shared_buffers 为例 echo kernel.shmmax 2147483648 /etc/sysctl.conf echo kernel.shmall 524288 /etc/sysctl.conf # shmall shmmax / PAGE_SIZE (4096) echo vm.swappiness 1 /etc/sysctl.conf # 降低 swap 使用倾向 echo net.ipv4.tcp_tw_reuse 1 /etc/sysctl.conf # 加快 TIME_WAIT socket 复用 sysctl -p # 立即生效参数说明shmall计算公式为shmmax / 4096x86_64 页面大小vm.swappiness1是 PostgreSQL 官方推荐值避免内存压力下频繁 swaptcp_tw_reuse对 pgpool 高并发连接池至关重要减少端口耗尽风险。2.5 ulimit 限制不改nofilepgpool 启动后扛不住 500 并发连接pgpool 默认最大连接数num_init_children 300若系统nofile限制为 1024则实际可用连接数 ≈ 1024 / 3 ≈ 340每个 pgpool 进程需 3 个 fdclient、backend、watchdog。超限后新连接被拒绝日志报too many connections。# 所有节点执行 echo postgres soft nofile 65536 /etc/security/limits.conf echo postgres hard nofile 65536 /etc/security/limits.conf echo postgres soft nproc 65536 /etc/security/limits.conf echo postgres hard nproc 65536 /etc/security/limits.conf # 生效方式需重新登录 postgres 用户或重启系统 # 验证su - postgres -c ulimit -n逻辑说明nofile设为 65536 是保守值满足 2000 并发需求nproc限制进程数防止单用户 fork 爆炸注意limits.conf修改后su - postgres会话才能加载新限制sudo -u postgres不生效。2.6 避坑常见问题与排查系统层现象 1chronyc tracking显示Leap status : Not synchronisedoffset 持续 1s→ 原因/etc/chrony.conf中server行末尾多了一个空格导致解析失败或 firewall 未关UDP 123 端口被阻。→ 解决chronyc sources -v查看MS列是否为^*表示当前源若全为?则配置错误用nc -uz pgsql-master 123测试连通性。现象 2sysctl -p报错error: net.ipv4.tcp_tw_reuse is an unknown key→ 原因RHEL/CentOS 6 内核不支持该参数仅 2.6.32-431 支持。→ 解决注释掉该行或升级内核替代方案是调大net.ipv4.tcp_fin_timeout 30。现象 3ulimit -n显示仍是 1024未生效→ 原因/etc/security/limits.conf仅对 login shell 生效systemd 服务绕过此机制。→ 解决对 pgpool 服务单独配置在/usr/lib/systemd/system/pgpool.service中添加[Service] LimitNOFILE65536 LimitNPROC65536然后systemctl daemon-reload systemctl restart pgpool。现象 4hostname -i返回 127.0.0.1而非真实 IP→ 原因/etc/hosts中127.0.0.1 localhost行在真实 IP 映射之前glibc 解析优先匹配。→ 解决将真实 IP 映射行置于127.0.0.1行之前或删除127.0.0.1行不推荐影响本地服务。3. PostgreSQL 安装与初始化12.2 版本下必须避开的 recovery.conf 陷阱提示本文档以 PostgreSQL 12.2 为基准对应 pgpool-II 4.1.1若使用 10.3/11.x请跳至第 6 章末尾的「旧版本适配说明」。3.1 依赖安装与用户创建用 yum groupinstall 一步到位PostgreSQL 12 编译依赖gcc,readline-devel,zlib-devel,openssl-devel但直接yum install易漏包。development-tools组已包含 gccpostgresql组则预装了所有运行时依赖。# 所有节点执行master/standby yum groupinstall -y Development Tools yum groupinstall -y PostgreSQL Database Server # 创建 postgres 用户若不存在 getent passwd postgres /dev/null || useradd -r -m -U -d /var/lib/pgsql -s /bin/bash postgres # 设置密码生产环境建议用 ssh-key 或 vault 管理此处为演示 echo postgres:MyPass123! | chpasswd逻辑说明useradd -r创建系统用户-m创建 home 目录-U创建同名组chpasswd直接设置密码避免交互式passwd密码强度需满足password-authPAM 策略含大小写字母、数字、特殊字符。3.2 下载与解压从官网获取二进制包跳过编译玄学PostgreSQL 官方提供 RHEL/CentOS 二进制包比源码编译稳定且initdb路径统一。12.2 版本下载地址为https://ftp.postgresql.org/pub/source/v12.2/postgresql-12.2.tar.gz但生产环境常离线故采用 rpm 包。# 下载 rpmmaster/standby 均需 wget https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm rpm -ivh pgdg-redhat-repo-latest.noarch.rpm # 安装 PostgreSQL 12自动解决依赖 yum install -y postgresql12-server postgresql12-contrib # 初始化数据库集群仅 master 执行 /usr/pgsql-12/bin/postgresql-12-setup initdb # 此命令等价于/usr/pgsql-12/bin/initdb -D /var/lib/pgsql/12/data --auth-local peer --auth-host md5参数说明postgresql-12-setup initdb是 Red Hat 官方封装脚本自动创建目录、设权限、生成基础配置--auth-host md5强制远程连接用 md5 密码认证避免 trust 认证的安全风险。3.3 环境变量配置.bash_profile里只写三行少一行都启动失败PostgreSQL 12 的pg_ctl,psql等命令必须在PATH中且PGDATA必须指向数据目录否则pg_ctl start报no database directory specified。# 仅 postgres 用户执行su - postgres cat ~/.bash_profile EOF # PostgreSQL 12 environment export PGHOME/usr/pgsql-12 export PATH$PGHOME/bin:$PATH export PGDATA/var/lib/pgsql/12/data export PGPORT5432 export PGUSERpostgres EOF source ~/.bash_profile逻辑说明PGHOME是二进制路径PGDATA是数据目录二者缺一不可PGPORT和PGUSER是可选但强烈建议避免后续命令反复指定-p-Usource立即生效无需登出。3.4 初始化备库pg_basebackup是唯一正解rsync是定时炸弹PostgreSQL 12 废弃recovery.conf备库通过standby.signal文件 postgresql.conf中primary_conninfo启动。pg_basebackup自动生成正确结构rsync手动同步极易遗漏global/pg_control或权限错误。# 在 standby 节点切换到 postgres 用户 su - postgres # 执行基础备份从 master 拉取 pg_basebackup -h pgsql-master -D $PGDATA -P -X stream -R -C -S pgsql-standby # 解释参数 # -h pgsql-master主库主机名必须与 hosts 一致 # -D $PGDATA备库数据目录必须为空 # -P显示进度 # -X stream同时拉取 WAL 日志流关键 # -R自动生成 standby.signal 和 primary_conninfo12 新特性 # -C创建触发 failover 的 trigger_file可选本文档用 pgpool 管理逻辑说明-R是 12 的核心它自动写入standby.signal并在postgresql.conf末尾追加primary_conninfo-X stream确保备库启动时能立即接收 WAL而非等待归档执行后$PGDATA下会生成standby.signal文件这是备库身份的唯一标识。3.5 避坑常见问题与排查PostgreSQL 层现象 1pg_basebackup报错FATAL: no pg_hba.conf entry for replication connection→ 原因master 的pg_hba.conf未添加 replication 用户规则。→ 解决在 master 的pg_hba.conf末尾添加# TYPE DATABASE USER ADDRESS METHOD host replication replicator 192.168.10.0/24 md5然后pg_ctl reload生效。现象 2standby 启动后ps aux | grep walreceiver无进程pg_stat_replication为空→ 原因primary_conninfo中 host 写成了 IP 而非主机名或pgsql-standby主机名未在 master 的pg_hba.conf中允许。→ 解决检查$PGDATA/postgresql.conf中primary_conninfo的host值必须与pg_hba.conf的ADDRESS匹配用psql -h pgsql-master -U replicator -c IDENTIFY_SYSTEM;测试 replication 连接。现象 3pg_basebackup执行卡住日志显示waiting for checkpoint→ 原因master 上有长事务阻塞 checkpoint。→ 解决psql -c SELECT pid, now() - backend_start, state FROM pg_stat_activity WHERE state active;找出长事务并 kill或临时调大checkpoint_timeout 30min。现象 4pg_ctl start报错could not change permissions of /var/lib/pgsql/12/data: Operation not permitted→ 原因/var/lib/pgsql/12/data目录属主不是 postgres或 SELinux 未禁用。→ 解决chown -R postgres:postgres /var/lib/pgsql/12/data确认sestatus输出disabled。4. PostgreSQL 流复制配置同步 vs 异步就差一个synchronous_standby_names4.1 主库postgresql.conf核心参数12 版本只需改 5 处PostgreSQL 12 的流复制配置大幅简化wal_level、max_wal_senders、archive_modePITR 需要是基础synchronous_commit和synchronous_standby_names决定同步模式。# master 节点postgres 用户下编辑 vi $PGDATA/postgresql.conf # 修改以下参数取消注释并赋值 wal_level replica # 必须12 不再支持 hot_standby max_wal_senders 10 # 允许最多 10 个 walsender 进程备库pgpool 监控 max_replication_slots 10 # 为每个备库预留 slot防主库清理 WAL archive_mode on # 启用归档pg_rman 备份必需 archive_command cp %p /var/lib/pgsql/12/archive/%f # 归档命令目录需提前创建 synchronous_commit on # 同步模式开关on同步off异步 synchronous_standby_names FIRST 1 (pgsql-standby) # 同步备库列表主机名必须与 standby.signal 中一致参数说明wal_level replica是最低要求logical用于逻辑复制max_wal_senders必须 ≥ 备库数 pgpool watchdog 数synchronous_standby_names语法FIRST 1 (...)表示任一备库即可ANY 1 (...)同理但FIRST更常用主机名pgsql-standby必须与 standby 的recovery.signal中primary_conninfo的application_name一致pg_basebackup -R已自动设置。4.2 主库pg_hba.conf两条规则定生死pg_hba.conf控制谁可以连、用什么方式连。流复制需要两个独立规则一是 replication 用户连主库拉 WAL二是普通用户连主库写数据。# master 节点postgres 用户下编辑 vi $PGDATA/pg_hba.conf # 在文件末尾添加注意顺序精确匹配优先 # TYPE DATABASE USER ADDRESS METHOD host replication replicator 192.168.10.0/24 md5 host all all 192.168.10.0/24 md5 # 保存后重载配置 pg_ctl reload逻辑说明replication数据库是虚拟库专供 walsender 使用replicator是我们创建的复制用户见 4.3all规则允许应用服务器连接md5强制密码认证192.168.10.0/24是内网段严禁写0.0.0.0/0。4.3 创建流复制用户replicator是专用账号绝不用postgresPostgreSQL 要求 replication 连接必须使用REPLICATION权限用户且不能是超级用户安全最佳实践。# master 节点psql 中执行 psql -c CREATE USER replicator WITH REPLICATION ENCRYPTED PASSWORD ReplicaPass123!; ALTER USER replicator SET search_path TO public; 参数说明WITH REPLICATION授予复制权限ENCRYPTED PASSWORD确保密码存储为密文search_path避免后续建表时 schema 错误密码强度同 3.1 要求。4.4 备库配置验证pg_is_in_recovery()是唯一真理备库启动后不能只看进程必须用 SQL 确认其状态。pg_is_in_recovery()返回t表示正常备库f表示已提升为主库。# standby 节点postgres 用户执行 psql -c SELECT pg_is_in_recovery(), now(); # 正常输出应为t | 2023-10-01 10:00:00.12345608 # 检查复制延迟单位字节 psql -c SELECT pg_wal_lsn_diff(pg_current_wal_lsn(), replay_lsn) AS lag_bytes FROM pg_stat_replication; # 检查主库上是否有复制连接 psql -c SELECT application_name, client_addr, state, sync_state FROM pg_stat_replication; # 正常应看到 application_namepgsql-standby, statestreaming, sync_statesync逻辑说明pg_wal_lsn_diff返回延迟字节数 1MB 为健康pg_stat_replication在主库查询sync_state为sync表示该备库是同步备库若state为startup说明备库未连接上主库。4.5 避坑常见问题与排查流复制层现象 1pg_stat_replication中state start且replay_lsn为空→ 原因备库primary_conninfo中password错误或 master 的pg_hba.conf未允许该用户。→ 解决检查$PGDATA/postgresql.conf中primary_conninfo的password值在 master 上psql -U replicator -h 127.0.0.1 -c SELECT 1;测试。现象 2pg_is_in_recovery()返回f备库意外提升为主库→ 原因standby.signal文件被误删或recovery_target_timeline latest导致自动提升。→ 解决立即停止备库pg_ctl stop检查$PGDATA/standby.signal是否存在若已提升需手动降级touch $PGDATA/standby.signal pg_ctl start。现象 3pg_wal_lsn_diff返回负数或极大值如 10GB→ 原因主库archive_command失败WAL 未及时归档备库无法追赶。→ 解决检查/var/lib/pgsql/12/archive/目录权限应为 postgres:postgrestail -f $PGDATA/log/postgresql-*.log查archive command failed错误。现象 4synchronous_commit on但写入性能暴跌TPS 下降 50%→ 原因synchronous_standby_names指定了不存在的备库名主库无限等待。→ 解决SHOW synchronous_standby_names;确认值pg_stat_replication中application_name必须完全匹配区分大小写。5. pgpool-II 安装与配置4.1.1 版本下pcp密码与pool_hba的生死绑定提示pgpool-II 4.1 与 3.6 配置差异巨大本文档仅覆盖 4.1.1。若用 3.6.14请参考附件中的旧版配置。5.1 下载与安装rpm 包安装避免make install权限地狱pgpool 官方提供 RHEL/CentOS rpm比源码安装省心。4.1.1 版本需从http://www.pgpool.net/mediawiki/index.php/Downloads获取。# 所有 pgpool 节点本文档为单 pgpool 节点即 pgpool-node1执行 wget http://www.pgpool.net/download.php?fpgpool-II-4.1.1.tar.gz -O pgpool-II-4.1.1.tar.gz tar -xzf pgpool-II-4.1.1.tar.gz cd pgpool-II-4.1.1 # 配置编译指定 PostgreSQL 12 路径 ./configure --prefix/usr/local/pgpool --with-pgsql/usr/pgsql-12 --with-openssl # 编译安装耗时约 3 分钟 make make install # 创建符号链接统一路径 ln -sf /usr/local/pgpool /usr/pgpool逻辑说明--with-pgsql/usr/pgsql-12指向 PostgreSQL 12 的安装目录确保pgpool能调用libpq--with-openssl启用 SSL 连接make install默认装到/usr/local/pgpoolln -sf方便后续脚本引用。5.2 初始化 pgpool 环境pgpool_setup是官方脚本别手写目录pgpool 4.1 提供pgpool_setup脚本自动生成pgpool.conf、pcp.conf、pool_hba.conf及目录结构比手动配置少 90% 错误。# pgpool-node1 节点root 用户执行 /usr/pgpool/etc/pgpool_setup -i -m fast -n 2 \ -h1 pgsql-master -p1 5432 -w1 /var/lib/pgsql/12/data \ -h2 pgsql-standby -p2 5432 -w2 /var/lib/pgsql/12/data \ -a host all all 0.0.0.0/0 md5 \ -k /tmp # 参数说明 # -i交互模式此处实际非交互 # -m fast快速模式不检查 PostgreSQL 版本 # -n 2配置 2 个后端节点 # -h1/-h2节点主机名 # -p1/-p2端口 # -w1/-w2数据目录用于 health check # -apool_hba.conf 的默认规则 # -k /tmp工作目录逻辑说明pgpool_setup会生成/usr/pgpool/etc/下的全部配置文件并创建/var/log/pgpool/日志目录-a规则允许所有 IP 用 md5 连接生产环境应改为192.168.10.0/24执行后检查/usr/pgpool/etc/pgpool.conf中backend_hostname0是否为pgsql-master。5.3 配置pgpool.conf4.1.1 版本必须启用health_check_periodpgpool 4.1 的健康检查机制重构health_check_period是心跳开关不设则节点永远显示down。# pgpool-node1编辑主配置 vi /usr/pgpool/etc/pgpool.conf # 修改关键参数搜索定位 listen_addresses 0.0.0.0 # 允许所有 IP 连接生产环境建议 192.168.10.103 port 9999 # pgpool 监听端口客户端连接用 pcp_port 9898 # PCP 管理端口监控/切换用 backend_hostname0 pgsql-master # 节点0主机名 backend_port0 5432 backend_weight0 1 backend_data_directory0 /var/lib/pgsql/12/data backend_flag0 ALLOW_TO_FAILOVER | DISALLOW_TO_FOLLOW_MASTER # 关键备库可接管但不跟随新主 backend_hostname1 pgsql-standby backend_port1 5432 backend_weight1 1 backend_data_directory1 /var/lib/pgsql/12/data backend_flag1 ALLOW_TO_FAILOVER | DISALLOW_TO_FOLLOW_MASTER enable_pool_hba on # 启用 pool_hba.conf 认证 pool_hba_file /usr/pgpool/etc/pool_hba.conf health_check_period 10 # 每10秒检查一次节点健康 health_check_timeout 20 # 检查超时20秒 health_check_user pgpool # 健康检查用户需在 PostgreSQL 中创建 health_check_password PgpoolPass123! # 密码参数说明backend_flag1中DISALLOW_TO_FOLLOW_MASTER是重点它阻止 pgpool 在 failover 后让原备库去同步新主库因新主库可能已是原备库形成环路health_check_user必须在 PostgreSQL 中存在且有CONNECT权限。5.4 创建 pgpool 管理用户pgpool用户需在 PostgreSQL 中显式创建pgpool 的健康检查、在线恢复、PCP 命令均需数据库用户权限。pgpool是约定俗成的用户名密码需与pgpool.conf中health_check_password一致。# 在 master 和 standby 的 PostgreSQL 中均执行因 pgpool 会轮询检查 psql -c CREATE USER pgpool WITH PASSWORD PgpoolPass123!; GRANT CONNECT ON DATABASE postgres TO pgpool; 逻辑说明GRANT CONNECT是最低权限足够健康检查若需在线恢复online recovery还需pg_read_all_data角色但本文档 failover 用脚本故不授。5.5 配置pcp.confpcp_node_info命令依赖的密码文件PCPProcess Control Protocol是 pgpool 的管理协议pcp_node_info、pcp_attach_node等命令需pcp.conf中的用户密码。# 生成 pcp.confpgpool 安装后自带工具 /usr/pgpool/bin/pg_md5 -m -f /usr/pgpool/etc/pcp.conf -u pgpool PgpoolPass123! # 验证内容应为pgpool:md5d1b2e3 p a hrefhttps://download.csdn.net/download/Jay_Fred/88477949 stylecolor:#ec7500;font-size:14px; 本文还有配套的精品资源点击获取 /a img altmenu-r.4af5f7ec.gif srchttps://csdnimg.cn/release/wenkucmsfe/public/img/menu-r.4af5f7ec.gif stylewidth:16px;margin-left:4px;vertical-align:text-bottom;cursor:text; /p
延伸阅读

更多相关文章

2026/11/4 7:39:00

LLM驱动的双手机器人操作数据自动化生成方案

1. 项目背景与核心价值这个标题揭示了当前具身智能领域的一个关键瓶颈——缺乏高质量的双手机器人操作数据。HumanoidGen项目试图通过大语言模型(LLM)的推理能力,构建一个自动化数据生成管道。我在机器人抓取研究中深有体会:现有数…

2026/11/4 7:34:00

SQL Server日期转换实战:CONVERT函数详解与优化

1. 为什么我们需要关注日期转换问题上周处理一个报表系统故障时,我遇到了一个典型的日期转换问题:前端传入的日期字符串是2023-05-15格式,而数据库存储的是datetime类型。当查询条件没有正确转换时,导致全表扫描性能骤降。这让我意…

2026/11/4 7:34:00

多Agent系统工业级优化:从通信协议到稳定性实战

1. 项目背景与核心挑战去年夏天我们团队接了个硬骨头——要在两周内把一条多Agent协作流水线从实验室Demo状态打磨成可交付的工业级解决方案。当时摆在面前的是一堆令人头疼的问题:Agent间通信时延波动大、任务调度存在死锁风险、异常处理机制不完善...更棘手的是客…

2026/11/4 11:15:40

三月七小助手实用指南:从部署到日常任务自动化

三月七小助手实用指南:从部署到日常任务自动化 【免费下载链接】March7thAssistant 日常交给三月七,开拓留给你。《崩坏:星穹铁道》开源自动化助手。 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 每天打开游戏&am…

2026/11/4 11:15:40

不装客户端,9 大网盘直链下载全支持:LinkSwift 实用指南

不装客户端,9 大网盘直链下载全支持:LinkSwift 实用指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 / 迅…

2026/11/4 11:15:40

如何在自定义数据集上微调 SAM 3 分割模型:完整指南

如何在自定义数据集上微调 SAM 3 分割模型:完整指南 【免费下载链接】sam3 The repository provides code for running inference and finetuning with the Meta Segment Anything Model 3 (SAM 3), links for downloading the trained model checkpoints, and exam…

2026/11/4 11:10:39

右键一次跑通日文游戏:Locale Emulator 免费完整配置指南

右键一次跑通日文游戏:Locale Emulator 免费完整配置指南 【免费下载链接】Locale-Emulator Yet Another System Region and Language Simulator 项目地址: https://gitcode.com/gh_mirrors/lo/Locale-Emulator 装好 Locale Emulator 后,右键游戏…

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/4 0:03:20

AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年…

2026/11/4 0:03:20

从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你…

2026/11/4 0:03:20

32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统…

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑