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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

卸载MySQL5.0,安装MySQL8.0

卸载MySQL 1、以管理员身份运行cmd,删除MySQL服务 2、卸载MySQL 3、删除残余文件 4、清楚注册表 winR -> regedit 5、删除环境变量 安装MySQL步骤 官方下载地址 https://www.mysql.com/downloads/ 以上步骤即完成MySQL数据库安装。

Springboot 整合 Flowable(二):使用 Flowable BPMN visualizer 绘制流程图

&#x1f4c1; Springboot 整合 Flowable&#xff08;一&#xff09;&#xff1a;使用 flowable-UI 绘制流程图-CSDN博客 一、安装 IDEA 插件&#xff1a;Flowable BPMN visualizer 二、绘制流程图 1、创建流程文件 2、选中文件后&#xff0c;右键打开流程图设计界面 以一个简…

springboot微信点餐小程序-计算机毕业设计源码82910

目 录 摘要 1 绪论 1.1 项目开发背景 1.2目的和意义 1.3springboot框架介绍 2 微信点餐小程序系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 …

宠物空气净化器终极选购指南!小米、希喂、安德迈谁最具性价比

清理房间中的猫浮毛对于猫主人来说是一项持续的任务。猫浮毛不仅可以附着在几乎所有表面上&#xff0c;而且还很难完全去除。宠物空气净化器这种设备通过高效的过滤系统捕捉微小的颗粒&#xff0c;包括猫浮毛&#xff0c;从而减少过敏原和皮屑颗粒物&#xff0c;帮助维护家庭卫…

C#调用外部API(托管和非托管DLL)

DLL程序的两种类型 托管对象(有垃圾回收机制&#xff0c;内存安全)非托管对象(无垃圾回收机制&#xff0c;需手动回收) 托管对象与非托管对象具体区别参考&#xff1a;【C#】中托管与非托管对象区别、托管与非托管DLL区别_c# dllimport 托管dll-CSDN博客 生成和调用托管对象…

综合型驱鸟装置:光伏电站集束冲击波驱鸟器

光伏电站作为绿色、清洁的能源生产方式&#xff0c;正在全球范围内得到快速发展。在光伏电站的建设和运营过程中&#xff0c;鸟类活动所带来的影响逐渐凸显&#xff0c;成为电站管理者需要面对的重要问题。在此背景下&#xff0c;光伏电站驱鸟器的需求也不断增长。 目前市场上的…

Windows 系统下 JDK 1.8 与 17 版本的相互切换

目录 一、当前本机已安装的 JDK 版本&#xff1a;1.8 二、下载 JDK 17 三、修改系统配置&#xff0c;将 JDK 版本切换为 17 1、新建 JAVA17_HOME 2、编辑 Path 3、验证是否切换成功 4、之后想再切换成 JDK 1.8 一、当前本机已安装的 JDK 版本&#xff1a;1.8 二、下载 J…

离散数学答疑 6

只要这样&#xff0c;就是函数。 知识点&#xff1a;满射是什么&#xff1f; 集合A中的每一个元素都映射到了B。 也就是说&#xff0c;A中的每个元素都要被提及&#xff0c;并且以二夫一妻或者一夫一妻的方式提及 其次&#xff0c;B中的每个元素都要被提及 知识点&#xff1a…

数字孪生技术推动希腊水务系统的技术进步

OpenFlows 提供的数字孪生技术将科扎尼供水渗漏的响应时间缩短了 50% 引领希腊供水管理改革 新冠疫情之后&#xff0c;希腊制定国家经济复苏计划&#xff0c;旨在推动能源改革、数字化和现代化&#xff0c;作为计划的一部分&#xff0c;希腊正试图实现可持续的给排水管理&…

Flow Launcher:Windows高效启动与搜索工具

目录 一、软件简介 二、软件安装 三、软件功能介绍 3.1 快速启动应用 3.2 文件快速搜索 3.3 多功能操作中心 3.4 支持插件扩展 一、软件简介 Flow Launcher 是基于C#编程语言开发一款专为Windows设计的高效启动与搜索工具&#xff0c;它以创新简洁的界面重新定义了用户…

五年跨境电商实战干货经验:爆品测出来的!

爆品确实是测出来的&#xff0c;不是单纯选出来的。我在亚马逊摸爬滚打了五年&#xff0c;深深感受到了“七分选品&#xff0c;三分运营”的重要性。不管你的产品图片、描述多么精美&#xff0c;如果不去精选和测试&#xff0c;很难保证能出单。我见过很多跨境新手在选品上卡了…

Windows 锁屏小组件怎么添加及删除?

去掉或添加锁屏小组件的方法 如果想要将 Windows 11 的锁屏小组件给关闭其实非常简单&#xff0c;下面是具体的操作步骤&#xff1a; 首先我们需要进入 Windows 设置界面&#xff0c;然后找到左侧选项中的“个性化”选项。 然后往下滑动找到“锁定屏幕”选项&#xff0c;点击…

SAP乘云而上

上周四参加了SAP原厂组织的“SAP乘云而上私享会”&#xff0c;由德勤赞助。活动主要的内容是介绍了RISE with SAP的上云服务包并且参观了SAP Labs。 现阶段对于大中型企业客户&#xff0c;SAP力推的是S/4HANA PCE(Private Cloud Edition)私有云版本&#xff0c;这个版本我在之…

抄表平台是什么?

1.抄表平台简述 抄表平台是一种现代化管理系统软件&#xff0c;主要运用于自动化技术搜集、解决与分析各种计量仪表的信息&#xff0c;如智能水表、电度表、天然气表等。它结合了物联网、大数据应用和云计算&#xff0c;大大提高了抄表高效率&#xff0c;减少了人力成本&#…

一分钟使用Java实现socket消息传递

一、目的 本程序旨在模拟航空器与塔台之间的实时消息传递&#xff0c;展示其在实际航空通讯中的应用。通过使用 Java 的 JFrame 进行图形用户界面&#xff08;GUI&#xff09;的设计&#xff0c;以及 socket 编程实现网络通信&#xff0c;该程序能够提供一个直观的界面来显示航…

1、链接(link)

链接的作用 链接&#xff1a;将各种代码和数据片段收集组成一个单一文件的过程&#xff0c;这个文件可以加载&#xff08;复制&#xff09;到内存并执行。 分为&#xff1a;编译时、加载时&#xff08;加载器加载到内存并执行时&#xff09;、运行时 1、构造大型程序 2、避免…

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

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

【数学】927. 三等分

本文涉及知识点 数学 LeetCode927. 三等分 给定一个由 0 和 1 组成的数组 arr &#xff0c;将数组分成 3 个非空的部分 &#xff0c;使得所有这些部分表示相同的二进制值。 如果可以做到&#xff0c;请返回任何 [i, j]&#xff0c;其中 i1 < j&#xff0c;这样一来&#…

消费增值模式引领业绩飙升与用户活跃

大家好&#xff0c;我是吴军&#xff0c;致力于为您揭示私域电商领域的独特魅力与机遇。 今日&#xff0c;我很高兴与大家分享一个激动人心的成功案例。我们的客户在短短一个月的时间里&#xff0c;业绩就飙升至上百万级别&#xff0c;其用户活跃度更是居高不下&#xff0c;日…

如何进行考试成绩分析

一、为什么要对考试成绩进行分析&#xff1f; 考试成绩进行分析是一项重要的工作&#xff0c;可以为学生、教师和学校提供有效的学习评价和支持&#xff0c;同时也可以为教学改进和提高教学质量提供有力的支持和指导。对考试成绩进行分析有以下几个原因&#xff1a; 1.了解学生…