博客
关于我
[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/

    你可能感兴趣的文章
    2025入门黑客技术必读书籍(非常全面)带你从小白进阶大佬!收藏这一篇就够了
    查看>>
    2025入门黑客技术必读书籍(非常全面)带你从小白进阶大佬!收藏这篇就够了
    查看>>
    2025大语言模型入门该怎么学?零基础入门到精通,收藏这篇就够了
    查看>>
    2025年3月全国计算等级考试(报名操作指南)从零基础到精通,收藏这篇就够了!
    查看>>
    2025年中国云计算市场四大趋势前瞻,从零基础到精通,收藏这篇就够了!
    查看>>
    .off打开方式、文件格式和使用代码(Python示例)
    查看>>
    2025年十大最佳漏洞管理工具,从零基础到精通,收藏这篇就够了!
    查看>>
    2025年网络安全五大趋势与十大威胁预测,从零基础到精通,收藏这篇就够了!
    查看>>
    2025想做黑客?先来学习 SQL 注入,零基础入门到精通,收藏这篇就够了
    查看>>
    2025春招计算机就业哪些方向最香?零基础入门到精通,收藏这篇就够了
    查看>>
    2025最全版《安全技术交底》.docx。从零基础到精通,收藏这篇就够了!
    查看>>
    2025最新大模型技术学习过程梳理,零基础入门到精通,收藏这篇就够了
    查看>>
    2025版万字长文入门大语言模型(LLM)零基础入门到精通,收藏这篇就够了
    查看>>
    2025版最新0基础怎么转行网络安全?零基础入门到精通,收藏这篇就够了
    查看>>
    2025版最新Bash Shell入门指南,零基础入门到精通,收藏这篇就够了
    查看>>
    2025版最新C++快速入门(适合小白)零基础入门到精通,收藏这篇就够了
    查看>>
    (建议收藏)五款常用优秀的Vue日历组件推荐 纯前端实现 无需额外依赖
    查看>>
    2025版最新CTF选手必藏的50个实战解题思路,零基础入门到精通,收藏这篇就够了
    查看>>
    2025版最新Java教程(非常详细)零基础入门到精通,收藏这篇就够了
    查看>>
    2025版最新Kali Linux渗透测试教程(全面详细)零基础入门到精通,收藏这篇就够了
    查看>>