1. 场景说明
在 MongoDB 运维中,数据备份与恢复是核心操作。本文使用 mongodump 和 mongorestore 工具,演示如何通过命令行导出和导入数据,解决副本集连接、路径指定等关键问题。
2. 数据导出(mongodump)
2.1 导出命令详解
            
            
              bash
              
              
            
          
          mongodump --uri="mongodb://root:Dsy%40123@dds-uf66dd9c38f2a41756-pub.mongodb.rds.aliyuncs.com:3717,dds-uf66dg9c38f2a42679-pub.mongodb.rds.aliyuncs.com:3717/admin?maxPoolSize=20&minPoolSize=1&replicaSet=mgset-70730161" --out=/Volumes/work/mongo- 
参数解析: - 
--uri:连接字符串
- 
--out:导出数据存储路径,默认生成dump文件夹,此处指定为/Volumes/work/mongo。
 
- 
2.2 验证导出结果
            
            
              bash
              
              
            
          
          # 查看备份文件结构
ls /Volumes/work/mongo- 正常输出应包含子目录(以数据库名命名)及 .bson和.metadata.json文件。
3. 数据导入(mongorestore)
3.1 导入命令详解
mongorestore --uri="mongodb://admin:Xdsdsu%40123@143.223.43.130:217/admin" /Volumes/work/mongo- 
参数解析: - 
--uri:目标数据库连接字符串
- 
末尾路径 :必须指定备份文件根目录(即 mongodump --out的路径),工具会自动识别子目录中的数据库。
 
- 
4. 常见问题 FAQ
Q1:导入时提示 Failed: error connecting to DB server
- 
检查目标 MongoDB 服务是否运行,防火墙是否放行端口(如 27017)。
- 
确认用户名、密码及转义符是否正确。 
Q2:如何仅导入指定数据库或集合?
- 
导入单个数据库:在路径后追加数据库目录名: bashmongorestore --uri="..." /Volumes/work/mongo/<database_name>
- 
导入单个集合 :添加 --nsInclude参数:bashmongorestore --uri="..." --nsInclude=<database_name>.<collection_name> /Volumes/work/mongo
Q3:备份文件过大,如何压缩?
- 
导出时添加 --gzip:bashmongodump --uri="..." --gzip --out=/path/to/dump
- 
导入时自动解压: bashmongorestore --uri="..." --gzip /path/to/dump