编辑2:我遇到了完全相同的问题。
对于 RavenDB 复制,Raven-Replication-Source Guid 在尝试辨别哪些文档来自哪个服务器时非常方便。
但在灾难恢复场景中,可能需要确保实例的 Raven-Replication-Source Guid 与失败前保持一致。
我的问题:
- 我可以手动设置数据库的 Raven-Replication-Source Guid 吗?
编辑(回应Ayende 的评论):
- 这是这个问题的后续问题。
这是场景:
- 客户端使用一个主 RavenDB 实例进行所有读取和写入。
- 此主实例复制到热备用实例。
- 当主实例发生故障时,客户端会根据此配置设置立即故障转移到热备件。
- 经过仔细检查,我们发现主 RavenDB 实例已损坏,需要清除。
- 当我们重新创建主 RavenDB 实例时,从热备份复制将仅复制在热备份上创建的文档。
- 强调:热备件不会将在主服务器(灾难之前)创建的文档复制回主服务器,因为它们的 Raven-Replication-Source Guid 是主服务器的 Raven-Replication-Source Guid。
- 这是一个问题,因为正如我所说,主 RavenDB 实例已被清除,我们需要从头开始重新创建数据库,并且我们需要将所有文档从热备用复制回主实例。
编辑 3: @Ayende 的回答让我发现我正在解决错误的问题。这是解决我的问题的正确方法。