MongoDB分片羣集(windows)

1、準備工作
C:\Documents and Settings\Administrator>d:
D:\>cd D:\mongodb-win32-i386-2.0.2
D:\mongodb-win32-i386-2.0.2>mkdir data
D:\mongodb-win32-i386-2.0.2>cd data
D:\mongodb-win32-i386-2.0.2\data>mkdir config
D:\mongodb-win32-i386-2.0.2\data>mkdir log
D:\mongodb-win32-i386-2.0.2\data>mkdir shard1_1
D:\mongodb-win32-i386-2.0.2\data>mkdir shard2_1
D:\mongodb-win32-i386-2.0.2\data>dir
驅動器 D 中的卷是 新加捲
卷的序列號是 E88D-35CB

D:\mongodb-win32-i386-2.0.2\data 的目錄
2012-02-23  12:47    <DIR>          .
2012-02-23  12:47    <DIR>          ..
2012-02-23  12:47    <DIR>          config
2012-02-23  12:47    <DIR>          log
               0 個文件              0 字節
               4 個目錄 226,136,317,952 可用字節


創建Shards
D:\mongodb-win32-i386-2.0.2\bin>
mongod --install  --serviceName MongoDBServer --serviceDisplayName MongoDBServer --shardsvr --replSet shard1 --port 27017 --dbpath "D:\mongodb-win32-i386-2.0.2\data\shard1_1" --oplogSize 100 --logpath "D:\mongodb-win32-i386-2.0.2\data\log\shard1_1.log" --logappend    --profile=1 --slowms=5 --rest


/data/

mongod --install  --serviceName MongoDBServer2 --serviceDisplayName MongoDBServer2 --shardsvr --replSet shard2 --port 27018 --dbpath "D:\mongodb-win32-i386-2.0.2\data\shard2_1" --oplogSize 100 --logpath "D:\mongodb-win32-i386-2.0.2\data\log\shard2_1.log" --logappend    --profile=1 --slowms=5 --rest

2、mongo連接27017配置shard1
> config = {_id: "shard1", members: [
                          {_id: 0, host: "192.168.1.41:27017"},
                          {_id: 1, host: "192.168.1.19:27017"},
                          {_id: 2, host: "192.168.1.40:27017"}]
           }
mongo連接27017配置shard2
> config = {_id: "shard2", members: [
                          {_id: 0, host: "192.168.1.41:27018"},
                          {_id: 1, host: "192.168.1.19:27018"},
                          {_id: 2, host: "192.168.1.40:27018"}]
           }
注:配置修改後(rs.reconfig()),需重新啓動服務才能生效,config的修改需從Primary中修改。

{
        "_id" : "shard1",
        "version" : 1,
        "members" : [
                {
                        "_id" : 0,
                        "host" : "192.168.1.41:27017",priority :1,slavedelay :5
                },
                {
                        "_id" : 1,
                        "host" : "192.168.1.19:27017",priority :0,slavedelay :5
                }
        ]
}

> rs.initiate(config);

3、配置config services
mongod --install  --serviceName MongoDBConfigServer --serviceDisplayName MongoDBConfigServer --configsvr --dbpath "D:\mongodb-win32-i386-2.0.2\data\config" --port 20000 --logpath "D:\mongodb-win32-i386-2.0.2\data\log\config.log" --logappend

4、配置mongs
下載Windows Server 2003 Resource Kit Tools

命令行運行:
D:\mongodb-win32-i386-2.0.2\bin>"C:\Program Files\Windows Resource Kits\Tools\in
stsrv.exe" mongos "C:\Program Files\Windows Resource Kits\Tools\srvany.exe"

The service was successfuly added!

Make sure that you go into the Control Panel and use
the Services applet to change the Account Name and
Password that this newly installed service will use
for its Security Context.

mongos --configdb 192.168.1.19:20000,192.168.1.41:20000,192.168.1.40:20000 --port 30000 --chunkSize 5 --logpath "D:\mongodb-win32-i386-2.0.2\data\log\mongos.log" --logappend

--configdb 192.168.1.19:20000 --port 30000 --chunkSize 5 --logpath 'D:\mongodb-win32-i386-2.0.2\data\log\mongos.log' --logappend

sc create MongoDBMongosServer binpath= "D:\mongodb-win32-i386-2.0.2\bin\mongos.exe" displayname= "MongoDBMongosServer" depend= Tcpip start= auto 

5、連接mongs
mongo 127.0.0.1:30000/admin

6、加入
單臺
>db.runCommand( {addshard:"127.0.0.1:27017",name:"shard1",maxsize:20480]" })
多臺
>db.runCommand( {addshard:"shard1/192.168.1.19:27017,192.168.1.41:27017,192.168.1.40:27017",name:"shard1",maxsize:20480} )

db.runCommand( {addshard:"shard2/192.168.1.19:27018,192.168.1.41:27018,192.168.1.40:27018",name:"shard2",maxsize:20480} )
刪除分片
db.runCommand( { removeshard : "shard_liyan2/127.0.0.1:16002,127.0.0.1:16004"} );
注:在增加分片服務器時,需要重啓mongos服務
7、查看
db.runCommand( { listshards : 1 } )

8、數據庫分片
db.runCommand( { enablesharding : "TestDB"} )

9、Collecton分片
db.runCommand( { shardcollection : "TestDB.UserInfo", key : {UserId : 1} } )

10、測試
for (var i = 1; i <= 200000; i++) db.UserInfo.save({UserId:i, value1:"FengYi1234567890", value2:"1234567890",value3:"1234567890"})


db.UserInfo.find({UserId:1})

參考資料:
發佈了31 篇原創文章 · 獲贊 20 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章