首先,我使用此设置postgres-docker-cluster,在故障转移期间一切正常,我停止了主机,而slave1取代了它的位置,但是如果我重新打开主机,则不确定如何再次提升为主机,我希望在正确的方向上有任何指示,我需要手动进行推广吗?抱歉,我对这个概念还很陌生。
该docker使用 repmgr , pgpool2 和 postgre 9.5 。
码头上的一些信息
最佳答案
所以我想出了解决问题的方法,
掌握
docker run \ -e INITIAL_NODE_TYPE='master' \ -e NODE_ID=1 \ -e NODE_NAME='node1' \ -e CLUSTER_NODE_NETWORK_NAME='pgmaster' \ -e POSTGRES_PASSWORD='monkey_pass' \ -e POSTGRES_USER='monkey_user' \ -e POSTGRES_DB='monkey_db' \ -e CLUSTER_NODE_REGISTER_DELAY=5 \ -e REPLICATION_DAEMON_START_DELAY=120 \ -e CLUSTER_NAME='pg_cluster' \ -e REPLICATION_DB='replication_db' \ -e REPLICATION_USER='replication_user' \ -e REPLICATION_PASSWORD='replication_pass' \ -v cluster-archives:/var/cluster_archive \ -p 5432:5432 \ --net mynet \ --net-alias pgmaster \ --name pgmastertest \paunin/postgresql-cluster-pgsql
奴隶
docker run \ -e INITIAL_NODE_TYPE='standby' \ -e NODE_ID=2 \ -e NODE_NAME='node2' \ -e REPLICATION_PRIMARY_HOST='pgmaster' \ -e CLUSTER_NODE_NETWORK_NAME='pgslave1' \ -e REPLICATION_UPSTREAM_NODE_ID=1 \ -v cluster-archives:/var/cluster_archive \ -p 5441:5432 \ --net mynet \ --net-alias pgslave1 \ --name pgslavetest \paunin/postgresql-cluster-pgsql
pool池
docker run \ -e PCP_USER='pcp_user' \ -e PCP_PASSWORD='pcp_pass' \ -e PGPOOL_START_DELAY=120 \ -e REPLICATION_USER='replication_user' \ -e REPLICATION_PASSWORD='replication_pass' \ -e SEARCH_PRIMARY_NODE_TIMEOUT=5 \ -e DB_USERS='monkey_user:monkey_pass' \ -e BACKENDS='0:pgmaster:5432:1:/var/lib/postgresql/data:ALLOW_TO_FAILOVER,1:pgslave1::::' \ -p 5430:5432 \ -p 9898:9898 \ --net mynet \ --net-alias pgpool \ --name pgpooltest \paunin/postgresql-cluster-pgpool
在
BACKENDS='0:pgmaster:5432:1:/var/lib/postgresql/data:ALLOW_TO_FAILOVER,1:pgslave1::::' \
行上,您可以向pgppool添加更多的slavedocker run \ -e INITIAL_NODE_TYPE='standby' \ -e NODE_ID=3 \ -e NODE_NAME='node1' \ -e REPLICATION_PRIMARY_HOST='pgslave1' \ -e CLUSTER_NODE_NETWORK_NAME='pgmaster' \ -e REPLICATION_UPSTREAM_NODE_ID=2 \ -v cluster-archives:/var/cluster_archive \ -p 5432:5432 \ --net mynet \ --net-alias pgmaster \ --name pgmastertest3 \paunin/postgresql-cluster-pgsql
在以下几行
-e REPLICATION_PRIMARY_HOST='pgslave1' \
确保您指向新的主服务器(pgslave1)的别名。-e REPLICATION_UPSTREAM_NODE_ID=2 \
确保您指向新的主节点ID(2)。-e NODE_ID=3 \
确保此ID在表 repl_nodes 上不存在。--net-alias pgmaster \
您可以使用旧主机上的BACKENDS='0:pgmaster:5432:1:/var/lib/postgresql/data:ALLOW_TO_FAILOVER,1:pgslave1::::' \
,也可以使用已在pgpool ojit_code上添加的主机,否则,如果新主机失败,则repmgr将无法恢复。它有点手册,但是它满足了我的需要,那就是向新的主服务器添加新的从属服务器。
关于database - 在使用docker在postgresql上进行故障转移后,如何提升master,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37710868/