我们正在寻找在CMS应用程序中使用CouchdDB。关于备份我们的生产数据库,有哪些常见模式、最佳实践和工作流建议?
我特别关注在开发和测试中克隆数据库的过程。
只从运行中的实例下面复制磁盘上的文件是否足够?您可以在两个运行中的实例之间克隆数据库数据吗?
非常感谢您提供的技术建议和描述。
我们正在寻找在CMS应用程序中使用CouchdDB。关于备份我们的生产数据库,有哪些常见模式、最佳实践和工作流建议?
我特别关注在开发和测试中克隆数据库的过程。
只从运行中的实例下面复制磁盘上的文件是否足够?您可以在两个运行中的实例之间克隆数据库数据吗?
非常感谢您提供的技术建议和描述。
需要注意的另一件事情是,您可以在正在运行的数据库下复制文件。考虑到您可能具有一个可能很大的数据库,您可以将其从测试/生产机器直接复制到另一台机器。
根据机器的写入负荷,建议在复制后触发复制以收集在复制文件时进行的任何写入。但是,复制几条记录仍然比复制整个数据库快。
https://docs.couchdb.org/en/latest/maintenance/backups.html
你只需向CouchDB实例发送POST请求,告诉它要复制到哪里,就可以实现操作(商标)。我想支持Paul的建议:如果你能承受I/O负载的打击,只需从活动服务器下方的数据库文件中复制cp
即可。如果您已经运行了一个副本,那么您也可以安全地从中复制,而不会影响主服务器的性能。
.
开头的子目录。scp
tar.gz 文件到目标主机,并在那里的临时位置解压缩它们。chown
文件的用户和组与目标数据库目录中已拥有的文件相同。这很重要,因为弄乱文件权限是我迄今为止唯一搞砸这个过程的方法。cp
文件到目标目录中。在我的主机上,这又是 /var/lib/couchdb。/usr/local/var/lib/couchdb
。 - evalarezo我使用PowerShell和PSCouchDB模块,通过命令Export-CouchDBDatabase来完成。
这将整个数据库导出为JSON文件,您可以通过导入命令(请参见链接)重新导入它。
例如:
Export-CouchDBDatabase -Database test -Authorization "admin:password"
这将在当前目录中导出一个JSON文件:test_05-28-2021_17_01_00.json