MongoDB学习笔记

MongoDB管理与维护手册

1. MongoDB概略.................................................................................................................................................... 3

2. MongoDB的安装................................................................................................................................................ 3

3. MongoDB的启动................................................................................................................................................ 3

4. MongoDB关闭.................................................................................................................................................... 4

5. 启动MongoDB Console.................................................................................................................................. 4

6. MongoDB一致性备份........................................................................................................................................ 4

7. MongoDB恢复.................................................................................................................................................... 5

8. MongoDB状态.................................................................................................................................................... 5

9. 监控MongoDB进程.......................................................................................................................................... 8

10. 监控MongoDB使用的内存情况.................................................................................................................... 8

11. 释放MongoDB占用的内存............................................................................................................................ 9

12. 建立RepSer复制集.......................................................................................................................................... 9

13. replSet复制集的状态...................................................................................................................................... 10

14. 增加复制集成员................................................................................................................................................ 11

15. 移除复制集成员................................................................................................................................................ 11

16. 建立Sharding集群......................................................................................................................................... 11

17. 配置ConfigSvr................................................................................................................................................ 12

18. 配置mongos................................................................................................................................................... 13

19. 配置sharding集群......................................................................................................................................... 14

20. 激活分片............................................................................................................................................................ 14

21. Sharding状态.................................................................................................................................................. 14

22. 添加sharding集群......................................................................................................................................... 15

23. 移除sharding集群......................................................................................................................................... 15

24. 常见故障处理.................................................................................................................................................... 15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.     MongoDB概略

高性能、开源、无模式的文档数据库。

官方网址:http://www.mongodb.org/

2.     MongoDB的安装

在官方下载操作系统版本对应的MongoDB版本,解压即可。

3.     MongoDB的启动

进入解压后的MongoDB目录,运行其bin目录下的mongod:

① 命令行方式

/usr/local/mongodb-linux-x86_64-static-legacy-2.0.2/bin/mongod--dbpath [datafile directory] --logpath [log file directory] --logappend--journal --oplogSize [N] --port [port] --fork

例如:/usr/local/mongodb-linux-x86_64-static-legacy-2.0.2/bin/mongod--dbpath /data1/mongodata/db/ --logpath /data1/mongodata/log/mongo.log--logappend --journal --oplogSize 1 --port 27017 --fork

② 配置文件方式

创建配置文件:vi/etc/mongod.cnf

dbpath= /data1/mongodata/db/

logpath= /data1/mongodata/log/mongo.log

logappend= true

journal= true

oplogSize= 1

port= 27017

fork= true

启动时加上-f参数,指向配置文件即可:

/usr/local/mongodb-linux-x86_64-static-legacy-2.0.2/bin/mongod-f /etc/mongod.cnf

4.     MongoDB关闭

① 在session中直接执行:ctrl+c

② 在admin库中执行db.shutdownServer()命令

use admin

db.shutdownServer()

5.     启动MongoDB Console

/usr/local/mongodb-linux-x86_64-static-legacy-2.0.2/bin/mongo--port 27017

6.     MongoDB一致性备份

mongodump

锁定数据库:

use admin

db.runCommand({"fsync":1,"lock":1})

一致性备份:

/usr/local/mongo/bin/mongodump-h 10.10.10.10  --port 27017 -d mytest -o/data/mytest.bak

7.     MongoDB恢复

mongorestore

/usr/local/mongo/bin/mongodump-h 10.10.10.10  --port 27017 -d mytest/data/mytest.bak

8.     MongoDB状态

db.serverStatus()命令

命令解释可参考KM文档:http://km.oa.com/group/515/articles/show/122020

9.     监控MongoDB进程

ps -ef | grep mongod

10.  监控MongoDB使用的内存情况

执行db.serverStatus().mem

另外,通过mongostat来监控mongodb的内存使用

11.  释放MongoDB占用的内存

use admin

db.runCommand({closeAllDatabases:1})

另外,通过调整内核参数drop caches可以释放缓存

sysctl -w vm.drop_caches=1

12.  建立RepSer复制集

① 命令行方式

/usr/local/mongodb-linux-x86_64-static-legacy-2.0.2/bin/mongod--replSet rs --keyFile /data1/mongodata/key/key.file --dbpath/data1/mongodata/db/ --logpath /data1/mongodata/log/mongo.log --logappend--port 27017 --fork

注意:需要额外添加参数,--replSet(必须的),--keyFile(可选的)

② 配置文件方式

创建配置文件:vi/etc/mongod.cnf

replSet= rs

keyFile= /data1/mongodata/key/key.file

dbpath= /data1/mongodata/db/

logpath= /data1/mongodata/log/mongo.log

logappend= true

port= 27017

fork= true

启动时加上-f参数,指向配置文件即可:

/usr/local/mongodb-linux-x86_64-static-legacy-2.0.2/bin/mongod-f /etc/mongod.cnf

13.  replSet复制集的状态

当有复制集成员出现故障,会有如下的状态信息:

14.  增加复制集成员

同10中提到的,以相同的方式启动实例。

在PRIMARY实例的session中执行:rs.add("ip:port")

15.  移除复制集成员

在PRIMARY实例的session中执行:rs.remove("ip:port")

16.  建立Sharding集群

① 命令行方式

/usr/local/mongodb-linux-x86_64-static-legacy-2.0.2/bin/mongod--shardsvr --replSet rs  --dbpath/data1/mongodata/db/ --logpath /data1/mongodata/log/mongo.log --logappend--port 27017 --fork

注意:需要额外添加参数,--shardsvr(必须的),--replSet(必须的)

② 配置文件方式

创建配置文件:vi/etc/mongodb.cnf

shardsvr= true

replSet= rs

dbpath= /data1/mongodata/db/

logpath= /data1/mongodata/log/mongo.log

logappend= true

port= 27017

fork= true

启动时加上-f参数,指向配置文件即可:

/usr/local/mongodb-linux-x86_64-static-legacy-2.0.2/bin/mongod-f /etc/mongodb.cnf

17.  配置ConfigSvr

① 命令行方式

/usr/local/mongodb-linux-x86_64-static-legacy-2.0.2/bin/mongod--configsvr --dbpath /data1/mongodata/db/ --logpath/data1/mongodata/log/mongo.log --logappend --port 27017 --fork

注意:需要额外添加参数,--configsvr(必须的)

② 配置文件方式

创建配置文件:vi/etc/mongo_config.cnf

configsvr= true

dbpath= /data1/mongodata/db/

logpath= /data1/mongodata/log/mongo.log

logappend= true

port= 27017

fork= true

启动时加上-f参数,指向配置文件即可:

/usr/local/mongodb-linux-x86_64-static-legacy-2.0.2/bin/mongod-f /etc/mongo_config.cnf

18.  配置mongos

① 命令行方式

/usr/local/mongodb-linux-x86_64-static-legacy-2.0.2/bin/mongod--configdb ip:port,ip:port,ip:port --chunkSize 1 --logpath/data1/mongodata/log/mongo.log --logappend --port 27017 --fork

注意:需要额外添加参数,--configdb(必须的),--chunkSize(可选的)

chunkSize指分块的大小,单位是M,默认64M

② 配置文件方式

创建配置文件:vi/etc/mongos.cnf

configdb=ip:port,ip:port,ip:port

chunkSize= 1

logpath= /data1/mongodata/log/mongo.log

logappend= true

port= 27017

fork= true

启动时加上-f参数,指向配置文件即可:

/usr/local/mongodb-linux-x86_64-static-legacy-2.0.2/bin/mongod-f /etc/mongos.cnf

19.  配置sharding集群

在mongos实例中执行:

use admin

db.runCommand({addshard:"rs/ip:port,ip:port,ip:port"})

……

20.  激活分片

use admin

db.runCommand({enablesharding:"test"})

db.runCommand({shardcollection:"test.users",key:{_id:1})

21.  Sharding状态

22.  添加sharding集群

如前面的步骤,在mongos中注册sharding信息,

use admin

db.runCommand({addshard:"rs/ip:port,ip:port,ip:port"})

23.  移除sharding集群

在mongos实例的session中执行:

use admin

db.runCommand({removeshard:"rs/ip:port,ip:port,ip:port"})

备注:如果将要被移除的sharding集群上有数据,系统首先会数据平均分配到其他sharding server上,然后将这个sharding集群踢下线。

24.  常见故障处理

① 如果mongod实例crash掉,当再次启动时出现错误。首先查看mongo.log日志文件(建议启动mongod时指定--logappend参数,该参数会追加的写日志,而不会覆盖)。

***********************
old lock file: /usr/local/www/mongodb/mongod.lock.probably means unclean shutdown
 recommend removing file and running–repair
 see:http://dochub.mongodb.org/core/repair for more information

***********************

此时,需要rm掉mongodata/db/目录下的mongod.locl文件,然后再尝试启动。

② 启动mongod后,关闭启动时的窗口,mongodb就会关闭。

A.命令行启动时加上--fork参数。

B.在配置文件中设置:fork = true

fork表示是否在后台运行。

PS:前面的内容中有用到fork的相关用法。

③ 总结:

replSet之间可以通过keyFile来相互认证。

在多个 mongos 和多个config 的情况下,mongos 与 mongos 之间是平行的存在,也就是说,一个mongos并不知道另外一个 mongos的存在。但是一个 mongos知道所有 config 的存在。

mongos和config之间不存在认证关系。

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值