麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > MongoDB > 正文

Mongodb集群——分片和集群2高級實例

2020-03-14 13:23:46
字體:
來源:轉載
供稿:網友
前面我們介紹了簡單的集群配置實例。在簡單實例中,雖然MongoDB auto-Sharding解決了海量存儲問題,和動態擴容問題,但是離我們在真實環境下面所需要的高可靠性和高可用性還有一定的距離。
下面我們就介紹一個接近實際的解決方案:
  • Shard:使用Replica Sets,來確保數據的可靠性。通過這個方案,可以在每個節點有數據的備份、實現自動控制容錯轉移和自動恢復
  • Config:使用3個配置服務器,確保元數據完整性
  • Route:配合LVS,實現負載均衡,提高接入性能。
 
1、配置集群目錄
 
數據存儲目錄:
 
[python] view plaincopy
 
  1. $ mkdir -p /home/scotte.ye/data/10001  
  2. $ mkdir -p /home/scotte.ye/data/10002  
  3. $ mkdir -p /home/scotte.ye/data/10003  
  4.   
  5. $ mkdir -p /home/scotte.ye/data/10011  
  6. $ mkdir -p /home/scotte.ye/data/10012  
  7. $ mkdir -p /home/scotte.ye/data/10013  
  8.   
  9. $ mkdir -p /home/scotte.ye/data/config1  
  10. $ mkdir -p /home/scotte.ye/data/config2  
  11. $ mkdir -p /home/scotte.ye/data/config3  
 
日志目錄:
 
[python] view plaincopy
 
  1. $ mkdir -p /home/scotte.ye/data/logs  
 
 
2、配置 Shard Replica Sets
 
配置第一組Sets
 
[python] view plaincopy
 
  1. //10001  
  2. $ ./mongod --shardsvr --fork -logpath=/home/data/logs/null -dbpath=/home/data/10001/ -port=10001 --nohttpinterface --replSet set1  
  3.   
  4. //10002  
  5. $ ./mongod --shardsvr --fork -logpath=/home/data/logs/null -dbpath=/home/data/10002/ -port=10002 --nohttpinterface --replSet set1  
  6.   
  7. //10003  
  8. $ ./mongod --shardsvr --fork -logpath=/home/data/logs/null -dbpath=/home/data/10003/ -port=10003 --nohttpinterface --replSet set1  

配置集群
 
[python] view plaincopy
 
  1. $ ./mongo -port 10001  
  2. MongoDB shell version: 2.0.2  
  3. connecting to: 127.0.0.1:10001/test  
  4. >#配置集合1  
  5. >#構建參數  
  6. >cfg={_id:'set1',  
  7. members:[{_id:1,host:'192.168.35.106:10001'},  
  8.                 {_id:1,host:'192.168.35.106:10002'},  
  9.                 {_id:1,host:'192.168.35.106:10003'}]  
  10. };  
  11. {  
  12.      "_id":"set1",  
  13.      "members":[  
  14.           {  
  15.                "_id":1,  
  16.                "host":"192.168.35.106:10001"  
  17.           },  
  18.           {  
  19.                "_id":2,  
  20.                "host":"192.168.35.106:10002"  
  21.           },  
  22.           {  
  23.                "_id":3,  
  24.                "host":"192.168.35.106:10003"  
  25.           }  
  26.      ]  
  27. }  
  28. >#讓參數生效  
  29. >rs.initiate(cfg);  
  30. {  
  31.      "info":"Config now saved locally. Should come online in about aminute.",  
  32.      "OK":1  
  33. }  
  34. >#查看運行狀態  
  35. >rs.status();  
  36. {  
  37.         "set" : "set1",  
  38.         "date" : ISODate("2012-02-29T12:02:46Z"),  
  39.         "myState" : 2,  
  40.         "syncingTo" : "192.168.35.106:10003",  
  41.         "members" : [  
  42.                 {  
  43.                         "_id" : 1,  
  44.                         "name" : "192.168.35.106:10001",  
  45.                         "health" : 1,  
  46.                         "state" : 2,  
  47.                         "stateStr" : "PRIMARY",  
  48.                         "optime" : {  
  49.                                 "t" : 1330435339000,  
  50.                                 "i" : 2413  
  51.                         },  
  52.                         "optimeDate" : ISODate("2012-02-28T13:22:19Z"),  
  53.                         "self" : true  
  54.                 },  
  55.                 {  
  56.                         "_id" : 2,  
  57.                         "name" : "192.168.35.106:10002",  
  58.                         "health" : 1,  
  59.                         "state" : 2,  
  60.                         "stateStr" : "SECONDARY",  
  61.                         "uptime" : 1112736,  
  62.                         "optime" : {  
  63.                                 "t" : 1330435339000,  
  64.                                 "i" : 2413  
  65.                         },  
  66.                         "optimeDate" : ISODate("2012-02-28T13:22:19Z"),  
  67.                         "lastHeartbeat" : ISODate("2012-02-29T12:02:45Z"),  
  68.                         "pingMs" : 0  
  69.                 },  
  70.                 {  
  71.                         "_id" : 3,  
  72.                         "name" : "192.168.35.106:10003",  
  73.                         "health" : 1,  
  74.                         "state" : 1,  
  75.                         "stateStr" : "SECONDARY",  
  76.                         "uptime" : 1112736,  
  77.                         "optime" : {  
  78.                                 "t" : 1330435339000,  
  79.                                 "i" : 2413  
  80.                         },  
  81.                         "optimeDate" : ISODate("2012-02-28T13:22:19Z"),  
  82.                         "lastHeartbeat" : ISODate("2012-02-29T12:02:46Z"),  
  83.                         "pingMs" : 0  
  84.                 }  
  85.         ],  
  86.         "ok" : 1  
  87. }  

 
 
配置第二組sets
 
[python] view plaincopy
 
  1. //10011  
  2. $ ./mongod --shardsvr --fork -logpath=/home/data/logs/null -dbpath=/home/data/10011/ -port=10011 --nohttpinterface --replSet set2  
  3.   
  4. //10012  
  5. $ ./mongod --shardsvr --fork -logpath=/home/data/logs/null -dbpath=/home/data/10012/ -port=10012 --nohttpinterface --replSet set2  
  6.   
  7. //10013  
  8. $ ./mongod --shardsvr --fork -logpath=/home/data/logs/null -dbpath=/home/data/10013/ -port=10013 --nohttpinterface --replSet set2  

 

配置集群
 
[cpp] view plaincopy
 
  1. $ ./mongo -port 10011  
  2. MongoDB shell version: 2.0.2  
  3. connecting to: 127.0.0.1:10011/test  
  4. >#配置集合1  
  5. >#構建參數  
  6. >cfg={_id:'set2',  
  7. members:[{_id:1,host:'192.168.35.106:10011'},  
  8.                 {_id:1,host:'192.168.35.106:10012'},  
  9.                 {_id:1,host:'192.168.35.106:10013'}]  
  10. };  
  11. {  
  12.      "_id":"set2",  
  13.      "members":[  
  14.           {  
  15.                "_id":1,  
  16.                "host":"192.168.35.106:10011"  
  17.           },  
  18.           {  
  19.                "_id":2,  
  20.                "host":"192.168.35.106:10012"  
  21.           },  
  22.           {  
  23.                "_id":3,  
  24.                "host":"192.168.35.106:10013"  
  25.           }  
  26.      ]  
  27. }  
  28. >#讓參數生效  
  29. >rs.initiate(cfg);  
  30. {  
  31.      "info":"Config now saved locally. Should come online in about aminute.",  
  32.      "OK":1  
  33. }  
  34. >#查看運行狀態  
  35. >rs.status();  
  36. {  
  37.         "set" : "set2",  
  38.         "date" : ISODate("2012-02-29T12:12:46Z"),  
  39.         "myState" : 2,  
  40.         "syncingTo" : "192.168.35.106:10011",  
  41.         "members" : [  
  42.                 {  
  43.                         "_id" : 1,  
  44.                         "name" : "192.168.35.106:10011",  
  45.                         "health" : 1,  
  46.                         "state" : 2,  
  47.                         "stateStr" : "PRIMARY",  
  48.                         "optime" : {  
  49.                                 "t" : 1330435339000,  
  50.                                 "i" : 2413  
  51.                         },  
  52.                         "optimeDate" : ISODate("2012-02-28T13:22:19Z"),  
  53.                         "self" : true  
  54.                 },  
  55.                 {  
  56.                         "_id" : 2,  
  57.                         "name" : "192.168.35.106:10012",  
  58.                         "health" : 1,  
  59.                         "state" : 2,  
  60.                         "stateStr" : "SECONDARY",  
  61.                         "uptime" : 1112736,  
  62.                         "optime" : {  
  63.                                 "t" : 1330435339000,  
  64.                                 "i" : 2413  
  65.                         },  
  66.                         "optimeDate" : ISODate("2012-02-28T13:22:19Z"),  
  67.                         "lastHeartbeat" : ISODate("2012-02-29T12:02:45Z"),  
  68.                         "pingMs" : 0  
  69.                 },  
  70.                 {  
  71.                         "_id" : 3,  
  72.                         "name" : "192.168.35.106:10013",  
  73.                         "health" : 1,  
  74.                         "state" : 1,  
  75.                         "stateStr" : "SECONDARY",  
  76.                         "uptime" : 1112736,  
  77.                         "optime" : {  
  78.                                 "t" : 1330435339000,  
  79.                                 "i" : 2413  
  80.                         },  
  81.                         "optimeDate" : ISODate("2012-02-28T13:22:19Z"),  
  82.                         "lastHeartbeat" : ISODate("2012-02-29T12:02:46Z"),  
  83.                         "pingMs" : 0  
  84.                 }  
  85.         ],  
  86.         "ok" : 1  
  87. }  

 
 
啟用config servier
 
[python] view plaincopy
 
  1. $ ./mongod --configsvr --fork -logpath=/home/data/logs/null -dbpath=/home/data/config1/ -port=20000 --nohttpinterface  
  2. $ ./mongod --configsvr --fork -logpath=/home/data/logs/null -dbpath=/home/data/config2/ -port=20001 --nohttpinterface  
  3. $ ./mongod --configsvr --fork -logpath=/home/data/logs/null -dbpath=/home/data/config3/ -port=20002 --nohttpinterface  
 
啟用Route server
 
[python] view plaincopy
 
  1. $ ./mongos -configdb="192.168.35.106:20000,192.168.35.106:20001,192.168.35.106:20002" --fork -logpath=/home/data/logs/null  
  2. >#查看是否正常運行  
  3. >ps aux|grep mongos|grep -v grep  
  4. root      2726  0.0  0.1 174192  3392 ?        Sl   Feb16   3:20 ./mongos -configdb=192.168.35.106:20000,192.168.35.106:20001,192.168.35.106:20002 --fork -logpath=/home/data/logs/null  
 
開始配置Sharding
 
[python] view plaincopy
 
  1. $ ./mongo -port 10001  
  2. MongoDB shell version: 2.0.2  
  3. connecting to: 127.0.0.1:10001/test  
  4. >#進入管理數據庫  
  5. >use admin  
  6. switched to db admin  
  7. >#添加Sharding  
  8. > db.runcommand({addshard:'set1/192.168.35.106:10001,192.168.35.106:10002,192.168.35.106:10003'})  
  9. {"shardAdded":"set1","ok":1}  
  10. > db.runCommand({addshard:'set2/192.168.35.106:10011,192.168.35.106:10012,192.168.35.106:10013'})  
  11. {"shardAdded":"set2","ok":1}  
  12. >#讓test數據庫支持Sharding  
  13. >db.runCommand({enablesharding:'test'})  
  14. {"ok":1}  
  15. >#讓數據庫中的一個集合生效,且根據ID來進行分片  
  16. >db.runCommand({shardcollection:'test.user',key:{_id:1}})  
  17. {"collectionshrded":"test.user","ok":1}  
  18.   
  19. 注:另外可以通過下面兩個命令查看sharding情況:  
  20. >db.runCommand({listshards:1}  
  21. >printShardingStatus();  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成人观看网站 | 国产精品99久久久久久大便 | 成人福利视频在线观看 | 一级视频在线播放 | 国产精品区一区二区三区 | 日本中文字幕电影在线观看 | 日日噜噜噜噜久久久精品毛片 | 久草在线新时代视觉 | 亚洲视频综合 | 成人一级视频在线观看 | 香蕉视频1024| 欧美黄色视屏 | 九九精品在线播放 | 成人在线97 | 亚洲综合视频网站 | 精品国产91久久久久久久妲己 | 97中文| 在线播放免费播放av片 | 欧美一级色片 | 一区二区三区视频在线播放 | 麻豆porn | 午夜视频在线观看免费视频 | 国产资源在线观看视频 | 黄色毛片一级 | 永久免费在线观看av | 91精品观看91久久久久久国产 | 欧美成人高清视频 | 国产91久久久 | 成人黄色小视频在线观看 | 久久久久久久黄色片 | 日本xxxx视频 | 欧美黄色免费视频 | 欧美日本免费一区二区三区 | 日本a在线观看 | 成人h精品动漫一区二区三区 | 黄色免费av网站 | 91福利免费视频 | 国产成人小视频在线观看 | 欧美成人综合视频 | 女人解衣喂奶电影 | 内地av在线 |