5.mongodb 备份与恢复

  • mongodb备份工具介绍:
    • 1.mongoexport(备份)/mongoimport(恢复)
      • mongoexport是MongoDB提供的一个工具,用于将数据从MongoDB实例导出到JSON或CSV格式的文件中,这个工具对于数据迁移、数据备份或者在不同的数据库之间同步数据非常有用
    • 2.mongodump(备份)/mongorestore(恢复)
      • mongodump 是 MongoDB 官方提供的一个工具,用于备份 MongoDB 数据库。导出和导入的文件格式为BSON文件格式
  • 备份工具的区别:
    • mongoexport/mongoimport 导出和导入的是JSON格式或者CSV格式
    • mongodump/mongorestore 导入和导出的是BSON格式
    • JSON格式可读性较强但是体积较大,BSON则是二进制文件,体积小。
    • 在MongoDB不同的版本之间备份和恢复,BSON格式可能会随着版本不同而有所不同,所以不同版本之间使用mongodump/mongorestore备份工具可能不会成功,具体要看版本之间的兼容性。
    • 不同版本选择备份时,JSON格式由于其简单、灵活、易读,非常适合用于跨版本软件的备份和恢复工作
  • 应用场景:
    • 1.mongoexport/mongoimport:(JSON格式、CSV格式)
      • 适合异步平台迁移或同平台、跨大版本
    • 2.mongodump/mongorestore:(BSON格式)
      • 日常备份恢复时使用
  • 导出工具mongoexport:
    • 可以将一个集合导出成JSON格式或CSV格式
    • 适用于:
      • 版本差异较大
      • 异步平台数据迁移
    • mongoexport具体用法如下所示:
      • $ mongoexport --help
      • 参数说明:
      • -h:指明数据库宿主机的IP
      • -u:指明数据库的用户名
      • -p:指明数据库的密码
      • -d:指明数据库的名字
      • -c:指明collection的名字
      • -f:指明要导出那些列
      • -o:指明到要导出的文件名
      • -q:指明导出数据的过滤条件
      • --authenticationDatabase admin
  •  
    • 安装备份工具:
    • tar xf mongodb-database-tools-rhel70-x86_64-100.3.1.tgz
    • cd mongodb-database-tools-rhel70-x86_64-100.3.1/bin/
    • cp * /mongodb/bin/
    • chown -R mongod.mongod /mongodb/
  •  
    • 创建一个库和集合,填入数据用于备份测试:
      • use hehe
      • db.createCollection("log");
      • for(i=0;i<10000;i++){db.log.insert({"uid":i,"name":"mysql","age":6,"date":new Date()})}
  •  
    • 创建一个超级管理员用户(可以管理所有库):
      • use admin
      • db.createUser(
      • {
      • user: "root",
      • pwd: "root123",
      • roles: [ { role: "root", db: "admin" } ]
      • }
      • )
  •  
    • 单表备份至JSON格式:
      • mongoexport -uroot -proot123 --port 27017 --authenticationDatabase admin -d hehe -c log -o /mongodb/log.json
    • 单表备份至CSV格式:
      • (需要使用--type=csv参数)
      • mongoexport -uroot -proot123 --port 27017 --authenticationDatabase admin -d hehe -c log --type=csv -f uid,name,age,date -o /mongodb/log.csv
  • 导入工具mongoimport:
    • 它是mongodb数据库提供的一个工具,用于将数据从外部导入到mongodb集合中,这个工具可以处理JSON\CSV\XML等格式的数据:
    • 参数:
      • -h:指明数据库宿主机的IP
      • -u:指明数据库的用户名
      • -p:指明数据库的密码
      • -d:指明数据库的名字
      • -c:指明collection的名字
      • -f:指明要导入那些列
      • -j:并行多开线程,默认4个
  •  
    • 恢复JSON格式表数据到log1集合:
      • mongoimport -uroot -proot123 --port 27017 --authenticationDatabase admin -d hehe -c log1 /mongodb/log.json
    • 恢复CSV格式的文件到log2集合:
      • 注意:
        • 1.当CSV格式的文件中,第一行存在列名的话,在导入数据时,需要指定参数:--headerline(导入的信息包含头部信息)
          • (当使用 --headerline 选项时,mongoimport 会将 CSV 文件的第一行作为字段名,并将后续的行作为数据记录导入到 MongoDB 集合中。)
        • 2.当导入的CSV格式文件中,没有列名时,在导入时可以指定参数-f,后面添加第一行的列名
      • 开始导入:
        • (1)csv格式的文件头行,有列名字
          • mongoimport -uroot -proot123 --port 27017 --authenticationDatabase admin -d hehe -c log2 --type=csv --headerline --file /mongodb/log.csv
        • (2)csv格式的文件头行,没有列名字
          • mongoimport -uroot -proot123 --port 27017 --authenticationDatabase admin -d hehe -c log3 --type=csv -f id,name,age,date --file /mongodb/log1.csv
  • 不同平台之间数据迁移案列:
    • mysql————>mongodb
    • 1.开启mysql安全路径,用于限制只有指定目录下的数据文件可以被导出和导入
      • vim /etc/my.cnf
        • 添加:
          • secure-file-priv=/tmp
      • 重启数据库生效:
      • 补充:
    • 2.提前准备一些数据用于测试:
      • 先将数据源导入mysql中:
        • source /root/world.sql
      • 将数据导出到/tmp下:
        • select * from world.city into outfile '/tmp/city1.csv' fields terminated by ',';
          • 这是一个备份数据的公式,如果库和表名,则直接将上面的修改为自己的库和表名,就可以备份数据了。
  •  
    • 3.在mongodb数据库中导入刚才备份出来的数据:
      • mongoimport -uroot -proot123 --port 27017 --authenticationDatabase admin -d world -c city --type=csv -f ID,Name,CountryCode,District,Population --file /tmp/city1.csv
        • -f:列名
  •  
    • 4.假如mysql中要迁移100张表到mongodb数据库中,以下有一个公式可以直接将导出的命令列出:
      • select concat("select * from ",table_schema,".",table_name ," into outfile '/tmp/",table_schema,"_",table_name,".csv' fields terminated by ',';") from information_schema.tables where table_schema ='world';
      • (使用时只需要修改库名即可)
  • mongodb日常数据备份:
    • mongodump介绍
      • mongodump可以在mongodb运行时进行备份。
      • 它的工作原理是对运行的Mongodb做查询,然后将所有查到的文档写入磁盘、
      • 它可以创建 MongoDB 实例或集合的 BSON 文件快照
    • 参数:
      • 参数说明:
      • -h:指明数据库宿主机的IP
      • -u:指明数据库的用户名
      • -p:指明数据库的密码
      • -d:指明数据库的名字
      • -c:指明collection的名字
      • -o:指明到要导出的文件名
      • -q:指明导出数据的过滤条件
      • -j:并行备份的线程数默认是4
      • --oplog 备份的同时备份oplog
      • ---------------------------------------------
      • --authenticationDatabase admin:指定认证库
  •  
    • mongorestore介绍:
      • mongorestore是MongoDB的数据恢复工具,它可以将mongodump创建的备份文件恢复到mongoDB这个实例中
  •  
    • 使用案列:
      • 创建备份目录,将数据备份到以下目录:
        • mkdir /mongodb/backup /mongodb/backup1 /mongodb/backup2 /mongodb/backup3 /mongodb/backup4 /mongodb/backup5
      • 全库备份(备份所有):
        • mongodump -uroot -proot123 --port 27017 --authenticationDatabase admin -o /mongodb/backup
      • 备份单库(参数:-d 库名)
        • mongodump -uroot -proot123 --port 27017 --authenticationDatabase admin -d world -o /mongodb/backup1/
      • 备份指定库下的单个集合:(参数:-d 库名 -c 集合名)
        • mongodump -uroot -proot123 --port 27017 --authenticationDatabase admin -d hehe -c log -o /mongodb/backup2/
  •  
    • 压缩备份:
      • 全库备份压缩:
        • mongodump -uroot -proot123 --port 27017 --authenticationDatabase admin -o /mongodb/backup3/ --gzip
      • 单库压缩备份:
        • mongodump -uroot -proot123 --port 27017 --authenticationDatabase admin -d hehe -o /mongodb/backup4/ --gzip
      • 单表压缩备份:
        • mongodump -uroot -proot123 --port 27017 --authenticationDatabase admin -d world -c city -o /mongodb/backup5/ --gzip
  •  
    • 恢复数据:
      • mongorestore -uroot -proot123 --port 27017 --authenticationDatabase admin -d world /mongodb/backup/world
    • 压缩还原(--gzip:解压后还原):
      • mongorestore -uroot -proot123 --port 27017 --authenticationDatabase admin -d hehe -c log --gzip /mongodb/backup3/hehe/log.bson.gz
    • 删除还原:
      • --drop表示恢复的时候把之前的集合drop掉(危险)
      • mongorestore -uroot -proot123 --port 27017 --authenticationDatabase admin -d hehe --drop /mongodb/backup/hehe

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/346776.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鱼泡-伙伴匹配系统

第一次直播 项目介绍 帮助找到志同道合的伙伴 需求分析 标签分类 主动搜索 组队 创建队伍加入队伍根据标签查询队伍 前端项目初始化 项目初始化文件夹中一定不要带空格&#xff01; 使用npm&#xff08;node包管理器&#xff09;来安装 Vite 脚手架&#xff1a; vue cl…

USB (5)

USB是一个poll的总线。并且数据传输是对齐到time-line的。 对于比如鼠标这样的设备&#xff0c;主机会最快125us poll一次&#xff0c;看是否有输入。这也就是interrupt transfer类型。 对于isochronous transfer类型&#xff0c;数据是在固定的时隙传输的&#xff0c;但不保证…

Python魔法之旅-魔法方法(22)

目录 一、概述 1、定义 2、作用 二、应用场景 1、构造和析构 2、操作符重载 3、字符串和表示 4、容器管理 5、可调用对象 6、上下文管理 7、属性访问和描述符 8、迭代器和生成器 9、数值类型 10、复制和序列化 11、自定义元类行为 12、自定义类行为 13、类型检…

怎么改图片分辨率的dpi数值?简单调整图片dpi的方法

图片分辨率的dpi是目前使用图片时比较常见的要求之一&#xff0c;在网上上传图片时比如证件照类型&#xff0c;都经常会对图片dpi数值有要求。在使用图片的时候&#xff0c;如果dpi的数值不满足用户使用&#xff0c;那么就会无法正常上传使用&#xff0c;那么修改图片api具体该…

42.vue-element-admin界面上的search字段配置

vue-element-admin界面上的search字段&#xff08;下图红色部分&#xff09;是可配置&#xff0c;使用*.vue里的search关键字进行配置。 一、配置方法 1.如果这个字段要放到search区域&#xff0c;则&#xff1a; search: {hidden: false}, 2.如果这个字段不要放到search区域…

实验七、创建小型实验拓扑《计算机网络》

早检到底是谁发明出来的。 一、实验目的 完成本实验后&#xff0c;您将能够&#xff1a; • 设计逻辑网络。 • 配置物理实验拓扑。 • 配置 LAN 逻辑拓扑。 • 验证 LAN 连通性。 二、实验任务 在本实验中&#xff0c;将要求您连接网络设备并配置主机实现基本的网络…

贪心算法-数组跳跃游戏(mid)

目录 一、问题描述 二、解题思路 1.回溯法 2.贪心算法 三、代码实现 1.回溯法实现 2.贪心算法实现 四、刷题链接 一、问题描述 二、解题思路 1.回溯法 使用递归的方式&#xff0c;找到所有可能的走步方式&#xff0c;并记录递归深度&#xff08;也就是走步次数&#x…

【AI法官】人工智能判官在线判案?

概述 AI法官是一款为用户提供专业法律分析和判决建议的智能体应用。用户只需简要描述案情&#xff0c;AI法官便会利用其强大的法律知识和逻辑推理能力&#xff0c;快速且准确地梳理出判决结果。该应用的目标是为用户提供高效、准确、合法的判决建议。 角色任务 任务描述 作为…

小程序 UI 风格魅力非凡

小程序 UI 风格魅力非凡

Oracle的优化器

sql优化第一步&#xff1a;搞懂Oracle中的SQL的执行过程 从图中我们可以看出SQL语句在Oracle中经历了以下的几个步骤&#xff1a; 语法检查&#xff1a;检查SQL拼写是否正确&#xff0c;如果不正确&#xff0c;Oracle会报语法错误。 语义检查&#xff1a;检查SQL中的访问对象…

海南聚广众达电子商务咨询有限公司打造一站式电商服务

在数字经济的浪潮中&#xff0c;电商行业蓬勃发展&#xff0c;各种平台和服务商如雨后春笋般涌现。其中&#xff0c;海南聚广众达电子商务咨询有限公司凭借其专业的团队和丰富的经验&#xff0c;在抖音电商服务领域独树一帜&#xff0c;成为业界的佼佼者。 海南聚广众达电子商…

判断对称树

leetcode - 101 - 对称二叉树 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false提示&a…

注册小程序

每个小程序都需要在 app.js 中调用 App 方法注册小程序实例&#xff0c;绑定生命周期回调函数、错误监听和页面不存在监听函数等。 详细的参数含义和使用请参考 App 参考文档 。 整个小程序只有一个 App 实例&#xff0c;是全部页面共享的。开发者可以通过 getApp 方法获取到全…

【递归、搜索与回溯】穷举vs暴搜vs深搜vs回溯vs剪枝

穷举vs暴搜vs深搜vs回溯vs剪枝 1.全排列2.子集 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 管他什么深搜、回溯还是剪枝&#xff0c;画出决…

【Java】解决Java报错:NoClassDefFoundError

文章目录 引言1. 错误详解2. 常见的出错场景2.1 类路径配置错误2.2 依赖库缺失2.3 类文件被删除或损坏2.4 类加载器问题 3. 解决方案3.1 检查类路径配置3.2 检查依赖库3.3 检查类文件3.4 调试类加载器问题 4. 预防措施4.1 使用构建工具管理依赖4.2 定期进行构建和测试4.3 使用I…

【Unity+AI01】在Unity中调用DeepSeek大模型!实现AI对话功能!

要在Unity中调用DeepSeek的API并实现用户输入文本后返回对话的功能&#xff0c;你需要遵循以下步骤&#xff1a; 获取API密钥&#xff1a; 首先&#xff0c;你需要从DeepSeek获取API密钥。这通常涉及到注册账户&#xff0c;并可能需要订阅相应的服务。 集成HTTP请求库&#xf…

【APP移动端自动化测试】第一节.环境配置和adb调试工具

文章目录 前言一、Java环境搭建二、AndroidSDK环境搭建三、Android模拟器安装四、adb调试工具基本介绍 4.1 adb构成和基本原理 4.2 adb获取包名&#xff0c;界面名 4.3 adb文件传输 4.4 adb获取app启动时间 4.5 adb获取手机日志 4.6 adb其他有关…

python的resample()函数

介绍 在Python中,resample()函数是一个常用的工具,用于对时间序列数据进行重新采样。这个函数可以将时间序列数据从一个频率转换为另一个频率,比如将每天的数据转换为每月的数据。在本教程中,我将向你展示如何使用resample()函数,并解释每个步骤的具体含义。 整体流程 首先…

独具魅力的 App UI 风格才能称之为优秀

独具特色的App UI 长什么样&#xff01;看这里

Java案例:找素数

文章目录 题目问题反思代码改进 题目 找素数 判断101-200之间有多少个素数&#xff0c;并输出所有素数 只需要除到 n/2 即可。 算数平方根。&#xff08;j*j<i&#xff09;实际上可以更高效地只除到Math.sqrt(n)&#xff08;或者说Math.sqrt(n) 1为了处理整数除法&#xf…