MongoDB 是一个高性能,开源,无模式的文档型数据库,是当前 NoSQL 数据库产品中最热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式,MongoDB 使用 C++开发。MongoDB 的官方网站地址是:http://www.mongodb.org/
【0】
对于数据量比较小的场景,使用官方的mongodump/mongorestore工具进行全量的备份和恢复就足够了。mongodump可以连上一个正在服务的mongod节点进行逻辑热备份。其主要原理是遍历所有集合,然后将文档一条条读出来,支持并发dump多个集合,并且支持归档和压缩,可以输出到一个文件(或标准输出)(对原理感兴趣可以参见两篇文章Mongodump的archive(归档)模式原理解析以及Mongorestore的archive(归档)模式恢复原理解析)。同样,mongorestore则是连上一个正在服务的mongod节点进行逻辑恢复。其主要原理是将备份出来的数据再一条条写回到数据库中。
MongoDB数据库备份
语法: mongodump -h dbhost -d dbname -o dbdirectory
-h: MongoDB所在服务器地址,例如:127.0.0.1, 也可以指定端口号:127.0.0.1:27017
-d: 需要备份的数据库实例,例如下图中的law_nlp数据库
-o: 备份数据存放的位置,例如:c:\data\dump
备份过程:
内存使用情况,单位M
查看磁盘空间剩余信息
Filesystem文件系统 Size容量 Used已用 Avial可用 Use%已用% Mounted on挂载点
所以可以把数据备份到/data路径下,那里有足够的存储空间。
(个人注:在 /usr/mongodb-linux-x86_64-rhe62-4.0.4/dump/law_nlp 有一部分数据; 在/home/mongodump/law_nlp 有最新的全部数据)
vim /etc/ profile 查看mongodb位置
进入到mongodb的bin目录
vim mongodb.conf 查看数据存放位置
查看Mongodb里的数据
数据库备份 mongodump -h dbhost -d law_nlp -o /data/yao_mongo/
备份后的部分数据
什么是.bson?
BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和BinData类型。
BSON可以做为网络数据交换的一种存储形式,这个有点类似于Google的Protocol Buffer,但是BSON是一种schema-less的存储形式,它的优点是灵活性高,但它的缺点是空间利用率不是很理想,
BSON有三个特点:轻量性、可遍历性、高效性
{“hello":"world"} 这是一个BSON的例子,其中"hello"是key name,它一般是cstring类型,字节表示是cstring::= (byte*) "/x00" ,其中*表示零个或多个byte字节,/x00表示结束符;后面的"world"是value值,它的类型一般是string,double,array,binarydata等类型。
【了解更多】:MongoDB之bson的介绍
【了解更多】:json与bson的区别
数据表导出 mongoexport -d dbname -c collectionname -o file --type json/csv -f filed
-d:数据库名
-c:collection名
-o:输出的文件名
--type:输出的格式,默认为json
-f:输出的字段,如果--type为csv,则需要加上-f"字段名"
eg:mongoexport -d mongotest -c users -o /home/data/usr.csv --type csv -f "_id,user_id,user_name,age,status"
若出现 Failed:EOF 则是mongo服务被关了
网友评论