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

Ignite 使用复制缓存复制服务器节点的简单方法,ignite,Ignite,我使用的是2.7.6,一台服务器和几十个客户端 我想添加第二台服务器,它将复制第一台服务器上的数据,并定期备份持久数据 所以我开始第二个,它开始与第一个同步 问题是这个过程花费了太多的时间 因此,我试图简单地将第一台服务器的工作文件夹复制到第二台服务器的文件夹中 这让我想到了以下信息: Failed to add node to topology because it has the same hash code for partitioned affinity as one of exis

我使用的是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)'

发生。

我认为它应该通过复制db文件来工作

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


之后,如果您将
/db//*
文件复制到
/db//*
并从
/WAL/
复制WAL文件,如果您没有禁用它,那么第二个节点应该正常启动。

我认为应该通过复制db文件来工作

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


之后,如果您将
/db//*
文件复制到
/db/*
并从
/WAL/
复制WAL文件,如果您没有禁用它,那么第二个节点应该正常启动。

三十分钟似乎太长了。这里可能还有其他原因,但如果没有,你可以调整再平衡。你可以改变很多方法。可能会增加批处理大小和线程数。

三十分钟似乎过多了。这里可能还有其他原因,但如果没有,你可以调整再平衡。你可以改变很多方法。可能会增加批处理大小和线程数。

你说的“太长”是什么意思?我们在这里讨论多少数据?第一次运行大约30分钟。数据量约为10GB您所说的“太长”是什么意思?我们在这里讨论多少数据?第一次运行大约30分钟。数据量大约是10GbIt,这是第一个出现的想法,我会尝试一下并写回结果。非常感谢。将结果添加到topWell中,我用一个简单的场景对其进行了测试,只是为了验证复制db文件是否有效,并且不会引发关于复制consistentId的异常。关于最后一个,我刚刚记得IgniteConfiguration确实有一个setConsistentId方法,它可能也会对您有所帮助。这是第一个出现的想法,我会尝试一下,然后写回结果。非常感谢。将结果添加到topWell中,我用一个简单的场景对其进行了测试,只是为了验证复制db文件是否有效,并且不会引发关于复制consistentId的异常。关于最后一个,我刚刚记得IgniteConfiguration确实有一个setConsistentId方法,它可能也会对您有所帮助。这是一个使用真实DB副本的综合测试,所以它只是复制。我将首先尝试Alexandr的建议,如果失败,将检查此参数。这是一个使用真实DB副本的综合测试,所以它只是复制。我将首先尝试Alexandr的建议,如果失败,将检查此参数