pg主备切换

主备的判断方法:

1、通过pg_controldata命令

主:

 

备:

 

2、通过进程ps -ef|grep postgres查看,显示wal sender的是主机,显示wal receiver的是备机

主:

 

备:

 

3、连接数据库服务器,输入语句进行判断

postgres=# select procpid,usename,application_name,client_addr,client_port,state,sync_state from pg_stat_replication;

主:

procpid | usename | application_name |  client_addr  | client_port |   state   | sync_state

---------+---------+------------------+---------------+-------------+-----------+-----------

    7101 | repuser | walreceiver      | 192.168.2.137 |       46655 | streaming | async

备:

(0 row)

 

postgres=# select pg_is_in_recovery();

主:

 pg_is_in_recovery

-------------------

 f

备:

pg_is_in_recovery

-------------------

 t

 

模拟主机故障,备机切换为主机

主:

[postgres@cqs data]$ pg_ctl stop -D /home/postgres/data/

备:

主机数据库关闭后,备机的数据库日志出现了大量的错误

[postgres@cqs ~]$ cat /home/postgres/data/pg_log/xxxxxx.csv

 

[postgres@cqs ~]$ cd /home/postgres/data/

[postgres@cqs data]$ cat recovery.conf

standby_mode='on' --标记pg为standby server

primary_conninfo='host=192.168.214.134 port=5432 user=postgres password=000 '--标记主库的信息

trigger_file='/home/postgres/data/trigger_active.5432'--标识触发器文件

 

[postgres@cqs data]$ touch trigger_active.5432

 

通过创建触发器文件trigger_active.5432后,recovery.conf变成了recover.done

[postgres@cqs data]$ vim pg_hba.conf

host    replication     postgres        192.168.214.0/24          md5

重启数据库服务,备机已经转为主机数据库了。

[postgres@cqs data]$ pg_ctl restart -D /home/postgres/data/

[postgres@cqs data]$ pg_controldata

 

至此,原备机的配置完成

接下来,原主机将进行以下配置:

[postgres@cqs data]$ pwd

/home/postgres/data

[postgres@cqs data]$ vim recovery.conf

recovery_target_timeline = 'latest'

standby_mode = 'on'

primary_conninfo = 'host=192.168.214.134 port=5432 user=postgres password=000'

trigger_file='/home/postgres/data/trigger_active.5432'

[postgres@cqs data]$ vim postgresql.conf

#hot_standby = off

修改为hot_standby = on

重启数据库服务

[postgres@cqs data]$ pg_ctl restart -D /home/postgres/data/

完成了原主机转为备机的配置。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值