转 -- Mongodb管理与维护手册

原址如下:

http://www.itpub.net/thread-1739455-1-1.html

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.132.74.35  --port 27017 -d mytest -o /data/mytest.bak

7. MongoDB恢复

mongorestore

/usr/local/mongo/bin/mongodump -h 10.132.74.35  --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("iport"

15. 移除复制集成员

在PRIMARY实例的session中执行:rs.remove("iport"

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 iport,iport,iport --chunkSize 1 --logpath /data1/mongodata/log/mongo.log --logappend --port 27017 --fork

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

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

② 配置文件方式

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

configdb= iport,iport,iport

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/iport,iport,iport"})

……

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/iport,iport,iport"})

23. 移除sharding集群

在mongos实例的session中执行:

use admin

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

备注:如果将要被移除的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之间不存在认证关系。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值