mongodb 数据库操作--备份 还原 导出 导入

一,mongodump备份数据库

1,常用命令格


1

mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径

如果没有用户谁,可以去掉-u和-p。 如果导出本机的数据库,可以去掉-h。 如果是默认端口,可以去掉--port。 如果想导出所有数据库,可以去掉-d。

2,导出所有数据库


1

2

3

4

5

6

7

8

9

10

[[email protected] mongodb]# mongodump -h 127.0.0.1 -o /home/zhangy/mongodb/

connected to: 127.0.0.1

Tue Dec 3 06:15:55.448 all dbs

Tue Dec 3 06:15:55.449 DATABASE: test   to   /home/zhangy/mongodb/test

Tue Dec 3 06:15:55.449   test.system.indexes to /home/zhangy/mongodb/test/system.indexes.bson

Tue Dec 3 06:15:55.450     1 objects

Tue Dec 3 06:15:55.450   test.posts to /home/zhangy/mongodb/test/posts.bson

Tue Dec 3 06:15:55.480     0 objects

 

。。。。。。。。。。。。。。。。。。。。省略。。。。。。。。。。。。。。。。。。。。。。。。。。

3,导出指定数据库


1

2

3

4

5

6

7

8

9

10

11

[[email protected] mongodb]# mongodump -h 192.168.1.108 -d tank -o /home/zhangy/mongodb/

connected to: 192.168.1.108

Tue Dec 3 06:11:41.618 DATABASE: tank   to   /home/zhangy/mongodb/tank

Tue Dec 3 06:11:41.623   tank.system.indexes to /home/zhangy/mongodb/tank/system.indexes.bson

Tue Dec 3 06:11:41.623     2 objects

Tue Dec 3 06:11:41.623   tank.contact to /home/zhangy/mongodb/tank/contact.bson

Tue Dec 3 06:11:41.669     2 objects

Tue Dec 3 06:11:41.670   Metadata for tank.contact to /home/zhangy/mongodb/tank/contact.metadata.json

Tue Dec 3 06:11:41.670   tank.users to /home/zhangy/mongodb/tank/users.bson

Tue Dec 3 06:11:41.685     2 objects

Tue Dec 3 06:11:41.685   Metadata for tank.users to /home/zhangy/mongodb/tank/users.metadata.json

三,mongorestore还原数据库

1,常用命令格式


1

mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 --drop 文件存在路径

--drop的意思是,先删除所有的记录,然后恢复。

2,恢复所有数据库到mongodb中


1

[[email protected] mongodb]# mongorestore /home/zhangy/mongodb/  #这里的路径是所有库的备份路径

3,还原指定的数据库


1

2

3

[[email protected] mongodb]# mongorestore -d tank /home/zhangy/mongodb/tank/  #tank这个数据库的备份路径

 

[[email protected] mongodb]# mongorestore -d tank_new /home/zhangy/mongodb/tank/  #将tank还有tank_new数据库中

这二个命令,可以实现数据库的备份与还原,文件格式是json和bson的。无法指写到表备份或者还原。

四,mongoexport导出表,或者表中部分字段

1,常用命令格式


1

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,在这里有共同点

2,导出整张表


1

2

3

[[email protected] mongodb]# mongoexport -d tank -c users -o /home/zhangy/mongodb/tank/users.dat

connected to: 127.0.0.1

exported 4 records

3,导出表中部分字段


1

2

3

[[email protected] mongodb]# mongoexport -d tank -c users --csv -f uid,name,sex -o tank/users.csv

connected to: 127.0.0.1

exported 4 records

4,根据条件敢出数据


1

2

3

[[email protected] mongodb]# mongoexport -d tank -c users -q ‘{uid:{$gt:1}}‘ -o tank/users.json

connected to: 127.0.0.1

exported 3 records

五,mongoimport导入表,或者表中部分字段

1,常用命令格式

1.1,还原整表导出的非csv文件 mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --upsert --drop 文件名  重点说一下--upsert,其他参数上面的命令已有提到,--upsert 插入或者更新现有数据 1.2,还原部分字段的导出文件 mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --upsertFields 字段 --drop 文件名  --upsertFields根--upsert一样 1.3,还原导出的csv文件 mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --type 类型 --headerline --upsert --drop 文件名  上面三种情况,还可以有其他排列组合的。

2,还原导出的表数据


1

2

3

[[email protected] mongodb]# mongoimport -d tank -c users --upsert tank/users.dat

connected to: 127.0.0.1

Tue Dec 3 08:26:52.852 imported 4 objects

3,部分字段的表数据导入

[[email protected] mongodb]# mongoimport -d tank -c users  --upsertFields uid,name,sex  tank/users.dat  connected to: 127.0.0.1  Tue Dec  3 08:31:15.179 imported 4 objects

4,还原csv文件


1

2

3

[[email protected] mongodb]# mongoimport -d tank -c users --type csv --headerline --file tank/users.csv

connected to: 127.0.0.1

Tue Dec 3 08:37:21.961 imported 4 objects

总体感觉,mongodb的备份与还原,还是挺强大的,虽然有点麻烦。

时间: 2024-08-24 02:14:13

mongodb 数据库操作--备份 还原 导出 导入的相关文章

mongodb数据库操作--备份 还原 导出 导入

首先数据库备份: mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径  mongodump -h 127.0.0.1 -u admin -p xxx -d blog -o '/home/timeless/桌面/mongodump' --authenticationDatabase admin 注意  --authenticationDatabase  参数制定认证数据库   否则会提示错误: Failed: error connecti

mongodb 备份 还原 导出 导入

张映 发表于 2013-12-03 分类目录: nosql mongodb数据备份和还原主要分为二种,一种是针对于库的mongodump和mongorestore,一种是针对库中表的mongoexport和mongoimport. 一,mongodump备份数据库 1,常用命令格 mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径 如果没有用户谁,可以去掉-u和-p.如果导出本机的数据库,可以去掉-h.如果是默认端口,可以去掉--por

吐槽阿里云数据库的备份还原

阿里云数据库RDS备份还原问题终于解决了.我会告诉你其实不用看他们的文档,直接还原就可以了吗? 详情如下: 我严格按照文档操作的,后来数据库启动过几秒后即崩溃,有两个错误,先解决了一个,后来一个用了各种办法都解决不了. 于是只好留言阿里云的客服,我着重强调了严格按照文档,并提交了崩溃信息. 结果客服说,请按文档操作,好吧. 后来看了一下阿里云提供的工具,一个导出脚本居然1M多,我的天,什么脚本这么大.于是看了一下代码,就是个简单的解压操作, 后面塞了一堆二进制,让人以为很高端,其实普通的解压软件

Powershell管理系列(二十六)PowerShell操作之批量导出&导入邮箱

-----提供AD\Exchange\Lync\Sharepoint\CRM\SC\O365等微软产品实施及外包,QQ:185426445.电话18666943750 项目中有时候做跨林邮箱迁移的时候,条件不成熟,比如安全考虑或者其他考虑,不能做双林信任,这样就提出了一个问题,历史邮件需要使用的话怎么办,一个简单高效的解决办法就是从源森林批量导出邮件为.pst文件,在批量导入到目的域森林,具体操作如下: 1.赋予管理账号邮件导入导出权限,命令如下: cls whoami New-Manageme

MongoDB 数据库操作

MongoDB 数据库操作: 查看数据库,如果数据库内容为空,不会显示 show dbs > show dbs admin 0.000GB config 0.000GB local 0.000GB 切换指定的数据库 use <dbname> use admin > use admin switched to db admin 如果数据库存在,则切换到这个数据库:如果数据库不存在,则创建该数据库,另外,如果什么都不操作离开的话,这个库就会被系统删除,所以我们可以往里插入一张数据表:d

第二百九十节,MySQL数据库-MySQL命令行导出导入数据库,数据库备份还原

MySQL命令行导出导入数据库,数据库备份还原 MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin(或者直接将windows的环境变量path中添加该目录) 2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 如我输入的命令行:mysqldump -u root -p news > news.sql

MongoDB基本操作、备份还原及用户管理

今日趁周末得空,将近日在学习的MongoDB数据库常用命令作以下整理,方便工作中查看 MongoDB的逻辑结构主要由文档.集合和数据库三部分组成.其中文档是MongoDB的核心概念,它是MongoDB逻辑存储的最小单元,相当于关系型数据库中的一行记录,多个文档组成集合,集合相当于关系型数据库中的表,多个集合组成数据库. SQL术语 说明 MongoDB术语 说明 database 数据库 database 数据库 table 数据库表 collection 集合 row 记录 document

数据库的备份还原

数据库的复制与附加 (一)分离: 1.把SqlServer服务停了,把.mdf和.ldf,ndf复制出来.然后再启动服务. 2.在SQLServer的操作界面中,右击要复制的数据库--所有任务--分离.把.mdf和.ldf,ndf复制出来. (二)附加 在SQLServer对象资源管理器中,在"数据库"上右击--选择"附加"--在弹出的窗口选择要附加.mdf文件,点击确定. 注意:两个文件.mdf和.ldf要有访问权限.Everyone完全控制.     数据库的备

C#中MySQL数据库的备份 还原 初始化

// 执行创建数据库操作 this.GetExecute(G_Con, "create database if not exists NEWDB"); this.sqlAddress = " -h " + IP + " -u" + User + " -p" + Password + " NEWDB "; // 数据库的备份 private void btn_Dump_Click(object sender,