MST
星途 面试题库

面试题:MongoDB中如何实现数据的备份与恢复

在MongoDB数据库管理基础中,阐述使用哪些工具或命令来进行数据的备份与恢复操作,并说明其具体步骤和关键参数。
49.7万 热度难度
数据库MongoDB

知识考点

AI 面试

面试题答案

一键面试

数据备份

mongodump命令

  1. 具体步骤
    • 打开命令行终端,确保MongoDB的bin目录在系统路径中。如果不在,需进入MongoDB安装目录下的bin目录。
    • 执行命令:mongodump --uri="mongodb://username:password@host:port/databaseName"。其中usernamepassword是数据库的认证用户名和密码(如果需要认证),host是MongoDB服务器地址,port是端口号,databaseName是要备份的数据库名。若不指定数据库名,则会备份整个MongoDB实例。例如,备份本地默认实例的test数据库:mongodump --uri="mongodb://localhost:27017/test"
    • 备份数据会存储在当前命令执行目录下的一个与数据库同名的文件夹中。如果要指定备份数据的存储路径,可使用-o--out参数,如mongodump --uri="mongodb://localhost:27017/test" -o /backup/path
  2. 关键参数
    • --uri:用于指定连接MongoDB的URI,包含认证信息、服务器地址、端口和数据库名等。
    • -o/--out:指定备份数据的输出目录。
    • --collection:如果只想备份特定集合(表),可使用此参数指定集合名,如mongodump --uri="mongodb://localhost:27017/test" --collection users
    • --query:可使用此参数来过滤备份的数据,只备份符合查询条件的数据。例如,mongodump --uri="mongodb://localhost:27017/test" --collection users --query '{"age": {"$gt": 30}}'

数据恢复

mongorestore命令

  1. 具体步骤
    • 同样确保MongoDB的bin目录在系统路径中或进入该目录。
    • 执行命令:mongorestore --uri="mongodb://username:password@host:port/databaseName" /path/to/backup。其中/path/to/backup是之前使用mongodump备份的数据目录。例如,恢复之前备份的test数据库:mongorestore --uri="mongodb://localhost:27017/test" /backup/path/test
    • 如果要恢复到不同的数据库,可在--uri中指定不同的数据库名。例如,将备份的test数据库恢复到newTest数据库:mongorestore --uri="mongodb://localhost:27017/newTest" /backup/path/test
  2. 关键参数
    • --uri:指定连接MongoDB的URI,用于恢复数据到指定的数据库实例和数据库。
    • --drop:此参数会在恢复数据前删除目标数据库中的所有集合,然后再插入备份数据。例如,mongorestore --uri="mongodb://localhost:27017/test" --drop /backup/path/test
    • --collection:如果只想恢复特定集合,可使用此参数指定集合名,如mongorestore --uri="mongodb://localhost:27017/test" --collection users /backup/path/test
    • --nsInclude/--nsExclude--nsInclude用于指定只恢复匹配命名空间(数据库.集合)的集合,--nsExclude则相反。例如,mongorestore --uri="mongodb://localhost:27017/test" --nsInclude "test.users" /backup/path/test只恢复test数据库中的users集合。