如何相互同步副本?

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

我的主 cassandra 服务器有两个副本。两个副本均不与主服务器同步。发生这种情况是因为副本服务器连续 3 天遇到由提交日志引起的错误。因此,副本服务器几乎每个表中都没有这三个日期的数据。那么,如何使这些副本服务器与具有完整数据的主 cassandra 服务器同步!

如果我们可以在服务器级别执行此操作,那么我们如何执行它?

cassandra 版本 - 3.11.1

我还没有尝试过任何东西,因为这是一个生产级别的集群。

我希望使所有副本服务器与主 cassandra 服务器同步。我希望主服务器上存在的全部数据都可以在副本服务器上轻松使用。

cassandra database-replication
1个回答
0
投票

您需要手动运行 repairs 来同步副本。

在 Cassandra 中,修复操作 (1) 比较副本之间的数据以确定它们是否不一致,以及 (2) 通过从另一个副本发送最新副本/版本来“修复”它们。

运行修复的最有效方法是使用分区器范围选项 (

-pr
)。您需要在所有 DC 中的所有节点上一次在一个节点上运行以下命令:

$ nodetool repair -pr

请注意,如果您在集群上启用了增量修复,请单独运行修复命令(不带

-pr
标志),这样已经修复的 SSTable 就不必再次处理。

如果您是 Cassandra 新手,请观看 YouTube 上的 Apache Cassandra Operations 播放列表 上有关修复 (DS210.18) 的短视频,以便了解基础知识。

您可能还对以下资源感兴趣:

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