PostgreSQL数据库判断主备角色的五种方法
方法/步骤
1、1.方式一:操作系统上查看WAL发送进程或WAL接收进程执行ps-ef|grep"wal"|grep-v"grep"如果输出walsender......streaming进程说明当前数据库为主库
2、2.如果输出walreceiverstreaing进程说明当前数据库为备用库
3、3.方式弛阻廖娓二:数据库上查看WAL发送进程或WAL接收进程在主库上查询pg_stat_replication视图,如果返回记录说明是主库,备库上查询此视图无记录selectpid,usen锾攒揉敫ame,application_name,client_addr,state,sync_statefrompg_stat_replication;
4、4.在备库上查看pg_stat_wal_receiver视图,如果返回记录说明是备库,流复制主库上此视图无记录
5、5.方式三:通过系统函数查看登录数据库执行pg_is_in_recovery()函数,如果返回t说明是备库,返回f说明是主库
6、6.方式四:查畋吱渎胤看数据库控制信息通过pg_controldata命令查看数据库控制信息,内容包含WAL日志信息、checkpoint、数据块等信息,通过Databasecluster霜杼厮贿state信息可以判断是主库还是备库返回inproduction表示为主库返回inarchiverecovery表示是备库
7、7.方式五:通过recovery.conf配置文件查看在配置流复制过程中,在备库$PGDATA目录下会创建recovery.conf配置文件,如果存在这个配置文件说明是备库,如果不存在此文件或此文件后缀是recovery.done则说明是主库