我读到了不用停机时间进行备份的不同MongoDB设置.哪种策略最好或甚至可以比较?
启用日记功能并简单地复制/data/db目录 - 我不清楚这是否足够 - 在MongoDB主页上它指出你必须"快照它"并且它在SAN和LVM上工作为例.
问题:
快照在此上下文中的含义是复制命令计为快照吗?是否可以使用NTFS在Windows服务器上复制日记MongoDB(2.0+)数据目录?您如何确保在您自己的文件系统和设置上安全?
建立具有2个服务器和仲裁器的副本集.然后使用rs.status()和fsyncLock/解锁以确保在备份时只在辅助服务器上读取数据.
> db.fsyncLock
function () {
return db.adminCommand({fsync:1, lock:true});
}
> db.fsyncUnlock
function () {
return db.getSiblingDB("admin").$cmd.sys.unlock.findOne();
}
Run Code Online (Sandbox Code Playgroud)
问题:
如果您在副本集中使用锁,那么似乎可以为整个副本集锁定写入和读取,并且此错误尚未修复?
如果在备份进行过程中将辅助设备投票为主设备怎么办?备份过程是否会停止,或者副本集是否会停止响应写入请求,直到它被解锁?
注意事项:
现在我想要简单的解决方案,只需使用日志文件复制data/ db目录并等待副本集.MongoDB在64位Windows服务器(RackSpace Cloud)上运行.