当“priority”= 0并且“slaveDelay”= n时,如何在该点周围重建我的数据时,如何强制辅助节点成为主节点?

时间:2011-11-21 15:27:43

标签: mongodb restore master

这甚至可能吗?我怎样才能从slaveDelay-Secondary恢复数据? 我能想到的唯一方法是关闭副本集的所有其他正在运行的成员,并将slaveDelay-Secondary数据文件夹复制到其他成员并重新启动副本集。 我在MongoDB文档中找不到任何内容。也许我错过了一些必要的东西,解决方案太明显了。

2 个答案:

答案 0 :(得分:4)

您有几种选择:

  • 使用mongoexport / mongodump并手动重新注入您想要的数据(不推荐)
  • 调整您的优先级,使您的二级主要。 (不推荐)
  • 阅读相关的documentation page(推荐)

基本上:你只需要关闭复制集的所有其他成员,然后应用引用页面上描述的程序。

答案 1 :(得分:0)

要使从属设备同步,您可以copy data files停止写入数据库,也可以尝试使用mongodumpmongorestore方法。请检查link for reference.

您可以按照以下步骤强制辅助副本成为主要副本:

Step 1: 连接到成员并检查当前配置

<强> rs.conf()

Step 2: 将当前配置保存到另一个变量。

x = rs.conf()

Step 3: 选择要作为主要成员的成员的ID,主机和端口。

x.members = [{&#34; _id&#34;:1,&#34; host&#34; :&#34; localhost.localdomain:27071&#34;}]

Step 4: 强制重新配置它们。

rs.reconfig(x,{force:true})

现在所需的成员将被提升为主要成员。