1、准备
1.1、IP分配
IP |
name |
节点 |
192.168.98.150 |
master |
master |
192.168.98.151 |
node1 |
node1 |
192.168.98.152 |
node2 |
node2 |
192.168.98.153 |
node3 |
node3 |
1.2、前期配置
# 修改150~153的hosts配置文件
vim /etc/hosts
192.168.98.150 master
192.168.98.151 node1
192.168.98.152 node2
192.168.98.153 node3
1.3、配置ssh免登录
# 150~153都需要配置
# 基于root
ssh-keygen
ssh-copy-id 192.168.98.150
ssh-copy-id 192.168.98.151
ssh-copy-id 192.168.98.152
ssh-copy-id 192.168.98.153
# 基于postgres
passwd postgres
su - postgres
ssh-copy-id 192.168.98.150
ssh-copy-id 192.168.98.151
ssh-copy-id 192.168.98.152
ssh-copy-id 192.168.98.153
2、安装(统一)
#自定义安装配置
#自定义目录
#创建数据存放目录
mkdir -p /data/pg/14/data
#指定postgres用户的权限
chown -R postgres:postgres /data/pgsql/14/data
# 配置环境变量
vim /etc/profile
# 软件安装目录
export PGHOME=/usr/pgsql-14/
# PG数据目录
export PGDATA=/app/pgsql/14/data/
export PATH=$PGHOME/bin:$PATH
# 更新环境配置
source /etc/profile
#修改启动文件的启动目录
sudo vim /usr/lib/systemd/system/postgresql-14.service
#Enviroment=PGDATA=/var/lib/pgsql/14/data/
Enviroment=PGDATA=/data/pgsql/14/data/
#重新加载配置文件
systemctl daemon-reload
systemctl start postgresql-14.service
#修改密码
sudo -u postgres psql
\passwd postgres
3、master配置
3.1、初始化数据库配置
#登录postgres用户
su - postgres
#初始化数据库,并指定存放数据目录
/usr/pgsql-14/bin/initdb -D /app/pgsql/14/data
exit
3.2、repmgr安装部署
此处针对master进行安装,所有的node1、node2、node3配置一致
yum install flex
yum list | grep repmgr
yum install -y repmgr_14
3.3、修改postgresql的配置
vim /app/pgsql/14/data/postgresql.conf
listen_addresses = '*'
port = 5432
max_wal_senders = 10
max_replication_slots = 10
wal_level = 'hot_standby'
hot_standby = on
archive_mode = on
archive_command = '/bin/true'
vim /app/pgsql/14/data/pg_hba.conf
local replication repmgr trust
host replication repmgr 127.0.0.1/32 trust
host replication repmgr node1 trust
host replication repmgr node2 trust
host replication repmgr master trust
local repmgr repmgr trust
host repmgr repmgr 127.0.0.1/32 trust
host repmgr repmgr node1 trust
host repmgr repmgr node2 trust
host repmgr repmgr master trust
3.4、创建repmgr用户和库
# 第一种方式
su - postgres
createuser -s repmgr
createdb repmgr -O repmgr
psql -U repmgr -d repmgr
repmgr=# alter user repmgr with password '123456';
repmgr=# exit
ALTER USER repmgr PASSWORD NULL;
# 第二种方式
psql | sudo -u postgres psql
create user repmgr with password '123456' superuser r