systemctl edit postgresql-13.service
[Service]
Environment=PGDATA=/home/postgresql/13/data/
vi .bash_profile
PGDATA=/home/postgresql/13/data/
vi .pgsql_profile
PATH=/usr/pgsql-13/bin:$PATH
export PATH
登录postgres账户,修改主服务器配置文件:postgresql.conf
listen_addresses= '*'
wal_level = replica
archive_mode = on
archive_command = 'cp %p /data/postgresql/archive/%f'
max_wal_senders= 10
wal_keep_size = 1000 # in megabytes; 0 disables
max_slot_wal_keep_size = 10 # in megabytes; -1 disables
wal_sender_timeout = 120s # in milliseconds; 0 disables
hot_standby = on
create user replica REPLICATION LOGIN ENCRYPTED PASSWORD 'asdf*123';
将主从IP添加到hba配置文件:pg_hba.conf
host replication replica 192.168.0.0/24 md5
host all all 0.0.0.0/0 md5
在从服务器新建文件夹:
mkdir -p /home/postgresql/13/data/
pg_basebackup -h 192.168.0.10 -U replica -F p -X s -v -P -R -D $PGDATA
在从服务器执行命令启动服务器
pg_ctl start
主服务器测试
psql
select client_addr,sync_state from pg_stat_replication;
查看是否有从服务器连接
# 备份
pg_dumpall -h 127.0.0.1 -U postgres > /var/lib/pgsql/bakup1221.bakup
# 恢复服务器从备份服务器下载备份文件
scp postgres@192.168.0.3:"/var/lib/pgsql/bakup1221.bakup" /var/lib/pgsql/
# 恢复,使用postgres账号
psql -f bakup1221.bakup postgres