楼主: jieforest

Mongodb的复制集集群

[复制链接]
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
11#
 楼主| 发表于 2015-7-25 23:25 | 只看该作者
在所有节点上可以查看Replica Sets 的配置信息:
  1. 1. PRIMARY> rs.conf()
  2. 2. {
  3. 3.     "_id" : "shard1",
  4. 4.     "version" : 1,
  5. 5.     "members" : [
  6. 6.         {
  7. 7.             "_id" : 0,
  8. 8.             "host" : "192.168.8.30:27021"
  9. 9.         },
  10. 10.                 {
  11. 11.                     "_id" : 1,
  12. 12.                     "host" : "192.168.8.31:27021"
  13. 13.                 },
  14. 14.                 {
  15. 15.                     "_id" : 2,
  16. 16.                     "host" : "192.168.8.32:27021",
  17. 17.                     "shardOnly" : true
  18. 18.                 }
  19. 19.             ]
  20. 20.         }
复制代码

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
12#
 楼主| 发表于 2015-7-25 23:25 | 只看该作者
2.配置shard2用到的replica sets
  1. 1. [root@mongo02 sh]# mongo 192.168.8.30:27022
  2. 2. MongoDB shell version: 2.0.5
  3. 3. connecting to: 192.168.8.30:27022/test
  4. 4. > config = {_id: 'shard2', members: [
  5. 5.     {_id: 0, host: '192.168.8.30:27022'},
  6. 6.     {_id: 1, host: '192.168.8.31:27022'},
  7. 7.     {_id: 2, host: '192.168.8.32:27022'}]
  8. 8.     }
  9. 9. > config = {_id: 'shard2', members: [
  10. 10.         ... {_id: 0, host: '192.168.8.30:27022'},
  11. 11.         ... {_id: 1, host: '192.168.8.31:27022'},
  12. 12.         ... {_id: 2, host: '192.168.8.32:27022'}]
  13. 13.         ... }
  14. 14.         {
  15. 15.             "_id" : "shard2",
  16. 16.             "members" : [
  17. 17.                 {
  18. 18.                     "_id" : 0,
  19. 19.                     "host" : "192.168.8.30:27022"
  20. 20.                 },
  21. 21.                 {
  22. 22.                     "_id" : 1,
  23. 23.                     "host" : "192.168.8.31:27022"
  24. 24.                 },
  25. 25.                 {
  26. 26.                     "_id" : 2,
  27. 27.                     "host" : "192.168.8.32:27022"
  28. 28.                 }
  29. 29.             ]
  30. 30.         }
  31. 31.           
  32. 32.         > rs.initiate(config)
  33. 33.         {
  34. 34.             "info" : "Config now saved locally.  Should come online in about a minute.",
  35. 35.             "ok" : 1
  36. 36.         }
复制代码

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
13#
 楼主| 发表于 2015-7-25 23:25 | 只看该作者
验证节点:
  1. 1. > rs.status()
  2. 2. {
  3. 3.     "set" : "shard2",
  4. 4.     "date" : ISODate("2012-06-07T11:43:47Z"),
  5. 5.     "myState" : 2,
  6. 6.     "members" : [
  7. 7.         {
  8. 8.             "_id" : 0,
  9. 9.             "name" : "192.168.8.30:27022",
  10. 10.                     "health" : 1,
  11. 11.                     "state" : 1,
  12. 12.                     "stateStr" : "PRIMARY",
  13. 13.                     "optime" : {
  14. 14.                         "t" : 1341367921000,
  15. 15.                         "i" : 1
  16. 16.                     },
  17. 17.                     "optimeDate" : ISODate("2012-06-07T11:43:40Z"),
  18. 18.                     "self" : true
  19. 19.                 },
  20. 20.                 {
  21. 21.                     "_id" : 1,
  22. 22.                     "name" : "192.168.8.31:27022",
  23. 23.                     "health" : 1,
  24. 24.                     "state" : 2,
  25. 25.                     "stateStr" : "SECONDARY",
  26. 26.                     "uptime" : 50,
  27. 27.                     "optime" : {
  28. 28.                         "t" : 1341367921000,
  29. 29.                         "i" : 1
  30. 30.                     },
  31. 31.                     "optimeDate" : ISODate("1970-01-01T00:00:00Z"),
  32. 32.                     "lastHeartbeat" : ISODate("2012-06-07T11:43:46Z"),
  33. 33.                     "pingMs" : 0,
  34. 34.                 },
  35. 35.                 {
  36. 36.                     "_id" : 2,
  37. 37.                     "name" : "192.168.8.32:27022",
  38. 38.                     "health" : 1,
  39. 39.                     "state" : 2,
  40. 40.                     "stateStr" : "SECONDARY",
  41. 41.                     "uptime" : 81,
  42. 42.                     "optime" : {
  43. 43.                         "t" : 1341373254000,
  44. 44.                         "i" : 1
  45. 45.                     },
  46. 46.                     "optimeDate" : ISODate("2012-06-07T11:41:00Z"),
  47. 47.                     "lastHeartbeat" : ISODate("2012-06-07T11:43:46Z"),
  48. 48.                     "pingMs" : 0,
  49. 49.                 }
  50. 50.             ],
  51. 51.             "ok" : 1
  52. 52.         }
  53. 53.         PRIMARY>  
复制代码

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
14#
 楼主| 发表于 2015-7-25 23:26 | 只看该作者
到此就配置好了二个replica sets!

PS: 初始化时,不指定priority默认id 0 为primary



状态中关键数据位:

在用 rs.status()查看replica sets状态时,

state:1表示该host是当前可以进行读写,2:不能读写

health:1表示该host目前是正常的,0:异常

注意:初使化replica sets时也可以用这种方法:
  1. db.runCommand({"replSetInitiate":{"_id":"shard1","members":[{"_id":0,"host":"192.168.8.30:27021"},{"_id":1,"host":"192.168.8.31:27021"},{"_id":2,"host":"192.168.8.32:27021","shardOnly":true}]}})
复制代码
可以省略用rs.initiate(config)。

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
15#
 楼主| 发表于 2015-7-25 23:27 | 只看该作者
四、配置三台config server

分别在各服务器上运行(启动都一样):
  1. /opt/mongodb/bin/mongod --configsvr --dbpath /data0/mongodb/db/config --port 20000 --logpath /data0/mongodb/logs/config.log --logappend --fork --directoryperdb
复制代码
用脚本形式:
  1. 1. [root@mongo01 sh]# cat config.sh  
  2. 2. /opt/mongodb/bin/mongod --configsvr --dbpath /data0/mongodb/db/config --port 20000 --logpath /data0/mongodb/logs/config.log --logappend --fork --directoryperdb
  3. 3. [root@mongo01 sh]# pwd
  4. 4. /opt/mongodb/sh
  5. 5. [root@mongo01 sh]# ./config.sh
复制代码

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
16#
 楼主| 发表于 2015-7-26 10:57 | 只看该作者
然后在各节点查看有没有启动起来:
  1. 1. [root@mongo01 sh]# ps aux |grep mong
  2. 2. root     25343  0.9  6.8 737596 20036 ?        Sl   19:32   0:12 /opt/mongodb/bin/mongod -shardsvr -replSet shard1 -port 27021 -dbpath /data0/mongodb/db/shard1 -oplogSize 100 -logpath /data0/mongodb/logs/shard1.log -logappend --maxConns 10000 --quiet -fork --directoryperdb
  3. 3. root     25351  0.9  7.0 737624 20760 ?        Sl   19:32   0:11 /opt/mongodb/bin/mongod -shardsvr -replSet shard2 -port 27022 -dbpath /data0/mongodb/db/shard2 -oplogSize 100 -logpath /data0/mongodb/logs/shard2.log -logappend --maxConns 10000 --quiet -fork --directoryperdb
  4. 4. root     25669 13.0  4.7 118768 13852 ?        Sl   19:52   0:07 /opt/mongodb/bin/mongod --configsvr --dbpath /data0/mongodb/db/config --port 20000 --logpath /data0/mongodb/logs/config.log --logappend --fork --directoryperdb
  5. 5. root     25695  0.0  0.2  61220   744 pts/3    R+   19:53   0:00 grep mong
复制代码

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
17#
 楼主| 发表于 2015-7-26 10:57 | 只看该作者
五、配置mongs(启动路由)

分别在206、207服务器上运行(也可以在所有节点上启动):
  1. /opt/mongodb/bin/mongos -configdb 192.168.8.30:20000,192.168.8.31:20000,192.168.8.32:20000 -port 30000 -chunkSize 50 -logpath /data0/mongodb/logs/mongos.log -logappend -fork
复制代码

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
18#
 楼主| 发表于 2015-7-26 10:58 | 只看该作者
用脚本形式:
  1. 1. [root@mongo01 sh]# cat mongos.sh  
  2. 2. /opt/mongodb/bin/mongos -configdb 192.168.8.30:20000,192.168.8.31:20000,192.168.8.32:20000 -port 30000 -chunkSize 50 -logpath /data0/mongodb/logs/mongos.log -logappend -fork
  3. 3. [root@mongo01 sh]# pwd
  4. 4. /opt/mongodb/sh
  5. 5. [root@mongo01 sh]# ./mongos.sh  
  6. 6. [root@mongo01 sh]# ps aux |grep mong
  7. 7. root     25343  0.8  6.8 737596 20040 ?        Sl   19:32   0:13 /opt/mongodb/bin/mongod -shardsvr -replSet shard1 -port 27021 -dbpath /data0/mongodb/db/shard1 -oplogSize 100 -logpath /data0/mongodb/logs/shard1.log -logappend --maxConns 10000 --quiet -fork --directoryperdb
  8. 8. root     25351  0.9  7.0 737624 20768 ?        Sl   19:32   0:16 /opt/mongodb/bin/mongod -shardsvr -replSet shard2 -port 27022 -dbpath /data0/mongodb/db/shard2 -oplogSize 100 -logpath /data0/mongodb/logs/shard2.log -logappend --maxConns 10000 --quiet -fork --directoryperdb
  9. 9. root     25669  2.0  8.0 321852 23744 ?        Sl   19:52   0:09 /opt/mongodb/bin/mongod --configsvr --dbpath /data0/mongodb/db/config --port 20000 --logpath /data0/mongodb/logs/config.log --logappend --fork --directoryperdb
  10. 10.         root     25863  0.5  0.8  90760  2388 ?        Sl   20:00   0:00 /opt/mongodb/bin/mongos -configdb 192.168.8.30:20000,192.168.8.31:20000,192.168.8.32:20000 -port 30000 -chunkSize 50 -logpath /data0/mongodb/logs/mongos.log -logappend -fork
  11. 11.         root     25896  0.0  0.2  61220   732 pts/3    D+   20:00   0:00 grep mong
复制代码

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
19#
 楼主| 发表于 2015-7-26 10:58 | 只看该作者
注意:

1). mongos里面的ip和端口是config服务的ip和端口:192.168.8.30:20000,192.168.8.31:20000,192.168.8.32:20000

2). 必须先启动config后(并且config启动正常后,有config的进程存在)再启动mongos

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
20#
 楼主| 发表于 2015-7-26 10:58 | 只看该作者
六、配置shard集群

1.连接一台路由
  1. 1. [root@mongo01 sh]# mongo 192.168.8.30:30000/admin
  2. 2. MongoDB shell version: 2.0.5
  3. 3. connecting to: 192.168.8.30:30000/admin
  4. 4. mongos>  
复制代码
2.加入shards
  1. 1. mongos> db.runCommand({ addshard : "shard1/192.168.8.30:27021,192.168.8.31:27021,192.168.8.32:27021",name:"shard1",maxSize:20480})
  2. 2. { "shardAdded" : "shard1", "ok" : 1 }
  3. 3. mongos> db.runCommand({ addshard : "shard2/192.168.8.30:27022,192.168.8.31:27022,192.168.8.32:27022",name:"shard2",maxSize:20480})
  4. 4. { "shardAdded" : "shard2", "ok" : 1 }
复制代码

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表