tencent cloud

云数据库 MongoDB

动态与公告
产品动态
公告
新手指引
产品简介
产品概述
产品优势
应用场景
集群架构
产品规格
产品功能
地域和可用区
名词解释
购买指南
计费概述
产品定价
计费公式
欠费说明
备份空间计费
变配计费说明
快速入门
快速创建实例
连接 MongoDB 实例
读写数据库
操作指南
访问管理
管理实例
节点管理
版本升级
网络配置
系统监控
备份与回档
数据库审计
数据安全
SSL 认证
日志管理
数据库管理
多可用区部署
只读灾备
参数配置
回收站
任务管理
诊断优化
数据迁移指引
实践教程
索引优化解决读写性能瓶颈
分片集群 Mongos 负载不均解析及应对方案
分片集群使用注意事项
MongoDB 协议实例读写示例
基于 CVM 连接 MongoDB 进行数据导入导出的方法
3.6版本实例反复创建和删除同名数据库时报错怎么办
无法连接 MongoDB 解决方法
删减分片任务:进度确认与异常排查指南
性能调优
运维开发指南
开发规范
3.2版本分片集群命令支持情况
3.6版本命令支持情况
开发运维
故障处理
慢查询增多
连接数超限
API 文档
History
Introduction
API Category
Making API Requests
Instance APIs
Backup APIs
Account APIs
Other APIs
Task APIs
Introduction
Data Types
Error Codes
SDK 参考
Shell连接示例
PHP 连接示例
Node.js连接示例
Java 连接示例
Python连接示例
Python 读写示例
Go 连接示例
PHP 重连示例
产品性能
测试环境
测试方法
测试结果
常见问题
费用相关问题
功能特性问题
分片集群问题
实例相关问题
回档备份问题
连接相关问题
数据迁移问题
其他常见问题
相关协议
服务等级协议
Terms of Service
词汇表
联系我们

数据迁移问题

PDF
聚焦模式
字号
最后更新时间: 2025-04-14 14:22:23

从 MongoDB 数据库中导出数据,如何设置参数?

mongodump 的参数中设置 --readPreference=secondaryPreferred。

MongoDB 支持哪些数据迁移?

目前支持两类迁移:云数据库 CVM 自建实例迁移、外网实例迁移,详情请参见 迁移总览

使用 mongodump(整库)或者 mongoexport(单个集合),如何把 MongoDB 的数据导出到本地?

在 CVM 中可用 MongoDB 提供的 shell 客户端 连接云数据库 MongoDB 进行数据导出,请注意使用最新版本的 MongoDB 客户端套件。 MongoDB 官方提供了两套数据导出工具,一般来说,进行整库导出时使用 mongodump,操作的数据是 BSON 格式,进行大量 dump 效率较高;进行单个集合导出时使用 mongoexport,操作的数据是 JSON 格式,可读性较高。 1. 使用 mongodump 进行整库导出备份 导出命令如下:
mongodump --host 10.66.187.127:27017 -u mongouser -p thepasswordA1 --authenticationDatabase=admin --db=testdb -o /data/dump_testdb

2. 使用 mongoexport 进行单个集合导出备份 导出命令如下:
mongoexport --host 10.66.187.127:27017 -u mongouser -p thepasswordA1 --authenticationDatabase=admin --db=testdb --collection=testcollection -o /data/export_testdb_testcollection.json
说明:
您也可以加上 -f 参数指定需要的字段,-q 参数指定一个查询条件来限定要导出的数据。
3. 关于 rwuser 和 mongouser 用户名在写导出命令时的参数说明连接示例 文档中有说明,腾讯云 MongoDB 默认提供了 rwuser 和 mongouser 两个用户名,分别支持 MONGODB-CR 和 SCRAM-SHA-1 两种认证方式。
对于 mongouser 以及在控制台创建的所有新用户,在使用导出命令工具时按照上文示例操作即可。
对于 rwuser,需要在每个命令里加入参数 --authenticationMechanism=MONGODB-CR 。
mongodump 示例说明:
mongodump --host 10.66.187.127:27017 -u rwuser -p thepasswordA1 --authenticationDatabase=admin --authenticationMechanism=MONGODB-CR --db=testdb -o /data/dump_testdb

使用 mongorestore(整库)或者 mongoimport(单个集合),如何把数据从本地导入到 MongoDB?

在 CVM 中可用 MongoDB 提供的 shell 客户端 连接云数据库 MongoDB 进行数据导入,请注意使用最新版本的 MongoDB 客户端套件
MongoDB 官方提供了两套数据导入工具,一般来说,进行整库导出时使用 mongorestore,操作的数据是 BSON 格式,进行大量 mongorestore 效率较高;进行单个集合导出时使用 mongoimport,操作的数据是 JSON 格式,可读性较高。
1. 使用 mongorestore 进行整库导入备份 导入命令如下:
mongorestore --host 10.66.187.127:27017 -u mongouser -p thepasswordA1 --authenticationDatabase=admin --dir=/data/dump_testdb

2.使用 mongoimport 进行单个集合导入备份 导入命令如下:
mongoimport --host 10.66.187.127:27017 -u mongouser -p thepasswordA1 --authenticationDatabase=admin --db=testdb --collection=testcollection2 --file=/data/export_testdb_testcollection.json
3.关于 rwuser 和 mongouser 用户名在写导入命令时的参数说明连接示例 文档有说明,腾讯云 MongoDB 默认提供了 rwuser 和 mongouser 两个用户名,分别支持 MONGODB-CR 和 SCRAM-SHA-1 两种认证方式。
对于 mongouser 以及在控制台创建的所有新用户,在使用导入命令工具时按照上文示例操作即可。
对于 rwuser,需要在每个命令里加入参数 --authenticationMechanism=MONGODB-CR。
用 mongorestore 示例:
mongorestore --host 10.66.187.127:27017 -u rwuser -p thepasswordA1 --authenticationDatabase=admin --authenticationMechanism=MONGODB-CR --db=testdb -o /data/dump_testdb

为什么数据导入到 MongoDB 实例后,占用空间比自建的 MongoDB 小?

可能存在以下几个原因:
原始数据库长时间运行积累了大量的增删改操作。
写操作时 MongoDB 出于性能考虑在空间分配时分配了大于实际数据的空间。
删除数据后原空间没有被再次利用。 综合下来导致整个数据库空间的空洞率较高,而导入数据时相当于做了一次类似磁盘整理的操作,使导入后的数据保存得相对紧凑,所以看起来数据变小了。

MongoDB 的 mongodump 无法导出数据,如何处理?

mongodump 使用参见 导入导出,mongodump 工具建议使用3.2.10以上版本。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈