软件版本
服务器:CentOS7
PostgresSql:14
PGPool-II:4.3.1
操作注意事项:
1. 注意目录归属及权限,建议相关目录均使用【chown -R postgres:postgres 目录】执行一次,防止权限问题
2. 数据库相关部分只需要配置主库,从库在安装完成后,不需要启动及初始化
3. pgpool的配置在各服务器上一致,都需要操作一遍
4. SSH免密登录配置完成请验证
5. 从库初始化及主库恢复需要配置插槽
6. psql的根目录/usr/pgsql-14/bin/psql,若搞不清楚目录,请使用完整路径运行
7. 最好联网安装,防止产生依赖,或者指令缺失
参考文档
Pgpool-II + Watchdog Setup Example
本文主体根据官方文档制作,去除大段的解释文字,优化了部分操作顺序,并补充几个官方未提及的细节点,笔者所作文档与网上其他文档差距较大,请不要同时参考,若发现了笔者没有碰到的问题,再额外去查询。
官方文档比较详细,但请注意版本,不同版本差距较大
Pg14安装
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install -y postgresql14-server
初始化数据库
/usr/pgsql-14/bin/postgresql-14-setup initdb
相关目录
软件目录
/usr/pgsql-14/
数据目录
/var/lib/pgsql/14/data/
存档目录
/var/lib/pgsql/archivedir
修改密码
su - postgres
psql
\password postgres
postgres在系统与数据库均有账户,两边密码可以不一致
配置远程访问
vi /var/lib/pgsql/14/data/pg_hba.conf
填入如下或类似语句,让全部或指定的服务器访问数据库
host all all 0.0.0.0/0 md5
vi /var/lib/pgsql/14/data/postgresql.conf
添加下方语句,监听所有服务器请求
listen_addresses = '*'
打开防火墙端口,默认5432
firewall-cmd --permanent --zone=public --add-service=postgresql
firewall-cmd --permanent --zone=public --add-port=5432/tcp
firewall-cmd --reload
配置自启
systemctl enable postgresql-14
开关服务
systemctl start postgresql-14
systemctl stop postgresql-14
systemctl restart postgresql-14
主从IP
主:10.70.1.118
从:10.70.1.119
虚拟:10.70.1.120
Pgpool-II安装
vi /etc/yum.repos.d/pgdg-redhat-all.repo
添加加粗内容并保存
[pgdg-common]
...
exclude=pgpool*
[pgdg14]
...
exclude=pgpool*
[pgdg13]
...
exclude=pgpool*
[pgdg12]
...
exclude=pgpool*
[pgdg11]
...
exclude=pgpool*
[pgdg10]
...
exclude=pgpool*
[pgdg96]
...
exclude=pgpool*
yum install -y https://www.pgpool.net/yum/rpms/4.3/redhat/rhel-7-x86_64/pgpool-II-release-4.3-1.noarch.rpm
yum install -y pgpool-II-pg14-*