作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
mongodb 在执行 copyDb() 命令时被中断。当我想重新启动时,我得到:
db.runCommand( { copydb: 1, fromhost: "<ip>", fromdb: "<collection>", todb: "<db>", slaveOk: true } );
{
"ok" : 0,
"errmsg" : "failed to create collection \"<db>.<collection>\": collection already exists"
}
有没有办法在中断后恢复数据库的副本,或者我是否需要删除数据库并从头开始? (这不是一个好的选择,因为副本需要大约 10 天,并且已经运行了 2 天)。
最佳答案
简短的回答是否定的,没有内置的方法来恢复 copydb
操作,它本质上要求/假设在操作期间两端都具有 100% 的可用性。要重新使用 copydb
命令,您必须删除目标数据库并从头开始重新启动副本。
除了自己编写代码(这始终是一种选择)之外,我所知道的唯一可以提供接近简历的工具是 hydra ,在这种情况下,该功能仅用作从几乎完整的副本中挑选少量散乱者的方法。
另一个可能的选择是使用 MMS Backup (完全披露:我目前在 MongoDB 工作,它提供 MMS 备份作为付费服务),它将为备份数据库创建数据的定期快照,包括索引。然后,这些快照可用于通过简单的下载/传输而不是依赖复制命令来恢复到其他节点。
关于mongodb - 中断后如何在mongodb中重新启动/恢复copydb()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28412944/
我是一名优秀的程序员,十分优秀!