美文网首页
十、MongoDB数据迁移工具介绍

十、MongoDB数据迁移工具介绍

作者: 转身丶即天涯 | 来源:发表于2022-01-09 12:40 被阅读0次

前言

在工作中偶尔会遇到迁移数据等操作。比如如下场景:

  • 数据库备份(容灾)
  • 导出服务端数据(统计)
  • 将服务端数据放入本地(搭建开发环境)
  • 跨网段传输数据(网络不通)

不管你出于什么原因,一定要学一写数据迁移操作。

迁移工具

MongoDB提供了两个工具,分别用于数据的导出和导入:

  • mongoexport
  • mongoimport

这两个工具可以将数据库中的集合导出为CSV或者JSON格式的文件。
注意:迁移单位是”集合“,不是数据库、也不是某个文档。

这两个工具是命令行工具,并没有可视化界面。
接下来,我们需要了解这两个工具的参数,来对工具有一个宏观上的了解。

参数说明

命令行中输入如下命令,可以查看mongoexport的参数说明。

mongoexport --help

image.png

好在参数不多,我们可以逐项了解。

  • general options(常见选项):
    • --help: 帮助文档
    • --version: 查看工具版本号
    • --config=: 配置文件的路径
  • verbosity options(细节选项):
    • -v, --verbose=<level>: 详细的日志输出
    • --quiet: 隐藏所有输出。
  • connection options(连接选项):
    • -h, --host=<hostname>: 要连接的Mongo服务器地址
    • --port=<port>: Mongo服务端口号,可以和--host参数一同使用,例如,--host hostname:port
  • ssl options(SSL选项):
    • --ssl: 通过SSL协议连接Mongo,前提是Mongo需要开启SSL
    • --sslCAFile=<filename>: 包含根证书的.pem文件
    • --sslPEMKeyFile=<filename>: 包含秘钥和证书的.pem文件
    • --sslPEMKeyPassword=<filename>: 解密sslPEMKeyFile文件的密码
    • --sslCRLFile=<filename>: 没理解
    • --sslFIPSMode: 使用FIPS模式替代openssl库
    • --tlsInsecure: 绕过服务器证书验证
  • authentication options(认证选项):
    • -u, --username=<username>: MongoDB用户名
    • -p, --password=<password>: MongoDB密码
    • --authenticationDatabase=<database-name> : 需要账号密码校验后连接的数据库
    • --authenticationMechanism=<mechanism>: 没理解
    • --awsSessionToken=<aws-session-token>: 通过亚马逊IAM(身份角色)的令牌
  • kerberos options(不安全网络环境选项):
    • --gssapiServiceName=<service-name>: 当使用GSSAPI或者Kerberos协议时的服务名。
    • --gssapiHostName=<host-name>: 当使用GSSAPI或者Kerberos协议时的主机名。
  • namespace options(命名空间选项):
    • -d, --db=<database-name>: 数据库名称
    • -c, --collection=<collection-name>: 集合名称
  • uri options(连接字符串选项):
    • --uri=<mongodb-uri>: 连接mongo时使用的字符串
  • output options(输出选项):
    • -f, --fields=<field>[,<field>]*: 导出的字段名称,如果有多个字段用逗号隔开
    • --fieldFile=<filename>: 没理解。
    • --type=<type>: 导出文件的格式,支持json或者csv
    • -o, --out=<filename>:导出的文件名
    • --jsonArray: 输出为json数组格式,而非每行一个文档对象
    • --pretty: 输出时格式化json
    • --noHeaderLine: 导出为csv格式时,是否包含字段名作为csv第一行(不加此参数是带字段名的)
    • --jsonFormat=<type>: 没理解
  • querying options(查询选项):
    • -q, --query=<json>: 支持json格式的筛选条件,导出筛选后的数据
    • --queryFile=<filename>: 存放json格式的筛选条件,从文件中读取查询条件。
    • --readPreference=<string>|<json>: 没理解
    • --forceTableScan: 没理解
    • --skip=<count>: 跳过前N个文档
    • --limit=<count>: 导出N个文档
    • --sort=<json>: 对导出的数据排序,例如 '{x:1}'
    • --assertExists: 如果指定此参数,在集合不存在时会报错

mongoimport --help

image.png

mongoimport的大部分参数和mongoexport是一样的,我们仅看一下不一样的部分即可。

  • input options(输入选项):
    • -f, --fields=<field>[<field>, ]*: 限定导入的字段,如果有多个字段用逗号隔开
    • --fieldFile=<filename>: 可以将字段名写入文件中,然后通过此文件来指定导入的字段名
    • --file=<filename>: 从文件中导入数据到数据库
    • --headerlien: 用文件的第一行作为字段名称,仅导入csv文件时可用
    • --jsonArray: 将输入的数据源看做json数组
    • --parseGrace=<grace>: 输入数据类型错误时,4种模式可选,"autoCast"(自动转换), "skipField"(跳过字段), "skipRow"(跳过此文档/行),"stop"(停止,默认选项)
    • --type=<type>: 数据文件的格式,csv、json、tsv
    • --columnHaveType: 没看懂
    • --legacy: 校验json格式是否合法
    • --useArrayIndexFields: 没看懂
  • ingest options(摄入选项):
    • --drop: 插入数据前先删除集合
    • --ignoreBlanks: 忽略csv文件中的空行
    • --maintainInsertionOrder: 保证文档插入顺序
    • --numInsertionWorkers=<number>: 并发插入,指定线程数量
    • --stopOnError: 发生错误时停止
    • --mode=[insert|upsert|merge|delete]: 仅插入,跳过匹配的文档。插入新文档,或替换已经存在的文档。插入新文档,或修改已经存在的文档。删除匹配的文档。

相关文章

  • 十、MongoDB数据迁移工具介绍

    前言 在工作中偶尔会遇到迁移数据等操作。比如如下场景: 数据库备份(容灾) 导出服务端数据(统计) 将服务端数据放...

  • MongoDB数据的迁移

    MongoDB数据的迁移,通过MongoDB提供的mongodump、mongorestore工具,进行数据的备份...

  • mongodb 使用参考

    关于mongodb创建索引的一些经验总结(转) MongoDb 数据迁移 MongoDB 更新数据 MongoDB...

  • # 在Node中基于Mongoose对MongoDB进行增删查改

    工具介绍 MongoDB MongoDB是基于Javascript语言的数据库,存储格式是JSON,而Node也是...

  • MongoDB数据迁移

    这里主要介绍使用mongodump和mongorestore方式来实现mongodb数据库的迁移工作 生成备份文件...

  • 2018-10-08 查询mongodb每个集合的文档数量

    上述函数在迁移mongodb数据库时用于对比迁移后集合数据是否损失。

  • 数据定时迁移

    数据分布原始数据来自oracle,期望将oracle数据先迁移到备份oracle,然后再迁移至mongodb 整体...

  • mongodb 数据迁移

    1. 数据导出 mongoimport --host ip --port 3717 --db spider_nj ...

  • 迁移mongodb数据

    [TOC] 迁移mongodb数据 1. 新机器安装mongodb 1.1 下载和安装 方式一,直接下载包,解压 ...

  • MongoDb 数据迁移

    公司买了一台服务器,要做数据迁移。大概有20G的样子。原数据库存放服务器A 目标数据库存放服务器B 数据备份...

网友评论

      本文标题:十、MongoDB数据迁移工具介绍

      本文链接:https://www.haomeiwen.com/subject/imrucrtx.html