我正在尝试想出一种策略来备份我的apache ignite缓存中的数据,该缓存在google cloud Kubernetes中托管为有状态集。我的ignite部署使用ignite本机持久性,并运行由Kubernetes中的持久性卷支持的3节点ignite集群。我使用binaryConfiguration在缓存中存储二进制对象。
我正在寻找一种可靠的方法来备份我的ignite数据,并能够恢复它。
到目前为止,我已经尝试只备份持久性文件,然后恢复它们。它还没有可靠地工作。我面临的问题是,在恢复后,缓存数据不是二进制对象,例如字符串或数字,会被正确恢复。我能够很好地访问数字或字符串数据。但是二进制对象是不可访问的。似乎二进制对象已恢复,但我无法获取它们。
奇怪的是,在恢复之后,一旦我将一个新的二进制对象添加到缓存中,所有恢复的数据似乎都可以正常访问。
有没有人能推荐一种可靠的方法来备份和恢复ignite本机持久性数据?
发布于 2019-01-31 17:30:17
您应该备份${ignite.work.dir}/marshaller目录,或者为缓存中的每个类型调用ignite.binary().type(KeyOrValue.class),以启动二进制编组程序。
发布于 2019-01-31 07:54:26
Apache Ignite提供了非常可靠的ACID事务。缓存还对primary backups and copies使用自己的机制,并且假设您启用了它的WAL,一些内容将保留在内存中。
最有可能发生的情况是,您执行了恢复操作,当您进行初始写操作时,内存开始填充,从而允许您查看磁盘(缓存)上的内容。这并不是一个真正受支持的恢复机制(文档中没有),但它可以这样工作,在恢复之后,您可以运行一个不相关的小示例写入。不过,我建议对此进行彻底测试。
https://stackoverflow.com/questions/54446882
复制相似问题