生產(chǎn)MongoDB分片與集群方案.docx
《生產(chǎn)MongoDB分片與集群方案.docx》由會員分享,可在線閱讀,更多相關《生產(chǎn)MongoDB分片與集群方案.docx(14頁珍藏版)》請在裝配圖網(wǎng)上搜索。
生產(chǎn)MongoDB 分片與集群方案 【編者的話】 Mongo DB 是目前在IT行業(yè)非常流行的一種非關系型數(shù)據(jù)庫(NoSql),其靈活的數(shù)據(jù)存儲方式備受當前IT從業(yè)人員的青睞。Mongo DB很好的實現(xiàn)了面向?qū)ο蟮乃枷?OO思想),在Mongo DB中 每一條記錄都是一個Document對象。本文介紹了一則生產(chǎn)環(huán)境下MongoDB實現(xiàn)分片與集群方案的操作實例。 一、 mongodb分片與集群拓撲圖 二、分片與集群的部署 1.Mongodb的安裝 分別在以上3臺服務器安裝好mongodb 安裝方法見安裝腳本。 2.Mongod 創(chuàng)建單個分片的副本集 10.68.4.209 ①建立數(shù)據(jù)文件夾和日志文件夾 mdkir /data/{master,slave,arbiter} mkdir /data/log/mongodb/{master,slave,arbiter} -p ②建立配置文件 #master.conf dbpath=/data/master logpath=/data/log/mongodb/master/mongodb.log pidfilepath=/var/run/mongo_master.pid #directoryperdb=true logappend=true replSet=policydb port=10002 oplogSize=10000 fork=true noprealloc=true profile=1 slowms=200 #slave.conf dbpath=/data/slave logpath=/data/log/mongodb/slave/mongodb.log pidfilepath=/var/run/mongo_slave.pid #directoryperdb=true logappend=true replSet=policydb port=10001 oplogSize=10000 fork=true noprealloc=true profile=1 slowms=200 #arbiter.conf dbpath=/data/arbiter logpath=/data/log/mongodb/arbiter/mongodb.log pidfilepath=/var/run/mongo_arbiter.pid #directoryperdb=true logappend=true replSet=policydb port=10000 oplogSize=10000 fork=true noprealloc=true profile=1 slowms=200 ③啟動mongodb /etc/init.d/mongodb_master start /etc/init.d/mongodb_slave start /etc/init.d/mongodb_arbiter start ④配置主、備、仲裁節(jié)點 主節(jié)點: #/usr/local/mongodb/bin/mongo10.68.4.209:10002 MongoDBshellversion:2.4.9 connectingto:10.68.4.209:10002/test >useadmin switchedtodbadmin >config={_id:"policydb",members:[{_id:0,host:10.68.4.209:10002,priority:2},{_id:1,host:10.68.4.209:10001,priority:1}, ...{_id:2,host:10.68.4.209:10000,arbiterOnly:true}]}; { "_id":"policydb", "members":[ { "_id":0, "host":"10.68.4.209:10002", "priority":2 }, { "_id":1, "host":"10.68.4.209:10001", "priority":1 }, { "_id":2, "host":"10.68.4.209:10000", "arbiterOnly":true } ] } rs.initiate(config)#初始化 rs.status()#查看集群狀態(tài) 10.68.4.29 ①建立數(shù)據(jù)文件夾和日志文件夾 mdkir /data/{master,slave,arbiter} mkdir /data/log/mongodb/{master,slave,arbiter} -p ②建立配置文件 #master.conf dbpath=/data/master logpath=/data/log/mongodb/master/mongodb.log pidfilepath=/var/run/mongo_master.pid #directoryperdb=true logappend=true replSet=policydb2 port=10002 oplogSize=10000 fork=true noprealloc=true profile=1 slowms=200 #slave.conf dbpath=/data/slave logpath=/data/log/mongodb/slave/mongodb.log pidfilepath=/var/run/mongo_slave.pid #directoryperdb=true logappend=true replSet=policydb2 port=10001 oplogSize=10000 fork=true noprealloc=true profile=1 slowms=200 #arbiter.conf dbpath=/data/arbiter logpath=/data/log/mongodb/arbiter/mongodb.log pidfilepath=/var/run/mongo_arbiter.pid #directoryperdb=true logappend=true replSet=policydb2 port=10000 oplogSize=10000 fork=true noprealloc=true profile=1 slowms=200 ③啟動mongodb /etc/init.d/mongodb_masterstart /etc/init.d/mongodb_slavestart /etc/init.d/mongodb_arbiterstart ④配置主、備、仲裁節(jié)點 主節(jié)點: #/usr/local/mongodb/bin/mongo10.68.4.209:10002 MongoDBshellversion:2.4.9 connectingto:10.68.4.209:10002/test >useadmin switchedtodbadmin >config={_id:"policydb2",members:[{_id:0,host:10.68.4.29:10002,priority:2},{_id:1,host:10.68.4.29:10001,priority:1}, ...{_id:2,host:10.68.4.209:10000,arbiterOnly:true}]}; { "_id":"policydb", "members":[ { "_id":0, "host":"10.68.4.29:10002", "priority":2 }, { "_id":1, "host":"10.68.4.29:10001", "priority":1 }, { "_id":2, "host":"10.68.4.29:10000", "arbiterOnly":true } ] } rs.initiate(config)#初始化 rs.status()#查看集群狀態(tài) 10.68.4.30 ①建立數(shù)據(jù)文件夾和日志文件夾 mdkir /data/{master,slave,arbiter} mkdir /data/log/mongodb/{master,slave,arbiter} -p ②建立配置文件 #master.conf dbpath=/data/master logpath=/data/log/mongodb/master/mongodb.log pidfilepath=/var/run/mongo_master.pid #directoryperdb=true logappend=true replSet=policydb3 port=10002 oplogSize=10000 fork=true noprealloc=true profile=1 slowms=200 #slave.conf dbpath=/data/slave logpath=/data/log/mongodb/slave/mongodb.log pidfilepath=/var/run/mongo_slave.pid #directoryperdb=true logappend=true replSet=policydb3 port=10001 oplogSize=10000 fork=true noprealloc=true profile=1 slowms=200 #arbiter.conf dbpath=/data/arbiter logpath=/data/log/mongodb/arbiter/mongodb.log pidfilepath=/var/run/mongo_arbiter.pid #directoryperdb=true logappend=true replSet=policydb3 port=10000 oplogSize=10000 fork=true noprealloc=true profile=1 slowms=200 ③啟動mongodb /etc/init.d/mongodb_master start /etc/init.d/mongodb_slave start /etc/init.d/mongodb_arbiter start ④配置主、備、仲裁節(jié)點 主節(jié)點: #/usr/local/mongodb/bin/mongo10.68.4.209:10002 MongoDBshellversion:2.4.9 connectingto:10.68.4.209:10002/test >useadmin switchedtodbadmin >config={_id:"policydb3",members:[{_id:0,host:10.68.4.30:10002,priority:2},{_id:1,host:10.68.4.30:10001,priority:1}, ...{_id:2,host:10.68.4.30:10000,arbiterOnly:true}]}; { "_id":"policydb", "members":[ { "_id":0, "host":"10.68.4.30:10002", "priority":2 }, { "_id":1, "host":"10.68.4.30:10001", "priority":1 }, { "_id":2, "host":"10.68.4.30:10000", "arbiterOnly":true } ] } rs.initiate(config)#初始化 rs.status()#查看集群狀態(tài) 2.Mongod 創(chuàng)建單個分片的配置服務器 ① 創(chuàng)建配置目錄 10.68.4.209 mkdir /data/config 10.68.4.29 mkdir /data/config 10.68.4.30 mkdir /data/config ②準備配置服務器的配置文件 3個服務器的配置服務器的配置文件一致 #config.conf dbpath=/data/config logpath=/data/log/mongodb/config/mongodb.log pidfilepath=/var/run/mongo_config.pid directoryperdb=true logappend=true port=10003 fork=true configsvr=true ③啟動配置服務器 /etc/init.d/mongodb_config start 3.Mongod 創(chuàng)建并配置mongos和開啟分片模式 ① 創(chuàng)建日志目錄 Mkdir -p /data/log/mongodb/mongos/ ② 準備mongos的配置文件 #mongos.conf logpath=/data/log/mongodb/mongos/mongodb.log pidfilepath=/var/run/mongo_mongos.pid logappend=true port=10004 fork=true configdb=10.68.4.209:10003,10.68.4.29:10003,10.68.4.30:1000 ③ 啟動mongos /etc/init.d/mongodb_mongos start ④ 配置分片 sh.addShard("policydb/10.68.4.209:10002") sh.addShard("policydb2/10.68.4.29:10002") sh.addShard("policydb3/10.68.4.30:10002") sh.enableSharding("policydb") db.runCommand({"shardcollection":"policydb.fullPolicyTextInfo_history","key":{"key":1}}) db.printShardingStatus()#查看分片狀態(tài) sh.status({verbose:true}) sh.status() 3.快速創(chuàng)建副本集和配置服務腳本 上圖 1.圖1 2.圖2 config.conf配置文件 3.圖3 附mongodb一鍵安裝腳本: http://pan.baidu.com/s/1c0zvP7M 附mongodb副本集和配置服務器一鍵配置腳本: http://pan.baidu.com/s/1GuQ0A 博文出處:http://my.oschina.net/pwd/blog/411439 【編輯推薦】 為什么選擇使用NoSQL數(shù)據(jù)庫開發(fā)如此困難? 軟件公司為何要放棄MongoDB? NoSQL詳解:如何找到對的技術 為什么需要選用NoSQL? 谷歌新款高性能NoSQL數(shù)據(jù)庫 支持HBase接口- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 生產(chǎn) MongoDB 分片 集群 方案
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
鏈接地址:http://m.appdesigncorp.com/p-9380337.html