pg_rewind无法同步第二个数据库

问题描述 投票:0回答:1

我有一个PostgreSQL集群,其中包含以下数据库和用户myuser

  1. 数据库1
  2. DATABASE2

我已经设置了一个主服务器(192.168.50.8)和一个服务器(192.168.50.9)的复制。我故障转移到奴隶,当我尝试使用pg_rewind为每个数据库故障回复到原始主服务器时,pg_rewind成功完成第一个数据库但是第二个数据库失败。

对于database1,在(192.168.50.8)上运行以下命令有效:

/usr/pgsql-11/bin/pg_rewind -D "data_dir_path_here" --source-server="port=pg_port_here user=myuser dbname=database1 host=192.168.50.9"

对于database2,在(192.168.50.8)上运行以下命令会给出错误:

/usr/pgsql-11/bin/pg_rewind -D "data_dir_path_here" --source-server="port=pg_port_here user=myuser dbname=database2 host=192.168.50.9"

错误:

target server must be shut down cleanly
failure, exiting
postgresql failover postgresql-11
1个回答
1
投票

你使用pg_rewind和旧的主人(192.168.50.8)把它变成奴隶。如果关闭不干净,你必须在PostgreSQL上运行崩溃恢复(只需启动服务器并在崩溃恢复完成后立即再次停止)。然后你可以运行pg_rewind

pg_rewind会影响整个数据库集群,因此不要为每个数据库运行它。你在应该成为新奴隶的旧主人身上运行一次。

如果使用--source-serverpg_rewind选项连接到新主服务器,则指定哪个数据库无关紧要。任何数据库都可以,效果也一样。

© www.soinside.com 2019 - 2024. All rights reserved.