MongoDB配置及php串連測試

來源:互聯網
上載者:User
MongoDB配置及php串連測試   (2010-05-10 10:41:36) 轉載▼
標籤:  mongodb   php   雜談 分類: 技術文章
MongoDB的auto-sharding功能是指mongodb通過mongos自動建立一個水平擴充的資料庫叢集系統,將資料庫分表格儲存體在sharding的各個節點上。 一個mongodb叢集包括一些shards(包括一些mongod進程),mongos路由進程,一個或多個config伺服器
Shards 每一個shard包括一個或多個服務和儲存資料的mongod進程(mongod是MongoDB資料的核心進程) 典型的每個shard開啟多個服務來提高服務的可用性。這些服務/mongod進程在shard中組成一個複製集
Chunks Chunk是一個來自特殊集合中的一個資料範圍,(collection,minKey,maxKey)描敘一個chunk,它介於minKey和maxKey範圍之間。 例如chunks 的maxsize大小是100M,如果一個檔案達到或超過這個範圍時,會被切分到2個新的chunks中。當一個shard的資料過量時,chunks將會被遷移到其他的shards上。同樣,chunks也可以遷移到其他的shards上
Config Servers Config伺服器儲存著叢集的metadata資訊,包括每個伺服器,每個shard的基本資料和chunk資訊 Config伺服器主要儲存的是chunk資訊。每一個config伺服器都複製了完整的chunk資訊。
配置:(類比2個shard服務和一個config服務) Shard1:192.168.11.37:27017 Shard2:192.168.11.39:27017 Config:192.168.11.40:27019 mongos: 192.168.11.41:27017 Mongos啟動時預設使用的27017連接埠
啟動服務 192.168.11.37 mkdir /data/db cd /mnt/disk1/mongodb-linux-x86_64-1.4.2/bin ./mongod --shardsvr --dbpath /data/db > /tmp/mongodb.log &
192.168.11.39 mkdir /data/db cd /mnt/disk1/mongodb-linux-x86_64-1.4.2/bin ./mongod --shardsvr --dbpath /data/db > /tmp/mongodb.log &
192.168.11.40 cd /mnt/disk1/mongodb-linux-x86_64-1.4.2/bin ./mongod --configsvr  --dbpath /data/db > /tmp/mongoconfigdb.log &
192.168.11.41 cd /mnt/disk1/mongodb-linux-x86_64-1.4.2/bin ./mongos --configdb 192.168.11.40:27019 > /tmp/mongoconfigdb.log &
檢查服務狀態 ps -ef|grep mongo netstat -an  -t 開啟的28017是對應的http介面
管理MongoDB 192.168.11.41 cd /mnt/disk1/mongodb-linux-x86_64-1.4.2/bin ./mongo   預設串連到mongos上 > show dbs 加入shard節點 > use admin > db.runCommand( { addshard : "192.168.11.37:27018", allowLocal : true } ) > db.runCommand( { addshard : "192.168.11.39:27018", allowLocal : true } ) > db.runCommand({listshards:1});   查看shard節點列表 建立自動切片的庫user001: > config = connect("192.168.11.40:27019") > config = config.getSisterDB("config") > user001=db.getSisterDB("user001"); > db.runCommand({enablesharding:"user001"}) > db.printShardingStatus(); 在user001中建立表,插入資料 > use user001 > db.createCollection("user_001") > show collections > db.user_001.insert({uid:1,username:"Falcon.C",sex:"男",age:25}); > db.user_001.find(); 查看user001庫分配到了哪個shard 192.168.11.37/39 cd /data/db ls -l 可以看到user001被分配到了192.168.11.39的shard上了,但是通過mongos路由,我們並感覺不到是資料存放在哪個shard的chunk上
Sharding的管理命令 192.168.11.41 > db.$cmd.findOne({isdbgrid:1});      > db.$cmd.findOne({ismaster:1}); > printShardingStatus(db.getSisterDB("config")) > use admin > db.runCommand({netstat:1})
php測試 vi mondb.php <?php $m = new Mongo("192.168.11.41");       //connect to mongs $db = $m->user001;                     //選擇一個資料庫(user001) $collection = $db->user_001;           //選擇一個collection(user_001) $result = $collection->find(); foreach($result as $val){        print_r($val); }
echo "<br><br>";
foreach($result as $val){        echo "使用者ID:".$val["uid"]."<br>";        echo "使用者姓名:".$val["username"]."<br>";        echo "使用者性別:".$val["sex"]."<br>";        echo "使用者年齡:".$val["age"]."<br>"; } // disconnect $m->close(); ?>
http://192.168.11.37/mondb.php 顯示結果: Array ( [_id] => MongoId Object ( ) [uid] => 1 [username] => Falcon.C [sex] => 男 [age] => 25 ) 
使用者ID:1 使用者姓名:Falcon.C 使用者性別:男 使用者年齡:25 
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.