一、单机备份/恢复

MongoDB的逻辑备份/恢复

1、备份步骤

1)登录单机实例,将数据库锁定

db.fsyncLock()

2)在操作系统通过mongodump备份数据

3)解除锁定

db.fsyncUnlock()

2、恢复步骤

使用mongorestore将数据恢复

MongoDB的物理备份/恢复

1、备份步骤

1)登录单机实例,将数据库锁定或者直接停机

db.fsyncLock()

2)将目录下的所有文件直接复制出来

3)解除锁定或者启动MongoDB

2、恢复步骤

1)将 MongoDB停机,避免数据写入

2)将备份文件拷贝到指定数据目录下

3)启动MongoDB实例

二、副本集的备份/恢复

MongoDB的逻辑备份/恢复

1、备份步骤

1)选择一个副本节点,将数据库锁定

db.fsyncLock()

2)在操作系统通过mongodump备份数据

3)解除锁定

db.fsyncUnlock()

2、恢复步骤

在主节点使用mongorestore将数据恢复

MongoDB的物理备份/恢复

若不想影响MongoDB服务,则可以选择副本节点进行操作

1、备份步骤

1)锁定数据库

2)将目录下的所有文件直接复制出来

3)解除锁定

2、恢复步骤

1)关闭MongoDB服务

2)删除所有节点数据文件下的文件

3)将复制出来的数据库文件放回主节点数据库目录下

4)启动MongoDB服务

三、分片集的备份/恢复

MongoDB的逻辑备份/恢复

1、备份步骤

1)停止平衡器的运作

2)在每个分片中选择一个副本节点执行锁定

3)使用 mongodump备份数据

4)解除锁定

2、恢复步骤

1)将主分片备份出来的数据从mongos恢复回去

2)有分片的数据库需要重新设定分片

MongoDB的物理备份/恢复

1、备份步骤

1)停止平衡器运作

2)在config副本集和每个分片中分别选择一个副本节点执行锁定

3)将 config副本和数据副本节点的数据文件目录下的文件复制出来

4)解除锁定

5)开启平衡器的运作

2、恢复步骤

1)关闭MongoDB服务

2)将所有节点数据文件下的文件删除

3)将复制出来的数据库文件放回config和每个shard的主节点对应的数据文件目录下

4)启动MongoDB服务