the master has two sync slave, which slave can promote to master and the other slave as the new master's slave?

Started by linabout 9 years ago2 messagesgeneral
Jump to latest
#1lin
jluwln@163.com

Hi,
everyone. I am puzzled about the question: the master A has two slave slave_1 , slave_2 , the version of postgres is 9.3. I want to promote one slave to master, and the other slave as the new master's slave, but which slave should can promote ?

get the master-slave information from old master:
postgres=# select * from pg_stat_replication;
-[ RECORD 1 ]----+------------------------------
pid | 15377
usesysid | 10
usename | postgres
application_name | slave_1
client_addr | 10.20.16.201
client_hostname |
client_port | 46086
backend_start | 2017-03-19 12:42:02.026278+08
state | streaming
sent_location | 1/34FB0000
write_location | 1/34EB0000
flush_location | 1/34DB0000
replay_location | 1/34C4FFD8
sync_priority | 0
sync_state | async
-[ RECORD 2 ]----+------------------------------
pid | 15411
usesysid | 10
usename | postgres
application_name | slave_2
client_addr | 10.20.16.200
client_hostname |
client_port | 51102
backend_start | 2017-03-19 12:42:12.477886+08
state | streaming
sent_location | 1/414FD320
write_location | 1/414FD320
flush_location | 1/414FD320
replay_location | 1/3DD91468
sync_priority | 0
sync_state | async

1. which one can promote to master ,slave_1 or slave_2 ?
:: I think it is slave_2, because write_location slave_2 1/414FD320 > slave_1 (1/34FB0000), it is right?

2. If the slave_1 is sync state, which one can promote to master? I am puzzled.

#2drum.lucas@gmail.com
drum.lucas@gmail.com
In reply to: lin (#1)
Re: the master has two sync slave, which slave can promote to master and the other slave as the new master's slave?

2017-03-19 17:52 GMT+13:00 lin <jluwln@163.com>:

Hi,
everyone. I am puzzled
<https://www.baidu.com/link?url=jInEDezMLuMV_corXvCP8CETViLH7RBG45m-C91WcPScwzYDdIWsiKilkG-4jIwgFGyxoIYaKbkbt5ijJc4m1qnl5ESOYdXggHLBeBmpDmC&amp;wd=&amp;eqid=b06a8963001f680e0000000358ce0b14&gt; about
the question: the master A has two slave slave_1 , slave_2 , the version of
postgres is 9.3. I want to promote one slave to master, and the other slave
as the new master's slave, but which slave should can promote ?

get the master-slave information from old master:
postgres=# select * from pg_stat_replication;
-[ RECORD 1 ]----+------------------------------
pid | 15377
usesysid | 10
usename | postgres
*application_name | slave_1*
client_addr | 10.20.16.201
client_hostname |
client_port | 46086
backend_start | 2017-03-19 12:42:02.026278+08
state | streaming
sent_location | 1/34FB0000
write_location | 1/34EB0000
flush_location | 1/34DB0000
replay_location | 1/34C4FFD8
sync_priority | 0
sync_state | async
-[ RECORD 2 ]----+------------------------------
pid | 15411
usesysid | 10
usename | postgres
*application_name | slave_2*
client_addr | 10.20.16.200
client_hostname |
client_port | 51102
backend_start | 2017-03-19 12:42:12.477886+08
state | streaming
sent_location | 1/414FD320
write_location | 1/414FD320
flush_location | 1/414FD320
replay_location | 1/3DD91468
sync_priority | 0
sync_state | async

1. which one can promote to master ,slave_1 or slave_2 ?
:: I think it is slave_2, because write_location slave_2 1/414FD320 >
slave_1 (1/34FB0000), it is right?

2. If the slave_1 is sync state, which one can promote to master? I am
puzzled.

You can promote any slave server to become a master server. It's up to you
which one to do it; more info can be found here [1]https://www.postgresql.org/docs/9.3/static/warm-standby-failover.html.

*Example:*

slave_1 will be the new master and slave_2 will be the slave of that new
master.

Make sure to have all the wal files and history files copied to the
slave_2 server otherwise it won't be able to switch timeline.

[1]: https://www.postgresql.org/docs/9.3/static/warm-standby-failover.html

Lucas