1.主库停库备份
做好基础备份,防止出现误操作导致主库数据丢失
2.从库环境搭建
新建postgre用户,配置.cshrc环境,从主库拷贝product目录
.cshrc环境示例,其中PGHOME、PGBASE、PGDATA和端口号根据实际路径修改
3.使用pg_basebackup拷贝主库(也可以将主库停掉,将主库直接拷贝至从库)
pg_basebackup -p 端口号 -h 主库IP地址 -U admin1 -F p -P -R -D 主库实例名
示例:pg_basebackup -p 5433 -h 130.1.10.100 -U admin1 -F -p -P -R -D ndp
4.从库修改配置文件
将$PGHOME/share/postgresql目录中的recovery.conf.sample拷贝至当前实例目录内
cp $PGHOME/share/postgresql/recovery.conf.sample recovery.conf
在recovery.conf中增加如下两行配置信息
其中primary_conninfo中
host为主库IP地址
port为主库端口号
修改postgresql.conf配置文件
删除wal_level、max_wal_senders、wal_keep_segments
增加hot_standby_feedback、max_standby_streaming_delay、wal_receiver_status_interval
5.启动pg
问题1:
目录权限必须为0700
问题2:
缺少pg_control文件,pg_basebackup疑似未正常完成,从主库拷贝即可
正常启动:
6.查看主从库状态
(1)查看进程
主库:wal sender process
从库:wal receiver process
(2)在主从库中执行select pg_is_in_recovery()
主库:f标识
从库:t标识
(3)在主库中执行select * FROM pg_stat_replication;