首页 > 数据库 >mongodb-备份和恢复

mongodb-备份和恢复

时间:2023-06-30 23:23:20浏览次数:40  
标签:-- mongodb 备份 指定 导入 恢复 csv 数据库

1、mongoexport/mongoimport 备份工具

导入/导出的是JSON格式或者CSV格式

mongoexport具体用法如下所示:

  • -h:指定数据库主机的 IP 地址

  • -u:指定数据库的用户名

  • -p:指定数据库的密码

  • -d:指定数据库的名字

  • -c:指定 collection 的名字

  • -f:指定导出那些列

  • -o:指定到要导出的文件名

  • -q:指定导出数据的过滤条件

  • --authenticationDatabase admin ,用户认证数据库

准备数据,进行备份

> use test
> for(i=0;i<10000;i++){ db.log.insert({"uid":i,"name":"mongodb","age":6,"date":new
Date()}); }

$ mongoexport -uroot -proot123 --port 38017 --authenticationDatabase admin -d test -c log -o /mongodb/log.json
2023-06-30T22:41:08.665+0800	connected to: mongodb://localhost:38017/
2023-06-30T22:41:08.792+0800	exported 9999 records

$ more /mongodb/log.json 
{"_id":{"$oid":"649ee1ea168724a7ed39adaf"},"uid":1.0,"name":"mongodb","age":6.0,"date":{"$date":"2023-06-30T14:08:42.307Z"}}
{"_id":{"$oid":"649ee1eb168724a7ed39adb0"},"uid":2.0,"name":"mongodb","age":6.0,"date":{"$date":"2023-06-30T14:08:43.493Z"}}
{"_id":{"$oid":"649ee1eb168724a7ed39adb1"},"uid":3.0,"name":"mongodb","age":6.0,"date":{"$date":"2023-06-30T14:08:43.506Z"}}

默认导出 json 格式,需要导出CSV格式的数据,则需要使用--type=csv参数

Mongodb中的mongoimport工具可以把一个特定格式文件中的内容导入到指定的collection中。该工具可以导入JSON格式数据,也可以导入CSV格式数据。具体使用如下所示:

  • -h:指定数据库主机的IP

  • -u:指定数据库的用户名

  • -p:指定数据库的密码

  • -d:指定数据库的名字

  • -c:指定 collection 的名字

  • -f:指定要导入那些列

  • -j, --numInsertionWorkers= number of insert operations to run
    concurrently (defaults to 1) 并行导入

$ mongoimport -uroot -proot123 --port 38017 --authenticationDatabase admin -d test -c log1 /mongodb/log.json 
2023-06-30T22:55:39.921+0800	connected to: mongodb://localhost:38017/
2023-06-30T22:55:41.339+0800	9999 document(s) imported successfully. 0 document(s) failed to import.

导入 csv 格式文件

## csv 格式的文件头行,有列名字。
## --headerline:指明第一行是列名,不需要导入。
mongoimport -uroot -proot123 --port 38017 --authenticationDatabase admin -d test -c log5 --type=csv --headerline --file /mongodb/log.csv

## csv格式的文件头行,没有列名字
mongoimport -uroot -proot123 --port 27017 --authenticationDatabase admin -d test -c log6 -j 4 --type=csv -f id,name,age,date --file /mongodb/log.csv

异构数据库数据迁移,MySQL 和 mongodb 数据迁移,通过 csv 格式数据文件进行导入导出。

如何将MySQL大量表迁移到MongoDB

1、批量从MySQL导出多张表

$ mysqldump --fields-terminated-by ',' --fields-enclosed-by '"' world -T /tmp/
$ cd /data/backup
$ rm -rf /data/backup/*.sql
$ find ./ -name "*.txt" | awk -F "." '{print $2}' | xargs -i -t mv ./{}.txt ./{}.csv

2、 拼接语句

> select concat("mongoimport -uroot -proot123 --port 27017 --
authenticationDatabase admin -d ",table_schema, " -c ",table_name ," --type=csv
"," -f ", group_concat(column_name) ," --file /data/backup/",table_name
,".csv")
from information_schema.columns where table_schema='world' group by table_name;

3、mongodb 导入数据

2、mongodump/mongorestore工具

导入/导出的是BSON格式

标签:--,mongodb,备份,指定,导入,恢复,csv,数据库
From: https://www.cnblogs.com/zbc230/p/17518019.html

相关文章

  • springboot整合mongodb
    文章目录自己的源码新建项目新建测试类基于MongoRepository(推荐)(个人推荐,简单,方便)基于Respository测试类:(了解)基于MongoTemplate的测试类自己的源码https://gitee.com/stackR/springboot-mongodb新建项目新建springboot项目,引入,spring-boot-starter-data-mongodb和lombo......
  • mongodb定时备份
    1、https://www.jianshu.com/p/a9352e28e2d6  (未测试)通过centos脚步来执行备份操作,使用crontab实现定时功能,并删除指定天数前的备份具体操作:1、创建Mongodb数据库备份目录mkdir-p/home/backup/mongod_bak/mongod_bak_nowmkdir-p/home/backup/mongod_bak/mongod_bak_list......
  • SQLSERVER数据库三种恢复模式
    SQLServer数据库的三种恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式。  sqlserver数据库提供了三种恢复模式:完整,简单和大容量日志,这些模式决定了sqlserver如何使用事务日志,如何选择它要记录的操作,以及是否截断日志。截断事务日志是删除己执行事务并把该日志空间让......
  • 万字长文解析最常见的数据库恢复算法: ARIES
    万字长文解析最常见的数据库恢复算法:ARIES首发地址:https://mp.weixin.qq.com/s/Kc13g8OHK1h_f7eMlnl4AwIntroduction上图中为基于WAL的数据库的一种可能的架构情况。其中,In-MemoryData为数据库数据在内存中的组织形式,可以是B树,也可以是hashtable或者其他可能的......
  • Clonezila备份Linux并恢复
    Clonezila备份Linux并恢复一、使用工具Tuxboot制作U盘镜像:tuxboot-0.8.2.exe镜像版本:clonezilla-live-2.7.3-19-amd62.4.zip二、操作步骤2.1、使用Tuxboot制作U盘镜像​ 制作完成后需在U盘中新建目录用于存放镜像2.2、电脑BIOS设置U盘启动​ 不同品牌的主板设置U盘......
  • 实时备份工具之inotify+rsync
    1.inotify简介inotify是一个从2.6.13内核开始,对Linux文件系统进行高效率、细粒度、异步地监控机制,用于通知用户空间程序的文件系统变化。可利用它对用户空间进行安全、性能、以及其他方面的监控。Inotify反应灵敏,用法非常简单,并且比cron任务的繁忙轮询高效得多。如果内......
  • docker部署mongodb副本集
    1.规格ip地址端口192.168.1.10127017192.168.1.10227017192.168.1.103270172.部署操作2.1 以下操作分别在三台不同的ECS服务器上操作[root@ecs-ff50-73e8-0002~]#mkdir/path/to-p[root@ecs-ff50-73e8-0002~]#cd/path/to/[root@ecs-ff50-73e8-0002to]#ls[root@ecs-ff50-73......
  • mongodb数据库操作备忘
    db.SMU_REALDATA_PARAMETERS.update({},{$rename:{"interfaceID":"INTERFACEID"}},false,true); 修改field,字段名,不是修改值哟。 网上搜索mongodb语言和CheatSheet手册。https://www.mongodb.com/developer/products/mongodb/cheat-sheet/navcate工具和下面工具都可以。 ......
  • 如何彻底清除电脑全部数据且不被恢复
    管理员权限进命令提示符,输入diskpart,回车输入listdisk,看有多少个硬盘,记下要清楚的数据所在的硬盘Id,例如我的机器是这样的,一个1T机械硬盘,一个256GSSD。假设题主要清除机械硬盘上的数据,记下0。磁盘###状态大小可用DynGpt------------------------......
  • MongoDB从入门到实战之.NET Core使用MongoDB开发ToDoList系统(8)-Ant Design Blazor前端
    前言前面的章节我们介绍了一些值得推荐的BlazorUI组件库,通过该篇文章的组件库介绍最终我选用AntDesignBlazor这个UI框架作为ToDoList系统的前端框架。因为在之前的工作中有使用过AntDesignVue、AntDesignAngular习惯并且喜欢AntDesign设计规范和风格,废话不多说今天我......