- 最新动态
- 功能总览
-
服务公告
- 漏洞公告
-
产品公告
- 【通知】2024年11月5日起文档数据库服务DDS5.0版本集群开放公测
- 【通知】2024年10月11日起文档数据库服务DDS副本集5.0版本开始转商计费
- 【通知】华为云文档数据库服务DDS3.4版本计划于2024年10月11日停售
- 【通知】2024年07月24日起文档数据库服务DDS5.0版本开放公测
- 【通知】2023年02月15日起文档数据库服务上线x86架构增强Ⅱ型副本集和集群shard的1:8系列规格
- 【通知】文档数据库服务DDS4.4邀请公测
- 【停售公告】华为云文档数据库服务DDS单节点规格计划于2023年07月15日停售内部通知
- 【通知】2023年10月8日起文档数据库服务DDS4.4版本开始转商计费
- 版本说明
- 产品发布说明
- 产品介绍
- 计费说明
- 快速入门
- 开发指南
-
用户指南
- 购买实例
- 连接实例
- 数据迁移
- 性能调优
- 权限管理
- 实例生命周期管理
- 变更实例
- 数据备份
- 数据恢复
- 参数模板管理
- 连接管理
- 数据库使用
- 数据安全性
- 监控与告警
- 审计
- 日志管理
- 任务中心
- 智能DBA助手
- SQL自动查杀
- 跨可用区容灾
- 标签管理
- 配额管理
- DDS使用规范建议
- 最佳实践
- 安全白皮书
- 性能白皮书
-
API参考
- 使用前必读
- API概览
- 如何调用API
- 快速入门
-
API v3(推荐)
- 查询API版本
- 查询数据库版本信息
- 查询数据库规格
- 查询数据库磁盘类型
-
实例管理
- 创建实例
- 重启实例
- 删除实例
- 查询实例列表和详情
- 扩容实例存储容量
- 扩容集群实例的节点数量
- 变更实例规格
- 切换副本集实例的主备节点
- 切换SSL开关
- 修改实例名称
- 修改实例备注
- 修改数据库端口
- 变更实例安全组
- 绑定弹性公网IP
- 解绑弹性公网IP
- 修改实例内网地址
- 创建集群的Shard/Config IP
- 副本集跨网段访问配置
- 查询实例可迁移到的可用区
- 实例可用区迁移
- 设置实例回收站策略
- 扩容副本集实例的节点数量
- 实例新增只读节点
- 数据库补丁升级
- 开启/关闭秒级监控
- 查询秒级监控配置
- 设置可维护时间段
- 查询实例回收站策略
- 查询回收站实例列表
- 检查弱密码
- 查询数据库补丁升级预估时长
- 查询实例磁盘信息
- 获取SSL证书下载地址
- 查询数据库复制集名称
- 修改数据库复制集名称
- 删除实例的节点
- 删除实例的只读节点
- 查询副本集跨网段访问配置
- 查询LTS日志配置信息
- 关联LTS日志流
- 解除关联LTS日志流
- 设置磁盘自动扩容策略
- 查询磁盘自动扩容策略
- 批量数据库补丁升级
- 连接管理
- 备份与恢复
- 参数配置
- 获取日志信息
- 标签管理
- 管理数据库和用户
- 配额管理
- 数据库运维
- 任务管理
- API v3(即将下线)
- 应用示例
- 权限策略和授权项
- 附录
- SDK参考
- 场景代码示例
- 常见问题
-
故障排除
- 概述
- DDS实例节点故障处理机制
- 连接失败,提示:network error while attempting to run command ‘isMaster’
- 连接失败,提示:No route to host以及connection attempt failed
- 连接失败,提示:Authentication failed
- 连接失败,提示:couldn't connect to server
- 连接失败,提示:cannot list multiple servers in URL without ‘replicaSet’ option
- Java驱动连接实例失败,提示:Timeout while receiving message
- 连接失败,提示:exception: login failed 以及 U_STRINGPREP_PROHIBITED_ERROR
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
通过mongodump和mongorestore工具迁移数据
mongodump和mongorestore是MongoDB客户端自带的备份恢复工具。您可以在本地设备或ECS中安装MongoDB客户端,通过mongodump和mongorestore工具将自建MongoDB数据库或其他云数据库MongoDB迁移至华为云DDS实例。
使用须知
- mongodump和mongorestore工具仅支持全量数据迁移。为保障数据一致性,迁移操作开始前请停止源数据库的相关业务,并停止数据写入。
- 建议您尽量选择在业务低峰期迁移数据,避免在迁移过程中对业务造成影响。
- 不支持迁移系统库admin和local。
- mongodump导出文件为BSON二进制文件,mongorestore使用mongodump导出的二进制备份文件将数据还原到实例中。
- 确保源库中系统库admin和local没有创建业务集合,如果已经有业务集合,必须在迁移前将这些业务集合从admin和local库中迁移出来。
- 导入数据之前,确保源端有必要的索引,即在迁移前删除不需要的索引,创建好必要的索引。
- 如果选择迁移分片集群,必须在目标库创建好要分片的集合,并配置数据分片。同时,迁移前必须要创建好索引。
- 如果使用mongodump工具备份失败(示例:备份进度至97%时报错),建议您尝试增大备份失败虚拟机的磁盘空间,预留部分冗余空间,再重新执行备份。
- 客户侧使用的是rwuser账号,仅支持操作客户业务库表。所以,在使用时建议指定库和表,仅对业务数据执行导入导出。不指定库表,全量进行导入导出,可能会遇到权限不足的问题。
- 如果需要恢复备份到本地自建数据库,请参见恢复备份到本地自建数据库。
前提条件
- 准备弹性云服务器或可访问DDS的设备。
- 在已准备的弹性云服务器或可访问DDS的设备上,安装数据迁移工具。
安装数据迁移工具,请参见如何安装MongoDB客户端。
说明:
- MongoDB客户端会自带mongodump和mongorestore工具。
- MongoDB客户端版本须和实例相匹配,若版本不匹配则会有兼容性问题出现。
导出源库数据
- 登录到已准备的弹性云服务器或可访问源数据库的设备。
- 使用mongodump工具,备份源数据库中的数据。
此处以SSL连接方式为例进行说明,如果选择普通连接方式,去掉命令中对应的“--ssl --sslCAFile <FILE_PATH> --sslAllowInvalidCertificates”即可。
./mongodump --host <DB_HOST> --port <DB_PORT> --authenticationDatabase <AUTH_DB> -u <DB_USER> --ssl --sslCAFile <FILE_PATH> --sslAllowInvalidCertificates --db <DB_NAME> --collection <DB_COLLECTION> --gzip --archive=<备份文件的全目录的文件名称>
表1 参数说明 参数
说明
<DB_HOST>
数据库地址。
<DB_PORT>
数据库端口号。
<DB_USER>
数据库用户名。
<AUTH_DB>
存储<DB_USER>信息的数据库,一般为admin。
<FILE_PATH>
存放根证书的路径。
<DB_NAME>
需要迁移的数据库名称。
<DB_COLLECTION>
需要迁移的数据库中的集合。
出现如下提示时,输入数据库管理员对应的密码:
Enter password:
示例如下,命令执行后,archive指定的文件即为最终的备份文件,如下命令以backup.tar.gz为例。
./mongodump --host 192.168.xx.xx --port 8635 --authenticationDatabase admin -u rwuser --ssl --sslCAFile /tmp/ca.crt --sslAllowInvalidCertificates --db test --collection usertable --gzip --archive=backup.tar.gz
2019-03-04T18:42:10.687+0800 writing admin.system.users to 2019-03-04T18:42:10.688+0800 done dumping admin.system.users (1 document) 2019-03-04T18:42:10.688+0800 writing admin.system.roles to 2019-03-04T18:42:10.690+0800 done dumping admin.system.roles (0 documents) 2019-03-04T18:42:10.690+0800 writing admin.system.version to 2019-03-04T18:42:10.691+0800 done dumping admin.system.version (2 documents) 2019-03-04T18:42:10.691+0800 writing test.test_collection to 2019-03-04T18:42:10.691+0800 writing admin.system.profile to 2019-03-04T18:42:10.692+0800 done dumping admin.system.profile (4 documents) 2019-03-04T18:42:10.695+0800 done dumping test.test_collection (198 documents)
将数据导入至目标DDS
- 登录到已准备的弹性云服务器或可访问DDS的设备。
- 将要导入的数据上传到弹性云服务器或可访问DDS的设备。
根据不同的平台选择相应的上传方法。
- Windows平台下,请使用传输工具上传备份目录至弹性云服务器。
- 将备份的数据导入到DDS。
此处以SSL连接方式为例进行说明,如果选择普通连接方式,去掉命令中对应的“--ssl --sslCAFile <FILE_PATH> --sslAllowInvalidCertificates”即可。
./mongorestore --host <DB_HOST> --port <DB_PORT> --authenticationDatabase <AUTH_DB> -u<DB_USER> --ssl --sslCAFile <FILE_PATH> --sslAllowInvalidCertificates --db <DB_NAME> --collection <DB_COLLECTION> --gzip --archive=<备份文件的全目录的文件名称>
表3 参数说明 参数
说明
<DB_HOST>
DDS数据库地址。
<DB_PORT>
DDS数据库端口号。
<AUTH_DB>
<DB_USER>进行权限验证的数据库,一般为admin。
<DB_USER>
数据库管理员账号名,默认为rwuser。
<FILE_PATH>
存放根证书的路径。
<DB_NAME>
需要迁移的数据库名称。
<DB_COLLECTION>
需要迁移的数据库中的集合。
出现如下提示时,输入数据库管理员对应的密码:
Enter password:
示例如下:
./mongorestore --host 192.168.xx.xx --port 8635 --authenticationDatabase admin -u rwuser --ssl --sslCAFile /tmp/ca.crt --sslAllowInvalidCertificates --db test --collection usertable --gzip --archive=backup.tar.gz
2019-03-05T14:19:43.240+0800 preparing collections to restore from 2019-03-05T14:19:43.243+0800 reading metadata for test.test_collection from dump/test/test_collection.metadata.json 2019-03-05T14:19:43.263+0800 restoring test.test_collection from dump/test/test_collection.bson 2019-03-05T14:19:43.271+0800 restoring indexes for collection test.test_collection from metadata 2019-03-05T14:19:43.273+0800 finished restoring test.test_collection (198 documents) 2019-03-05T14:19:43.273+0800 restoring users from dump/admin/system.users.bson 2019-03-05T14:19:43.305+0800 roles file 'dump/admin/system.roles.bson' is empty; skipping roles restoration 2019-03-05T14:19:43.305+0800 restoring roles from dump/admin/system.roles.bson 2019-03-05T14:19:43.333+0800 done