MongoDB 4.2 数据迁移与备份指南
来源于MongoDB Manual 4.2
https://docs.mongodb.com/v4.2/tutorial/restore-replica-set-from-backup/
原文:Restore a Replica Set from MongoDB Backups
使用Mongodump Archive模式不停机创建冷备文件
关于mongodump
创建Archive
mongodump -h <host> -u <user> -p <password> --archive=<file_name>
使用--gzip
选项可以启用压缩,但是会降低导出速度
从Archive 中恢复
mongorestore -h <host> -u <user> -p <password> --archive=<file_name>
从文件系统创建冷备份
注意,创建冷备份时需要停止数据库服务器运行,可以尝试停止一个secondary节点或者hidden节点
从冷备份恢复单节点数据库
-
释放冷备份归档文件,取得数据库目录
-
单机模式启动数据库
mongod --dbpath /data/db
-
删除local数据库
mongo
use local
db.dropDatabase()
然后停止该mongd实例
删除local数据库是为了重建副本集,否则数据库启动时会处于Other状态,无法进行数据操作
创建新的副本集
-
创建新的副本集
mongod --dbpath /data/db --replSet <replName>
mongo
rs.initiate({
_id: <replNmae>,
members: [{_id:0, host: <host:port>}]
})
-
将数据同步到secondary节点
有两种同步方式:
- 通过手动拷贝的方式将数据拷贝到secondary节点,也可以使用rsync工具
- 通过数据库自己的
initial sync
方式自动的分发数据到secondary节点
如果数据库较大的话,还是使用拷贝数据库目录的方式进行同步比较快
-
加入新的secondary节点
mongod --dbpath /data/db --replSet <replName>
mongo
rs.add("<host:port>")
-
检查副本集状态
mongo
rs.status()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)