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
从文件系统创建冷备份
注意,创建冷备份时需要停止数据库服务器运行,可以尝试停止一个secondary节点或者hidden节点
-
可以使用系统快照的方式直接创建数据库目录磁盘快照
-
可以使用rsync命令将数据库目录同步到远程备份服务器
-
可以使用压缩工具将数据库目录压缩归档
从冷备份恢复单节点数据库
-
释放冷备份归档文件,取得数据库目录
-
单机模式启动数据库
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节点
## 启动新的secondary节点 mongod --dbpath /data/db --replSet <replName> ## 在primary节点执行操作 mongo rs.add("<host:port>")
-
检查副本集状态
## 在primary节点执行操作 mongo rs.status()