博客
关于我
[308]mongo使用工具复制数据库和表
阅读量:618 次
发布时间:2019-03-13

本文共 1813 字,大约阅读时间需要 6 分钟。

MongoDB 数据库管理与操作

折中方案以解决常见的数据复制问题

在 MongoDB 中,数据的复制与管理是日常操作的重要环节。本文将为大家介绍多种实现数据库复制和管理的方法。

一、复制单个集合

方法一:使用 Studio 3T for MongoDB

  • 打开 Studio 3T,选择目标数据库中的集合。
  • 按住快捷键 Ctrl + C,复制当前集合。
  • 再次按 Ctrl + V,右键单元格选择“重命名”,进行重命名操作。

  • 方法二:使用 Robo 3T

  • 打开 Robo 3T 工具。
  • 在目标集合中右键选择“复制集合”。
  • 集合复制完成后,右键单元格选择“重命名”,完成操作。

  • 二、批量复制单个集合

    通过 MongoDB shell 实现批量复制

    db.collection_name.find().forEach(function(d) {    db.getSiblingDB('new_database')['collection_name'].insert(d);});
  • collection_name:源数据库中的集合名称。
  • new_database:目标数据库名称。
  • 该方法适用于同一主机上的本地库复制。

  • 三、复制整个数据库

    方法一:使用 db.copyDatabase 命令

    db.copyDatabase(fromdb, todb, [fromhost], [username], [password], [mechanism])
  • fromdb:源数据库名称。
  • todb:目标数据库名称。
  • fromhost(可选):源数据库主机地址。
  • username(可选):源数据库账户名。
  • password(可选):账户密码。
  • mechanism(可选):验证机制(MONGODB-CRSCRAM-SHA-1)。
  • 示例命令:

    db.copyDatabase('test', 'test2', '192.168.14.52:27017', 'test', 'test', 'SCRAM-SHA-1')

    方法二:使用 db.runCommand

    db.runCommand({    copydb: 1,    fromdb: '源数据库',    todb: '目标数据库',    slaveOk: true,    username: '用户账户',    password: '账户密码',    nonce: '一次性共享密钥',    key: '密码哈希值'})
  • fromhost(可选):需在复制Slave时提供主机地址。
  • slaveOk(可选):允许从Slave副本复制数据。

  • 四、复制特定集合

    方法一:cloneCollection 命令

    db.collectionDBName.cloneCollection(from, collection, query)
  • from:源数据库名称。
  • collection:源集合名称。
  • query(可选):过滤复制数据。
  • 方法二:runCommand 实现

    db.runCommand({    cloneCollection: '源集合名称',    from: '192.168.1.12:27017',    copyIndexes: false,    query: {'age': {'gt': 2}}})

    五、数据库管理命令

    1. 刷新磁盘

    db.runCommand({ fsync: 1, async: true })
    • fsync: 1:执行 fsync 操作。
    • async: true:异步执行。

    2. 数据压缩

    db.repairDatabase()

    操作效果:

    • 清理碎片。
    • 提高存储效率。

    示例:

    PRIMARY > db.t1.storageSize()  // 65,232,896 bytesPRIMARY > db.t1.totalSize()    // 81,470,432 bytesPRIMARY > db.repairDatabase()PRIMARY > db.t1.storageSize()  // 65,232,896 bytesPRIMARY > db.t1.totalSize()    // 79,851,584 bytes

    通过以上方法,操作人员可以根据实际需求实现 MongoDB 数据库的高效管理与复制。

    转载地址:http://ojaaz.baihongyu.com/

    你可能感兴趣的文章
    Java学习第二章——Java基本语句
    查看>>
    遇到问题之-yum update无法连接镜像问题解决
    查看>>
    pycharm如何设置(错误、警告类的标准提醒)
    查看>>
    Python3运行的时候错误:ModuleNotFoundError: No module named 'PIL'
    查看>>
    PHP是世界上最好的语言?Phython第一个不服
    查看>>
    Bugku CTF-web6
    查看>>
    Bugku CTF-web10 头等舱
    查看>>
    UML-配置图
    查看>>
    python入门到秃顶(10):异常
    查看>>
    考研复试英语问答
    查看>>
    百度背景换肤案例
    查看>>
    修改ng-zorro中table对齐及宽度等细节
    查看>>
    输出对象的值——踩坑
    查看>>
    在苹果Mac上如何更改AirDrop名称?
    查看>>
    1110 Complete Binary Tree (25 point(s))
    查看>>
    541【毕设课设】基于单片机电阻电感电容RLC测量仪系统
    查看>>
    基于8086交通灯系统仿真设计(微机原理设计资料)
    查看>>
    解读域名管理之:域名注册机构介绍
    查看>>
    找中位数
    查看>>
    自动化测试——UI自动化测试的痛点
    查看>>