【问题标题】:How to recover data from Aerospike如何从 Aerospike 恢复数据
【发布时间】:2018-05-08 02:53:27
【问题描述】:

我遇到了一个奇怪的问题。

突然间,Aerospike 数据已被删除。前提是我没有执行任何命令从 Aerospike 中删除数据。

namespace test {
    replication-factor 2
    memory-size 4G
    default-ttl 30d # 30 days, use 0 to never expire/evict.

    storage-engine memory
}

我还没有在这里配置 ttl,但是几天前我运行了一个 UDF 将所有记录的 ttl 设置为 -1,这样它就永远不会过期。这些套装会定期更新,因此即使如此,它也不应该在 30 天后过期。我一下子就输了,这不应该是这样的。

我被困在这两天了。任何帮助表示赞赏。

【问题讨论】:

  • 你能分享你的 /etc/aerospike/aerospike.conf 配置文件吗?您是否在记录上设置了较短的 TTL 并且它们已过期?您何时插入数据(天)?您何时丢失数据(几天后)?您是只写一次数据,还是每天或定期更新?
  • @pgupta 请检查我是否更新了我的问题
  • 你能分享你的UDF代码吗?您何时插入数据……大约 30 天前?
  • 是否有多个节点?节点[s] 是否重新启动?是否所有数据都丢失或部分丢失?对您的问题的简短回答是,在这种情况下,由于节点未配置为持久化数据,因此无法恢复任何丢失的数据。

标签: aerospike


【解决方案1】:

您正在使用基本上定义为缓存的namespace。它在内存中,没有持久性。例如,重新启动节点会导致命名空间开始为空。

部署指南中的Namespace Storage Configuration 文章提供了存储引擎配置的秘诀。您可以将特定命名空间的storage 设置为以下之一:

  • 存储在 SSD 上的数据
  • 存储在文件系统上的数据(不推荐用于生产)
  • 数据存储在内存中并持久保存到 SSD
  • 数据存储在内存中并持久保存在文件系统中
  • 数据存储在内存中,没有持久性

内存中有一个special case 用于计数器的数据data-in-index。这是通过持久性完成的。

【讨论】:

  • “data-in-index”参数目前需要持久化。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-30
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 2011-04-29
  • 1970-01-01
相关资源
最近更新 更多