使用复制的缓存复制服务器节点的简单方法

时间:2019-11-18 14:54:16

标签: ignite

我将2.7.6与一台服务器和数十个客户端一起使用。

我想添加第二个服务器,该服务器将在第一个服务器上复制数据并定期备份持久性数据。

所以我启动第二个,开始与第一个同步。

问题在于此过程需要太多时间。

所以我试图将第一台服务器的工作文件夹简单地复制到第二台服务器的文件夹中。

这导致我收到以下消息:

  Failed to add node to topology because it has the same hash code for partitioned affinity as one of existing nodes

好的,我知道为什么会这样。但是如何加快同步过程呢?也许还有其他方法可以完全复制持久性,以便在其他服务器的节点中使用它?

已添加

似乎不可能仅创建一个新的服务器节点并将所需的数据移动到其工作文件夹中。可以对具有少量数据的简单节点执行此操作,但对于大型节点,/ db // metastorage文件夹会出现问题。

如果不触摸它并使其远离新服务器节点,则消息

 No server nodes found for cache client

出现在服务器的启动位置。另一方面,如果将其替换为复制服务器中的文件夹,则此异常

Apache.Ignite.Core.Common.IgniteException: 'Failed to get page IO instance (page content is corrupted)'

发生。

2 个答案:

答案 0 :(得分:1)

我认为应该通过复制数据库文件来工作。

您可以尝试启动第二个节点,并等待工作目录初始化,以便生成与其一致ID关联的所有必需文件夹。

之后,如果您尚未将/db/<source_node_consistentId>/*文件复制到/db/<new_node_consistentId>/*并从/wal/<sourceNode>/复制了WAL文件,则第二个节点应正常启动。

答案 1 :(得分:1)

三十分钟似乎太长了。这里可能还有其他情况,但是如果没有,您可以调整再平衡。您可以更改许多number of parameters。也许增加批处理的大小和线程数。