一、停主库
1、查看当前连接
select pid,datname,usename,client_addr,client_port, application_name from pg_stat_activity;
2、杀死当前账户连接
select pg_terminate_backend(pid) from pg_stat_activity where usename='postgres' ;
3、停止主库服务
pg_ctl stop -m fast -D /usr/local/postgresql/data
4、从库激活为主库
pg_ctl promote -D /usr/local/postgresql/data
5、检查从库是否提升为主库成功
pg_controldata -D /usr/local/postgresql/data | grep cluster
Database cluster state: in production -- 说明: 如果值为 "in production" 说明是主库,如果值为 "in archive recovery" 说明是从库
提升主库前进程处于recovering状态
提示主库后进程状态
参考:https://blog.51cto.com/lee90/2097494