mongodb 数据库操作——备份 还原 导出 导入
mongodump备份数据库
命令格式
mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径
如果没有用户,可以去掉-u和-p。
如果导出本机的数据库,可以去掉-h。
如果是默认端口,可以去掉--port。
如果想导出所有数据库,可以去掉-d。
导出所有数据库
mongodump -h 127.0.0.1 -o dump
导出指定数据库
mongodump -h 192.168.1.108 -d tank -o /root/dump
mongorestore还原数据库
命令格式
mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 --file=文件存在路径
--drop的意思是,先删除所有的记录,然后恢复。
恢复所有数据库到mongodb中
mongorestore dump #这里的路径是所有库的备份路径
还原指定的数据库
mongorestore -d tank /root/dumptank #/root/dump这个数据库的备份路径
这二个命令,可以实现数据库的备份与还原,文件格式是json和bson的。无法指写到表备份或者还原。
下面看一个还原 Mongo 数据库的操作案例。
#xttblog 是这个数据库的备份路径
mongorestore -d test /home/mongodb/xttblog
需要注意的是,mongodump 和 mongorestore 两个命令操作文件的格式是和 json 类似的 bson 格式。
mongoexport导出表,或者表中部分字段
命令格式
mongoexport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 -f 字段 -q 条件导出 --csv -o 文件名
上面的参数好理解,重点说一下:
-f 导出指字段,以字号分割,-f name,email,age导出name,email,age这三个字段
-q 可以根查询条件导出,-q '{ "uid" : "100" }' 导出uid为100的数据
--csv 表示导出的文件格式为csv的,这个比较有用,因为大部分的关系型数据库都是支持csv,在这里有共同点
导出整张表
mongoexport -d tank -c users -o /root/dump/users.dat
导出表中部分字段
mongoexport -d tank -c users --csv -f uid,name,sex -o /root/dump/users.csv
根据条件导出数据
Mongodb mongoexport -q 使用
需要注意以下两点
-q后面的参数一定要写成标准的json格式,如果怕自己写的不对,可以在http://www.bejson.com/解析工具验证一下- 一定要将json用单引号包起来,放在
-q的后面 例如'{"created_at":{"$gte":1624377600,"$lt":1624464000}}'
[root@localhost mongodb]# mongoexport -d tank -c users -q '{"created_at":{"$gte":1624377600,"$lt":1624464000}}' -o /root/dump/users.json
mongoimport导入表,或者表中部分字段
命令格式
还原整表导出的非csv文件
mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --upsert --file=文件名
重点说一下--upsert,其他参数上面的命令已有提到,--upsert 插入或者更新现有数据
还原部分字段的导出文件
mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --upsertFields 字段 --file=文件名
--upsertFields 同 --upsert 一样
还原导出的csv文件
mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --type 类型 --headerline --upsert --file=文件名
上面三种情况,还可以有其他排列组合的。
还原导出的表数据
mongoimport -d tank -c users --upsert tank/users.dat
部分字段的表数据导入
mongoimport -d tank -c users --upsertFields uid,name,sex tank/users.dat
还原csv文件
mongoimport -d tank -c users --type csv --headerline --file tank/users.csv
#还原导出的表数据
mongoimport -d xttblog -c users --upsert xttblog/users.dat
#部分字段的表数据导入
mongoimport -d xttblog -c users --upsertFields uid,name,sex xttblog/users.dat
#还原csv文件
mongoimport -d xttblog -c users --type csv --headerline --file xttblog/users.csv
总体感觉,mongodb的备份与还原,还是挺强大的,就是有点麻烦。
mongodb 数据库操作——备份 还原 导出 导入的更多相关文章
- mongodb 数据库操作--备份 还原 导出 导入(转)
mongodb 数据库操作--备份 还原 导出 导入 -------------------MongoDB数据导入与导出------------------- 1.导出工具:mongoexport ...
- mongodb 数据库操作--备份 还原 导出 导入
mongodb数据备份和还原主要分为二种,一种是针对于库的mongodump和mongorestore,一种是针对库中表的mongoexport和mongoimport 一,mongodump备份数据 ...
- mongodb数据库操作--备份 还原 导出 导入
首先数据库备份: mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径 mongodump -h 127.0.0.1 -u admin -p ...
- mongodb 备份 还原 导出 导入
张映 发表于 2013-12-03 分类目录: nosql 标签:mongodb, 备份, 导入, 导出, 还原 mongodb数据备份和还原主要分为二种,一种是针对于库的mongodump和mong ...
- Mongodb 备份 还原 导出 导入 等批量操作
mongodb数据备份和还原主要分为二种,一种是针对于库的mongodump和mongorestore,一种是针对库中表的mongoexport和mongoimport. 一,mongodump备份数 ...
- mongoDB 数据库操作
mongoDB 数据库操作 数据库命名规则 . 使用 utf8 字符,默认所有字符为 utf8 . 不能含有空格 . / \ "\0" 字符 (c++ 中会将 "\0&q ...
- SQL Server 数据库使用备份还原造成的孤立用户和对象名‘xxx’无效的错误的解决办法
SQL Server 数据库使用备份还原造成的孤立用户和对象名‘xxx’无效的错误的解决办法 在使用数据库的过程中,经常会遇到数据库迁移或者数据迁移的问题,或者有突然的数据库损坏,这时需要从数据库的备 ...
- sql 数据库的备份还原问题
今天工作中犯了一个严重的错误,就是在sql中写了一个update语句,还没写条件呢,结果误按了F5,唉,太佩服自己啦...这个脑子怎么不管用了呢?? 唉不说了,我在网上翻来覆去的找资料,最终想是不是可 ...
- sql数据库的备份还原问题
sql数据库的备份还原问题 今天工作中犯了一个严重的错误,就是在sql中写了一个update语句,还没写条件呢,结果误按了F5,唉,太佩服自己啦...这个脑子怎么不管用了呢?? 唉不说了,我在网上翻来 ...
- C#实现对数据库的备份还原(完全)
C#实现对数据库的备份还原 ( 用SQL语句实现对数据库备份还原操作 备份SqlServer数据库: backup database 数据库名 to disk (备份文件存放路径+文件名).bak 还 ...
随机推荐
- Qt编写ffmpeg本地摄像头显示(16路本地摄像头占用3.2%CPU)
一.前言 内核ffmpeg除了支持本地文件.网络文件.各种视频流播放以外,还支持打开本地摄像头,和正常的解析流程一致,唯一的区别就是在avformat_open_input第三个参数传入个AVInpu ...
- Qt编写的项目作品9-音频综合应用示例
一.功能特点 自动计算音频振幅,绘制音频振幅曲线和音频数据曲线. 支持音频录制,可选音频输入设备.采样频率.通道等参数,Qt5默认保存wav格式,Qt6默认保存mp3格式,Qt6可选wma.aac等格 ...
- 从零开始构建一个基于大模型和 RAG 的知识库问答系统
SimpleAbdQA 本项目所使用的大模型为:qwen1.8b 演示中所使用Embedding为:Word2vec 一.介绍 通过从本项目中,你可以得到: 了解基于大模型的本地知识库的运作原理 了解 ...
- 混合云网络过于复杂?ENS给你全局一张网的极致体验
本文分享自华为云社区<[华为云Stack][大架光临]第19期:混合云网络过于复杂?ENS给你全局一张网的极致体验>,作者:华为云Stack ENS研发团队. 政企IT的混合形态 经过几十 ...
- python基础学习6和7
模块类与对象 模块 内置模块 time, random, os, json 第三方模块 requests, pandas, numpy,.... 自定义模块 xxx.py 常见的内置模块 hashli ...
- 使用binlog+canal或binlake进行数据库的复制
前言在进行冷热分离的时候,需要将数据实时的复制在历史数据库中,我们使用的是binlog+canal的思想,将每次数据库数据的变更转换成消息发出来,然后再操作这些消息达到数据复制的在京东,实现同样功能的 ...
- Pipe pg walkthrough Intermediate
NAMP ┌──(root?kali)-[~] └─# nmap -p- -A 192.168.128.45 Starting Nmap 7.95 ( https://nmap.org ) at 20 ...
- Hutch PG walkthrough Intermediate window
NMAP └─# nmap -p- -A -sS 192.168.196.122 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-16 01 ...
- Drawable图形定制
设置背景设置背景 button或者textview我们想要自定义他的背景就需要用到Drawable中创建xml文件 例如 shape标签是用来控制背景的形状的 他下面的子标签有 stroke控制描边 ...
- 配置计算节点之间的SSH
本文分享自天翼云开发者社区<配置计算节点之间的SSH>,作者:y****n 如果在管理程序之间调整或迁移实例,可能会遇到SSH(拒绝权限)错误.请确保每个节点都配置了SSH密钥验证,以便C ...