MongoDB数据库迁移上云 、mongoexport和mongoimport,mongodump和mongorestore工具迁移数据,华为云drs

MongoDB数据库迁移

通过mongoimport工具迁移数据_文档数据库服务 DDS_用户指南_数据迁移_华为云

通过mongoexport和mongoimport工具迁移数据

操作场景

文档数据库服务支持开启公网访问功能,通过EIP进行访问。您也可通过 弹性云服务器 的内网访问文档数据库。

要将已有的 MongoDB数据库迁移到文档数据库,需要先使用mongoexport工具对它做转储。再通过 弹性云服务器 或可访问文档数据库的设备,使用mongoimport工具将转储文件导入到 文档数据库服务。

注意事项

  • 建议您尽量选择在业务低峰期迁移数据,避免在迁移过程中对业务造成影响。
  • 不支持迁移系统库admin和local。
  • 确保源库中系统库admin和local没有创建业务集合,如果已经有业务集合,必须在迁移前将这些业务集合从admin和local库中迁移出来。
  • 导入数据之前,确保源端有必要的索引,即在迁移前删除不需要的索引,创建好必要的索引。
  • 如果选择迁移分片集群,必须在目标库创建好要分片的集合,并配置数据分片。同时,迁移前必须要创建好索引。

前提条件

  1. 准备 弹性云服务器 或可访问文档数据库的设备。
    • 通过内网连接文档数据库实例,需要创建并登录弹性云服务器,请参见 购买弹性云服务器和 登录弹性云服务器
    • 通过公网地址连接 文档数据库实例,需具备以下条件。
      1. 为实例中的节点绑定公网地址,如何绑定公网地址,请参见《文档数据库服务快速入门》通过公网连接实例下“绑定 弹性公网IP”的内容。
      2. 保证本地设备可以访问文档数据库绑定的公网地址。
  2. 在已准备的 弹性云服务器 或可访问文档数据库的设备上,安装数据迁移工具。

    安装数据迁移工具,请参见 如何安装MongoDB客户端

    说明: 
  3. MongoDB客户端会自带mongoexport和mongoimport工具。

 

导出数据

  1. 登录到已准备的 弹性云服务器 或可访问文档数据库的设备。
  2. 使用mongoexport,将源数据库转储至JSON文件。

    此处以SSL连接方式为例进行说明,如果选择普通连接方式,去掉命令中对应的 “--ssl --sslAllowInvalidCertificates”即可。

    ./ mongoexport  --host  < DB_ADDRESS>  --port  <DB_PORT>  --ssl  --sslAllowInvalidCertificates  --type json  --authenticationDatabase  <AUTH_DB>  -u  <DB_USER>  --db < DB_NAME>  --collection < DB_COLLECTION>  --out < DB_PATH>

    • DB_ADDRESS为数据库地址。
    • DB_PORT为数据库端口。
    • AUTH_DB为存储DB_USER信息的数据库,一般为admin。
    • DB_USER为数据库用户。
    • DB_NAME为要迁移的数据库名称。
    • DB_COLLECTION为要迁移的数据库集合。
    • DB_PATH为存储数据JSON文件所在的路径。

    出现如下提示时,输入数据库管理员对应的密码:

    Enter password:

    示例如下,命令执行完会生成 “exportfile.json”文件:

    ./mongoexport --host 192.168.1.21 --port 8635 --ssl --sslAllowInvalidCertificates --type json --authenticationDatabase admin -u rwuser --db test02 --collection Test --out /tmp/mongodb/export/exportfile.json

  3. 查看迁移结果。

    输出内容显示如下,说明迁移成功。其中,“x”表示转储数据的记录条数。

    exported x records

  4. 压缩导出的JSON文件。

    gzip exportfile.json

    压缩是为了方便网络传输,压缩后生成 “exportfile.json.gz”文件。

导入数据

  1. 登录到已准备的 弹性云服务器 或可访问文档数据库的设备。
  2. 将要导入的数据上传到 弹性云服务器 或可访问文档数据库的设备。

    根据不同的平台选择相应的上传方法。Linux下可参考命令:

    scp  < IDENTITY_FILE>  <REMOTE_USER><REMOTE_ADDRESS><REMOTE_DIR>

    • IDENTITY_FILE为存储“exportfile.json.gz”的文件目录,该文件目录权限为600。
    • REMOTE_USER为 弹性云服务器 的操作系统用户。
    • REMOTE_ADDRESS为 弹性云服务器 的主机地址。
    • REMOTE_DIR为将“exportfile.json.gz”上传到 弹性云服务器 的文件目录。

    Windows平台下,请使用传输工具上传“exportfile.json.gz”至 弹性云服务器 。

  3. 解压数据包。

    gzip  -d  exportfile.json.gz

  4. 将转储文件导入到文档数据库。

    此处以SSL连接方式为例进行说明,如果选择普通连接方式,去掉命令中对应的 “--ssl --sslAllowInvalidCertificates”即可。

    ./ mongoimport --host < DB_ADDRESS>  --port < DB_PORT>  --ssl --sslAllowInvalidCertificates --type json --authenticationDatabase < AUTH_DB>  -u < DB_USER>  --db < DB_NAME>  --collection < DB_COLLECTION>  --file < DB_PATH>

    • DB_ADDRESS为数据库实例的IP地址。
    • DB_PORT为数据库端口。
    • AUTH_DB为DB_USER进行权限验证的数据库,一般为admin。
    • DB_USER为数据库管理员帐号名。
    • DB_NAME为要导入的数据库。
    • DB_COLLECTION为要导入的数据库中的集合。
    • DB_PATH为转储数据JSON文件所在的路径。

    出现如下提示时,输入数据库管理员对应的密码:

    Enter password:

    示例如下:

    ./mongoimport --host 192.168.1.21 --port 8635 --ssl --sslAllowInvalidCertificates --type json --authen

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值