一、停主庫
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