日期:2014-05-16  浏览次数:20537 次

mongoDB的介绍和相关操作(6)

mongoDB管理工具

http://www.mongodb.org/display/DOCS/Admin+UIs

?

在MongoDB的sharding功能里,Shard Server,用于存储实际的数据块,实际生产环境中一个shard server角色可由几台机器组一个relica set承担,防止主机单点故障

Replica Sets 使用 n 个 Mongod 节点,构建具备自动容错转移(auto-failover)、自动恢复(auto-recovery) 的高可用方案。通常使用 3 个 mongod 实例,或者 2 mongod + 1 arbiter 方案。?

?

(1) 首先启动所需的 Mongod 节点。注意使用 replSet 参数指定 Sets Name。
?
$ sudo ./mongod --fork --logpath /dev/null --dbpath /var/mongodb/0 --port 27017 --replSet myset forked process: 1166 all output going to: /dev/null $ sudo ./mongod --fork --logpath /dev/null --dbpath /var/mongodb/1 --port 27018 --replSet myset forked process: 1173 all output going to: /dev/null $ sudo ./mongod --fork --logpath /dev/null --dbpath /var/mongodb/2 --port 27019 --replSet myset forked process: 1180 all output going to: /dev/null

??
?
dbpath 数据文件路径
?port?端口
logpath log路径,与 Logging 有关的参数除了 --logpath,还有 --logappend 和 --verbose。
?? 默认情况下,Logging 是覆盖模式(overwrite),通过 --logappend 可以添加模式记录日志。
??? 参数 --verbose 设置记录等级,相当于 -v,更多的级别包括 -vv 直到 -vvvvv。与之相对的是 --????quiet,生成最少的日志信息。
replSet 后面是replSet的名字
rest 参数打开 RESTful 操作
以 Daemon 方式运行,需要同时使用 --fork、--logpath 参数。
?
--directoryperdb 参数让系统为每个 DB 创建一个独立子目录。
--config test.conf 如果嫌命令行参数太长,可以考虑使用配置文件。
(2) 使用 mongo 配置 Replica Sets。

$ ./mongo > cfg = { _id: "myset", members: [ ... { _id:0, host:"localhost:27017" }, ... { _id:1, host:"localhost:27018" }, ... { _id:2, host:"localhost:27019" } ... ]} > rs.initiate(cfg) > rs.conf()


?相关配置数据保存在 local 数据库中oplog.rs记录,oplog.rs 是一个固定长度的 capped collection,用于记录 Replica Sets 操作日志。

> show dbs > use local > show collections oplog.rs slaves system.indexes system.replset > db.system.replset.find()


?(3) 可以用 isMaster 和 status 命令查看 Replica Sets 状态。

> rs.isMaster() { "ismaster" : true, "secondary" : false, "hosts" : [ "localhost:27017", "localhost:27019", "localhost:27018" ], "ok" : 1 } > rs.status() { "set" : "myset", "date" : "Sat Aug 21 2010 15:21:13 GMT