- 延迟节点备份
启动一份延迟节点 他的数据晚于主节点X小时 - 全量备份+oplog增量
比较常用的有2种方式- 复制数据文件
在大多数情况比较快,因为备份和还原无需转换数据而且会保留所有索引,潜在的问题是备份需要先锁定数据库,如果在从节点上操作,也可以不阻塞线上操作db.runCommand({"fsync":1,"lock":1}) // db.fsyncLock() // 进行上锁操作 db.$cmd.sys.unlock.findOne() // db.fsyncUnlock() // 解锁操作 db.currentOp() // 确保已经解锁了
- 使用mongodump,mongorestore
mongodump能把数据库的内容导出成BSON文件,mongorestore能读取并还原这些文件,恢复时会重建索引,所以会花费不少时间。使用这两个命令时无需锁定或关闭服务器。mongodump出来的数据不能表示某个时间点,只是某个时间段,通过与oplog结合可以恢复出数据在指定时间点的内容(幂等性).mongodump --host 127.0.0.1:27017 -d test -o backup --oplog // 将数据库test备份到backup mongorestore --host 127.0.0.1:27017 --oplogReplay -d foo --drop backup/test // -d指定了要恢复的数据库,可以将备份恢复到与原来不同名的数据库中。
- 复制数据文件
mongo备份
最新推荐文章于 2023-06-29 16:33:33 发布