Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database LevelDB是否支持热备份(或等效备份)?_Database_Leveldb - Fatal编程技术网

Database LevelDB是否支持热备份(或等效备份)?

Database LevelDB是否支持热备份(或等效备份)?,database,leveldb,Database,Leveldb,目前,我们正在评估几个键+值数据存储,以替换目前由owr主应用程序使用的较旧isam(20多年!) 问题是我们当前的isam不支持崩溃恢复 因此,LevelDB对我们来说似乎是正常的(同时检查BerkleyDB等) 但我们遇到了热备份的问题,并且,鉴于LevelDB是一个库而不是一个服务器,要求“热备份”是很奇怪的,因为它直观地意味着一个外部备份过程 也许有人想提出选择(或已知的解决方案) 例如: -通过主应用程序的内螺纹进行热备份? -仅通过复制LevelDB数据目录进行热备份 提前感谢您可以

目前,我们正在评估几个键+值数据存储,以替换目前由owr主应用程序使用的较旧isam(20多年!)

问题是我们当前的isam不支持崩溃恢复

因此,LevelDB对我们来说似乎是正常的(同时检查BerkleyDB等)

但我们遇到了热备份的问题,并且,鉴于LevelDB是一个库而不是一个服务器,要求“热备份”是很奇怪的,因为它直观地意味着一个外部备份过程

也许有人想提出选择(或已知的解决方案)

例如: -通过主应用程序的内螺纹进行热备份? -仅通过复制LevelDB数据目录进行热备份


提前感谢

您可以通过LevelDB进行快照迭代,这可能是制作热拷贝的最佳方式(不要忘记关闭迭代器)

为了通过文件系统备份LevelDB,我以前使用过一个脚本,该脚本创建指向所有.sst文件(一旦写入就不可变)和日志(以及清单、当前等)文件的普通副本的硬链接,并将其备份到同一分区上的备份目录中。这很快,因为日志文件比.sst文件小


备份运行时,必须(由应用程序)关闭数据库,但所用时间显然要比将整个数据库复制到不同分区或上载到S3等所用时间少得多。这可以在应用程序重新打开数据库后完成。

LMDB是一种嵌入式键值存储,但与LevelDB不同,它支持多进程并发,因此您可以使用外部备份进程。mdb_copy实用程序将对数据库进行原子热备份,备份运行时,您的应用程序不需要停止或执行任何特殊操作

我对这个问题的回答有点晚了,但LevelDB的分支提供了良好的实时备份功能,如HyperLevelDB和RocksDB。这两个模块均作为npm模块提供,即level hyper和level rocksdb。有关更多讨论,请参阅和