【问题标题】:How do you move rocksdb data to a new directory?如何将 RocksDB 数据移动到新目录?
【发布时间】:2018-11-06 01:22:52
【问题描述】:

我正在尝试将 RocksDB 数据备份到新目录。

目前我所有的数据都在/mnt/my_rocksdb_dir 我正在尝试将数据移动到/mnt/my_rocksdb_dir2

但是,简单地将目录复制到一个新目录是行不通的,因为rocksdb本身在读取旧文件时会出现异常

/mnt/my_rocksdb_dir2/LOCK: Permission denied
at org.rocksdb.RocksDB.open(Native Method)

新的LOCK文件/mnt/my_rocksdb_dir2/LOCK有root权限,旧的有用户权限

备份rocksdb数据的正确方法是什么?

【问题讨论】:

  • 您已经检查了权限,您是否尝试过使用 chmod 更改权限?您可以使用 chmod 777 (使所有人都可以访问该目录),只需确保完成后将其还原。
  • 您在复制期间正在做某事,例如以更改文件的root身份运行它。复制 RocksDB 目录通常应该可以工作,尽管也有一些备份工具可以执行一些清理并支持增量备份。尝试在存档模式下使用 rsync (-a),这意味着 -ptgo 保留文件权限、时间戳、组和所有者来进行复制。

标签: java rocksdb


【解决方案1】:

rockdb 有实用程序(utilities/backupable_db.h)。您可以使用 c/c++ 编程来备份rockdb。

检查此example/Tutorial。您可以简单地使用示例中的模板并设置备份位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多