Mongodb入门--头歌实验MongoDB 实验——数据备份和恢复

在实际的应用场景中,经常需要对业务数据进行备份以做容灾准备, MongoDB 提供了备份和恢复的功能,分别是 MongoDB 下的

一、数据备份

任务描述

本关任务:按照编程要求备份数据库。

相关知识

为了完成本关任务,你需要掌握: 1.掌握 mongodump 备份工具的参数含义; 2.如何使用 mongodump 备份数据。

mongodump 备份工具

mongodump 的参数与 mongoexport(数据导出)的参数基本一致:

参数参数说明
-h指明数据库宿主机的IP
-u指明数据库的用户名
-p指明数据库的密码
-d指明数据库的名字
-c指明collection的名字
-o指明到要导出的文件名
-q指明导出数据的过滤条件
--authenticationDatabase验证数据的名称
--gzip备份时压缩
--oploguse oplog for taking a point-in-time snapshot
使用 mongodump 备份数据

备份工具同导入导出工具类似,都是在命令行进行操作,无需进入客户端。

  • 全库备份(如果数据库未设置用户和密码,可以省略 -uroot -proot 参数)

mongodump -h 127.0.0.1:27300 -uroot -proot --authenticationDatabase admin  -o /home/mongod
#备份本地27300端口中root用户的所有数据库到/home/mongod目录下
  • 单个数据库备份
mongodump -h 127.0.0.1:27300 -uroot -proot --authenticationDatabase admin  -d test -o /home/mongod/test
#备份本地27300端口中root用户的test数据库到/home/mongod/test目录下
  • 集合备份

    mongodump -h 127.0.0.1:27300 -uroot -proot --authenticationDatabase admin -d test -c haha -o /home/mongod/test/haha
    #备份27300端口中root用户的test数据库的haha集合到/home/mongod/test/haha目录下
  • 压缩备份库

mongodump -h 127.0.0.1:27300 -uroot -proot --authenticationDatabase admin  -d test -o /home/mongod/test1 --gzip
#压缩备份本地27300端口中root用户的test数据库到/home/mongod/test1目录下
  • 压缩备份集合

    mongodump -h 127.0.0.1:27300 -uroot -proot --authenticationDatabase admin -d test -c haha -o /home/mongod/test1/haha --gzip
    #压缩备份27300端口中root用户的test数据库的haha集合到/home/mongod/test1/haha目录下
编程要求

根据提示,在右侧命令行进行操作(以下均在默认端口为27017的客户端进行,无用户和密码;以下**/opt下的路径均不存在,需要自己先行创建**):

  • 分别将 /home/example 目录下的 person.json 和 student.csv 导入到 MongoDB 的 test1 数据库的 person 集合、test2 数据库的 student 集合;

  • 将所有数据库备份到 /opt/mongodb 目录下;

  • 将 test1 数据库备份到 /opt/mongodb_1 目录下;

  • 将 person 集合备份到 /opt/collection_1 目录下;

  • 将 student 集合压缩备份到 /opt/collection_2 目录下;

  • 将 test2 数据库压缩备份到 /opt/mongodb_2 目录下。

1.创建以上目录

root@evassh-13661150:~# mkdir /opt/mongodb
root@evassh-13661150:~# mkdir /opt/mongodb_1
root@evassh-13661150:~# mkdir /opt/mongodb_2
root@evassh-13661150:~# mkdir /opt/collection_1
root@evassh-13661150:~# mkdir /opt/collection_2

2. 分别将 /home/example 目录下的 person.json 和 student.csv 导入到 MongoDB 的 test1 数据库的 person 集合、test2 数据库的 student 集合;

root@evassh-13661150:~# mongoimport -d test1 -c person --type json --file /home/example/person.json
2022-12-18T15:32:43.037+0000    connected to: localhost
2022-12-18T15:32:43.052+0000    imported 8 documents
root@evassh-13661150:~# mongoimport -d test2 -c student --type csv --headerline --ignoreBlanks --file /home/example/student.csv
2022-12-18T15:33:36.403+0000    connected to: localhost
2022-12-18T15:33:36.416+0000    imported 8 documents

mongoimport -d test1 -c person --type json --file /home/example/person.json

mongoimport -d test2 -c student --type csv --headerline --ignoreBlanks --file /home/example/student.csv

3.其他五步(按顺序)

root@evassh-13661150:~# mongodump -h 127.0.0.1:27017 --authenticationDatabase admin -o /opt/mongodb
2022-12-18T15:35:24.521+0000    writing admin.system.version to 
2022-12-18T15:35:24.522+0000    done dumping admin.system.version (1 document)
2022-12-18T15:35:24.522+0000    writing test1.person to 
2022-12-18T15:35:24.522+0000    writing test2.student to 
2022-12-18T15:35:24.523+0000    done dumping test1.person (8 documents)
2022-12-18T15:35:24.523+0000    done dumping test2.student (8 documents)root@evassh-13661150:~# mongodump -h 127.0.0.1:27017 --authenticationDatabase admin -d test1 -o /opt/mongodb_1
2022-12-18T15:36:20.989+0000    writing test1.person to 
2022-12-18T15:36:20.989+0000    done dumping test1.person (8 documents)root@evassh-13661150:~# mongodump -h 127.0.0.1:27017 --authenticationDatabase admin  -d test1 -c person -o /opt/collection_1
2022-12-18T15:37:27.552+0000    writing test1.person to 
2022-12-18T15:37:27.553+0000    done dumping test1.person (8 documents)root@evassh-13661150:~# mongodump -h 127.0.0.1:27017 --authenticationDatabase admin -d test2 -c student -o /opt/collection_2 --gzip
2022-12-18T15:38:16.975+0000    writing test2.student to 
2022-12-18T15:38:16.977+0000    done dumping test2.student (8 documents)root@evassh-13661150:~# mongodump -h 127.0.0.1:27017 --authenticationDatabase admin -d test2 -o /opt/mongodb_2 --gzip
2022-12-18T15:38:52.390+0000    writing test2.student to 
2022-12-18T15:38:52.391+0000    done dumping test2.student (8 documents)

二、数据恢复

任务描述

本关任务:按照编程要求恢复数据。

相关知识

为了完成本关任务,你需要掌握: 1.掌握 mongorestore 恢复工具的参数含义; 2.如何使用 mongorestore 恢复数据。

mongorestore 恢复工具
参数	参数说明
-h	指明数据库宿主机的IP
-u	指明数据库的用户名
-p	指明数据库的密码
-d	指明数据库的名字
-c	指明collection的名字
-o	指明到要导出的文件名
-q	指明导出数据的过滤条件
--authenticationDatabase	验证数据的名称
--gzip	备份时压缩
--oplog	use oplog for taking a point-in-time snapshot
--drop	恢复的时候把之前的集合drop掉
使用 mongorestore 恢复数据
  • 全库备份中恢复单库(基于之前的全库备份)

mongorestore -h 127.0.0.1:27017 -uroot -proot --authenticationDatabase admin -d test --drop  /home/mongod
#从/home/mongod目录下恢复全部数据库的数据到本地27300端口中root用户中(基于第一关的备份,下同)
  • 恢复 test 库
mongorestore -h 127.0.0.1:27017 -uroot -proot --authenticationDatabase admin -d test /home/mongod/test
#从/home/mongod/test目录下恢复名为test的单个数据库的数据到本地27300端口中root用户中的test数据库
  • 恢复 test 库下的 haha 集合
mongorestore -h 127.0.0.1:27017 -uroot -proot --authenticationDatabase admin -d test -c haha /home/mongod/test/haha/haha.bson
#从/home/mongod/test/haha目录下恢复集合的数据到本地27300端口中root用户的test数据库的haha集合中

--drop 参数实践恢复

# 恢复单库
mongorestore -h 127.0.0.1:27017 -uroot -proot --authenticationDatabase admin -d test --drop /home/mongod/test
# 恢复单表
mongorestore -h 127.0.0.1:27017 -uroot -proot --authenticationDatabase admin -d test -c vast --drop /home/mongod/test/haha/haha.bson
编程要求

根据提示,在右侧命令行进行操作,将第一关备份的数据按以下要求恢复(以下均在默认端口为27017的客户端进行,无用户和密码):

  • 将 /opt/mongodb 目录下的数据恢复到 MongoDB 中;

  • 将 /opt/mongodb_1 目录下的数据恢复到 mytest1 数据库中;

  • 将 /opt/collection_1 目录下的数据恢复到 mytest2 数据库的 person 集合中;

  • 将 /opt/collection_2 目录下的数据恢复到 mytest3 数据库的 student 集合中,并删除之前备份的表;

  • 将 /opt/mongodb_2 目录下的数据恢复到 mytest4 的数据库中,并删除之前的备份的数据库。

root@evassh-13661150:~# mongorestore -h 127.0.0.1:27017 --authenticationDatabase admin --drop /opt/mongodb
2022-12-18T15:48:05.720+0000    preparing collections to restore from
2022-12-18T15:48:05.788+0000    reading metadata for test1.person from /opt/mongodb/test1/person.metadata.json
2022-12-18T15:48:05.793+0000    reading metadata for test2.student from /opt/mongodb/test2/student.metadata.json
2022-12-18T15:48:05.815+0000    restoring test1.person from /opt/mongodb/test1/person.bson
2022-12-18T15:48:05.815+0000    restoring test2.student from /opt/mongodb/test2/student.bson
2022-12-18T15:48:05.818+0000    no indexes to restore
2022-12-18T15:48:05.818+0000    finished restoring test1.person (8 documents)
2022-12-18T15:48:05.818+0000    no indexes to restore
2022-12-18T15:48:05.818+0000    finished restoring test2.student (8 documents)
2022-12-18T15:48:05.818+0000    doneroot@evassh-13661150:~# mongorestore -h 127.0.0.1:27017 --authenticationDatabase admin -d mytest1 /opt/mongodb_1/test1
2022-12-18T15:48:36.693+0000    the --db and --collection args should only be used when restoring from a BSON file. Other uses are deprecated and will not exist in the future; use --nsInclude instead
2022-12-18T15:48:36.693+0000    building a list of collections to restore from /opt/mongodb_1/test1 dir
2022-12-18T15:48:36.694+0000    reading metadata for mytest1.person from /opt/mongodb_1/test1/person.metadata.json
2022-12-18T15:48:36.706+0000    restoring mytest1.person from /opt/mongodb_1/test1/person.bson
2022-12-18T15:48:36.708+0000    no indexes to restore
2022-12-18T15:48:36.708+0000    finished restoring mytest1.person (8 documents)
2022-12-18T15:48:36.708+0000    doneroot@evassh-13661150:~# mongorestore -h 127.0.0.1:27017 --authenticationDatabase admin -d mytest2 -c person /opt/collection_1/test1/person.bson
2022-12-18T15:48:45.065+0000    checking for collection data in /opt/collection_1/test1/person.bson
2022-12-18T15:48:45.065+0000    reading metadata for mytest2.person from /opt/collection_1/test1/person.metadata.json
2022-12-18T15:48:45.077+0000    restoring mytest2.person from /opt/collection_1/test1/person.bson
2022-12-18T15:48:45.140+0000    no indexes to restore
2022-12-18T15:48:45.140+0000    finished restoring mytest2.person (8 documents)
2022-12-18T15:48:45.140+0000    doneroot@evassh-13661150:~# mongorestore -h 127.0.0.1:27017 --authenticationDatabase admin -d mytest3 -c student --gzip --drop /opt/collection_2/test2/student.bson.gz
2022-12-18T15:48:52.830+0000    checking for collection data in /opt/collection_2/test2/student.bson.gz
2022-12-18T15:48:52.830+0000    reading metadata for mytest3.student from /opt/collection_2/test2/student.metadata.json.gz
2022-12-18T15:48:52.843+0000    restoring mytest3.student from /opt/collection_2/test2/student.bson.gz
2022-12-18T15:48:52.906+0000    no indexes to restore
2022-12-18T15:48:52.907+0000    finished restoring mytest3.student (8 documents)
2022-12-18T15:48:52.907+0000    doneroot@evassh-13661150:~# mongorestore -h 127.0.0.1:27017 --authenticationDatabase admin -d mytest4  --gzip --drop /opt/mongodb_2/test2/student.bson.gz
2022-12-18T15:49:00.810+0000    checking for collection data in /opt/mongodb_2/test2/student.bson.gz
2022-12-18T15:49:00.810+0000    reading metadata for mytest4.student from /opt/mongodb_2/test2/student.metadata.json.gz
2022-12-18T15:49:00.822+0000    restoring mytest4.student from /opt/mongodb_2/test2/student.bson.gz
2022-12-18T15:49:00.885+0000    no indexes to restore
2022-12-18T15:49:00.885+0000    finished restoring mytest4.student (8 documents)
2022-12-18T15:49:00.885+0000    done

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

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

相关文章

前端二维码工具小程序:营销裂变的好助手

一、摘要 在数字化营销日益盛行的今天,如何以新颖、高效的方式吸引用户,成为了每一个营销者所追求的目标。前端二维码工具小程序,作为一款集二维码生成、AI助手与绘图画画功能于一体的综合性工具,不仅为营销人员提供了全新的思路…

0101tomcat部署war访问mysql失败-容器间通信-docker项目部署

文章目录 一、简介二、部署1、mysql数据迁移2、docker部署redis3、docker部署tomcat并运行war包 三、报错四、解决1 分析2 解决 结语 一、简介 最近参与开发一个项目,其中一部分系统需要迁移。从阿里云迁移到实体服务器,使用docker部署。系统使用Java语…

openssl密钥证书管理(Key and Certificate Management)

前言 前两日应别人要求提供一份CSR文件过去,方便他们生成相关证书,对于这一块本来也不熟,于是找到openssl官网,想找找相关的教程看看,一番小找,果有收获,是个宝藏,源文档在这…

Mysql-模糊匹配度排序分页

Mysql-模糊匹配度排序分页 抛出问题 在使用模糊匹配分页的时候想根据匹配度高进行排序应该如何实现呢? 上面是添加的模拟数据,根据匹配度高的情况下张三的优先级肯定是最高的,首先直接使用模糊搜索分页看看效果吧。 很明显的可以看到&#…

【解决】Spring Boot创建项目常见问题

🎥 个人主页:Dikz12🔥个人专栏:Spring学习之路📕格言:吾愚多不敏,而愿加学欢迎大家👍点赞✍评论⭐收藏 目录 idea无maven选项 无效发行版17 类⽂件具有错误的版本 61.0, 应为 …

海外云手机为什么适合社媒运营?

如今,社媒营销如果做得好,引流效果好的账号,可以用来带货变现,而外贸、品牌出海也同样都在做社媒营销,Tik Tok、facebook、ins等热门的海外社媒平台都是行业密切关注的,必要的时候,大家会使用海…

「51媒体」权重高新闻源央级媒体邀约资料有哪些?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 权重高的央级媒体邀约资源包括了中国一些最具影响力和权威性的新闻机构。具体如下: 人民日报:作为中国共产党中央委员会的机关报,人民日报具有极高的权…

硬件测试学习——电源纹波测试(2024.04.15)

参考链接1: 测试开关电源的纹波 在此感谢各位前辈大佬的总结,写这个只是为了记录学习大佬资料的过程,内容基本都是搬运的大佬博客,觉着有用自己搞过来自己记一下,如果有大佬觉着我搬过来不好,联系我删。 硬件测试学习—…

腾讯EdgeOne产品测评体验—Web安全的攻与防:云端防护一体化

目录 简介接入准备EdgeOne购买及接入服务器环境配置添加测试站点关闭防护 安全性能测试XSS攻击sql注入 站点加速测试代码测试通过在线工具对比测试Ping检测tcping网站测速 HTTPS证书 操作步骤优点 总结EdgeOne的优缺点 简介 EdgeOne,作为腾讯云推出的全新CDN解决方…

Linux之 USB驱动框架-usb-skeleton.c usb驱动源码分析(3)

一、usb 驱动框架图 二、 usb 设备经典驱动:usb-skeleton.c 驱动 路径: drivers/usb/usb-skeleton.c USB骨架程序可以看做一个最简单的USB设备驱动的实例,其分析流程大致如下: static struct usb_driver skel_driver { …

揭示边缘计算网关的市场价格趋势(购买指南)-天拓四方

在数字化转型的大潮中,边缘计算网关作为连接云端与终端设备的核心节点,其重要性日益凸显。然而,面对市场上琳琅满目的边缘计算网关产品,对于许多企业和个人用户来说,边缘计算网关的价格成为选择产品时的重要考量因素。…

KT-105小动物人工呼吸机

咳咳,请各位小伙伴们注意啦!我们要聊的主题可是相当高大上——小动物呼吸机! 我们得先了解一下什么是小动物呼吸机。这可不是一般的机器哦,它是一种实验设备,主要用于各种各样的科学研究实验中。比如,在基…

【C++类和对象】类和对象的引入

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

mysql查找binlog的删除记录时间

需求:数据库某表的数据没有了;如何找是什么时修改清掉的; 思路: 1. 查代码,找某表的删除接口,分析是在哪里调用;【部分服务log不全】 2. 查服务的log;【部分服务log不全】 3. 查…

【学习笔记十七】波次管理、自动波次和WOCR介绍及配置

一、手工维护波次 波次是控制仓库活动(如拣配)的仓库请求项目(通常是出库交货订单项目)的分组。这些分组随后在后续流程中一起处理,例如,将分配到波次的所有仓库请求项目传输到仓库任务创建。 注意:仓库请求是出库交货订单、过账更改、库存转储(用于仓库中的内部移动)或入库…

38条Web测试经验分享

1. 页面链接检查 每一个链接是否都有对应的页面,并且页面之间切换正确。可以使用一些工具,如LinkBotPro、File-AIDCS、HTML Link Validater、Xenu等工具。 LinkBotPro不支持中文,中文字符显示为乱码;HTML Link Validater只能测试…

VSCode+Cmake 调试时向目标传递参数

我有一个遍历文件层次结构的程序,程序根据传入的文件路径,对该路径下的所有文件进行遍历。这个程序生成一个名为 ftw 的可执行文件,如果我要遍历 /bin 目录,用法为: ftw /bin问题是,如果我想单步跟踪&…

HBase2.x学习笔记

文章目录 一、HBase 简介1、HBase 定义1.1 概述1.2 HBase 与 Hadoop 的关系1.3 RDBMS 与 HBase 的对比1.4 HBase 特征简要 2、HBase 数据模型2.1 HBase 逻辑结构2.2 HBase 物理存储结构2.3 HBase的表数据模型 3、HBase 基本架构3.1 Master3.2 Region Server3.3 Zookeeper3.4 HD…

每日一练 | 华为认证真题练习Day215

1、下面是一段MUX VLAN中,关于主VLAN和从VLAN的配置,关于此配置说法正确是(多选) A. VLAN 10为主机VLAN B. VLAN 11为主机VLAN C. VLAN12为隔离型从VLAN D. VLAN 11和VLAN 12都为从VLAN E. VLAN 10和VLAN 11都为MUX VLAN 2、BGP邻居建立过程的状态存在以下几种,那么建立一个…

202305青少年软件编程(scratch图形化)等级考试试卷(四级)

第1题:【 单选题】 下列积木运行后的结果是? ( ) (说明: 逗号后面无空格) A:我 B:爱 C:中 D:国 【正确答案】: B 【试题解析】 : 两个字符串连接后的第 8 个字符是“爱” 。 第2题&#…