场景
从库数据与主库不一致
版本
PostgreSQL 14
关闭从库
systemctl stop postgresql
或
killall -9 postgres
移除数据从库的数据
rm -rf /var/lib/postgresql/12/main/*
从主库备份数据
切换 postgres用户
su postgres
进入postgres bin目录
pg_basebackup -h 192.168.1.110 -U pg_repl -Xs -P -R -D /home/postgresql/data/
Password:
waiting for checkpoint
其中:
- -Xs :避免备份的数据两太大时,防止wal日志被删除
- -P: 查看备份的进度
- -R: 让pg_basebackup创建standby.signal文件,准备postgresql.auto.conf文件
pg_basebackup在开启备份之前会等待检查点。 如果pg_basebackup等待检查点的时间太长,可以在pg_basebackup后加上参数’-c fast’;或直接在主库执行一个检查点:
启动从库
systemctl start postgresql
或者
pg_ctl -D /home/postgresql/data/ -l /home/postgresql/log/serverlog start
启动后,从库应该自动跟主库同步了。
检查同步状态
在主库端执行
SELECT * FROM pg_stat_replication;
评论区