MongoDB中如何备份和还原数据?

MongoDB的数据备份主要有以下方式:

  1. 数据库备份:使用mongodump备份整个数据库数据,包括集合及其索引。

语法:

mongodump -d db_name -o db_backup
  1. 集合备份:使用mongodump备份指定的集合。
    语法:
mongodump -d db_name -c collection_name -o collection_backup
  1. 增量备份:首次采用mongodump备份全量数据,后续只备份时间戳之后的变更数据。
    首次全备:
mongodump -d db_name -o db_initial_backup

增量备份:

mongodump -d db_name --dumpDbUsersAndRoles  --authenticationDatabase  admin -c collection_name --query '{ "_ts" : { "$gt" : timestamp } }' -o  incremental_backup
  1. 二进制文件拷贝:直接拷贝MongoDB数据文件进行备份,速度快但不可跨平台还原。
    还原数据主要使用mongorestore命令,将备份数据还原到MongoDB中。
    语法:
mongorestore -d db_name db_backup 

示例:

# 备份test数据库
mongodump -d test -o ./test_backup

# 删除test数据库
mongo test --eval "db.dropDatabase()"

# 还原test数据库  
mongorestore -d test ./test_backup