MongoDB的日常使用

一、 查看collection和db信息:
1.查看DB以及DB空间大小:
show dbs
2.选择DB:
use hoss
3.查看DB中的collections:
show collections

二、查看collection使用大小:
1.查看DB给collection分配的大小。相当于oracle的segment大小:
db.fs.files.storageSize()
2.查看collection实际使用的大小。相当于oracle的HWR之下的:
db.fs.files.dataSize()
block,即已使用的block
3.查看collection的大小(storageSize)与索引大小的总和:
db.fs.files.totalSize()
4.查看collection的详细信息:
db.fs.files.stats()

三、 删除collection和db:
1.删除当前数据库:
db.dropDatabase()
2.删除当前collection的索引:
db.mycoll.dropIndexes()
3.删除当前collection
db.mycoll.drop()

四、检查同步状态
db.printReplicationInfo()
db.printSlaveReplicationInfo()
haowu:SECONDARY> db.printReplicationInfo()
configured oplog size: 4096MB
log length start to end: 449727secs (124.92hrs)
oplog first event time: Thu Dec 11 2014 11:00:40 GMT+0800 (CST)
oplog last event time: Tue Dec 16 2014 15:56:07 GMT+0800 (CST)
now: Tue Dec 16 2014 15:56:57 GMT+0800 (CST)

haowu:SECONDARY> db.printSlaveReplicationInfo()
source: 172.16.10.40:27017
syncedTo: Tue Dec 16 2014 15:56:07 GMT+0800 (CST)
= 55 secs ago (0.02hrs)
source: 172.16.10.22:27017
no replication info, yet. State: ARBITER

只要 oplog last event time 和 syncedTo 一致,就代表没有同步延迟

五、备份和恢复操作:
1.备份:mongodump
mongodump使用的是普通的查询机制(无锁定),所以产生的备份不一定是服务器数据的实时快照,即当运行备份同时有客户端写入数据,该数据就不会备份到磁盘,备份时的查询会对其他客户端的性能产生不利的影响。即可对运行的数据库使用,也可对未运行的数据使用。
如果想要获取一致的备份,可以使用命令 db.fsyncLock() 给数据库加锁,阻塞写操作,备份结束后使用命令 db.fsyncUnlock() 解锁。
例:
备份数据库:
mongodump -d test -o ./backup

2.恢复:mongorestore
使用 mongorestore 命令来恢复数据,数据源是 mongodump 命令产生的文件
恢复所有数据:
./mongorestore –drop /opt/backup/mongodb
恢复数据库:
./mongorestore -d test –drop /opt/backup/mongodb/test/
恢复集合:
./mongorestore -d test -c wu –drop /opt/backup/mongodb/test/wu.bson

六、导入和导出操作:
1.导出:mongoexport
使用mongoexport命令导出的数据是文本模式,用户可读的。
导出的粒度就是集合,也只是集合,不能导出某个数据库。
导出的数据格式可以有三种:json,csv,jsonArray。
使用最多的就是json和csv。
例:
mongoexport –port 27018 -d test -c test -o test.json

2.导入:mongoimport
mongoimport命令也只能导入集合。
默认导入json格式的文件。
如果是csv,需要使用–type来指定,并配合–headerline参数。
例:
mongoimport -d test -c test –drop –type csv –headerline –file ~/test.csv

Author: Michael

关注数据分析,挖掘数据金矿。

Leave a Reply

Your email address will not be published. Required fields are marked *