【问题标题】:Riak KV: how to reinitialize data directoriesRiak KV:如何重新初始化数据目录
【发布时间】:2016-06-06 08:09:32
【问题描述】:

是否可以“重新创建”/“重新初始化”数据库 riak 的所有数据目录?我不需要保留数据 - 只需从 0 开始。如果是,该怎么做?

【问题讨论】:

    标签: database riak riak-kv


    【解决方案1】:

    根据您使用的后端,您可以停止 Riak (riak stop),删除 data directory(通常在 /var/lib/riak/bitcask/var/lib/riak/leveldb 下)并启动 Riak (riak start)。 Riak 应该可以正常启动。如果您正在运行集群,请在启动之前清理集群的所有节点,以免从副本中重新填充数据。

    查看Backing Up 页面,它将帮助您了解 Riak 数据目录的工作原理。

    澄清:所述程序适用于 Riak KV,可能不适用于其他 Riak 产品(例如 Riak TS)。

    【讨论】:

    • 如果这回答了您的问题,您可以将其标记为已回答其他人。
    • 如果您更改ring_size(或其他配置?),那么您还必须擦除/var/lib/riak/ring 文件夹。否则,在擦除 leveldb 并重新启动 riak 后,它仍然会在 leveldb 中生成旧的ring_size 分区文件夹数。您可以通过ls leveldb | wc -l 进行验证。
    • 对于 RiakTS 1.5.2,这不起作用 - 我的意思是在删除 leveldb 数据后,重新启动服务器只是重新创建了 leveldb 中的目录,我的表仍然存在(我我正在尝试删除表本身,以便我可以重新创建它的定义 - 即更改表)
    • @Nick 这是给 Riak KV 的。 RiakTS 是不同的产品,因此可能需要不同的程序。抱歉,RiakTS 无法为您提供帮助。
    • @Nick - 好吧,早在 2016 年 6 月,它就有点明确了 :) 此外,riak-ts 有一个特殊标签,但 riak-kv 没有。可能是因为在 Riak TS 发布之前,Riak KV 被称为“Riak”。无论如何,我认为你有一个观点,并且至少会在答案中澄清这一点(因为我无权编辑帖子)。
    【解决方案2】:

    我在使用 Riak TS 1.5.2 时遇到了这个问题。

    我能够通过停止 RiakTS 然后删除顶级 data 目录来清除我的开发主机 (MacOSX) 上的所有表。当我重新启动 RiakTS 时,它重新创建并重新初始化了 data 目录。

    这不是一个理想的开发流程。我真的希望 Basho 能够添加对 DROP TABLE 构造的支持。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-05
      • 1970-01-01
      • 1970-01-01
      • 2011-03-13
      • 2016-04-18
      • 1970-01-01
      • 2016-06-26
      相关资源
      最近更新 更多