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