MongoDb playing ground: run as service, sharding.

Db1:     172.28.14.250 (F)
Db2: 172.29.5.159 (E)

Don't ask why, but just follow below steps.
1) Firstly, we can't pass in dpPath.
>D:\Tools\MongoDb\bin\mongod.exe --directoryperdb --install --logpath D:\MongoDb\log\dblog.txt --logappend
>D:\Tools\MongoDb\bin\mongod.exe --directoryperdb --install --logpath E:\MongoDb\log\dblog.txt --logappend
>D:\Tools\MongoDb\bin\mongod.exe --directoryperdb --install --logpath F:\MongoDb\log\dblog.txt --logappend

2) Then we run "RegEdit", set HKLM\SYSTEM\CurrentControlSet\services\MongoDB\ImagePath as below (add dbPath)
D:\Tools\MongoDb\bin\mongod.exe --directoryperdb --dbpath D:\MongoDb\data\ --service --logpath D:\MongoDb\log\dblog.txt --logappend --oplogSize 2
D:\Tools\MongoDb\bin\mongod.exe --directoryperdb --dbpath E:\MongoDb\data\ --service --logpath E:\MongoDb\log\dblog.txt --logappend --oplogSize 2
D:\Tools\MongoDb\bin\mongod.exe --directoryperdb --dbpath F:\MongoDb\data\ --service --logpath F:\MongoDb\log\dblog.txt --logappend --oplogSize 2

3) Start service, and create admin user (sa/sa), because below:
Run the database (mongod process) with the --auth option to enable security. You must either
have added a user to the admin db before starting the server with --auth, or add the first user from the localhost interface.
>net start MongoDB
>D:\Tools\MongoDb\bin\mongo.exe
>use admin
>db.addUser("sa","sa")
>db.auth("sa","sa")

use EquityData
db.addUser("prod","prod")

4) Stop service, then run "RegEdit" to add --auth, and start service
>net stop MongoDB
D:\Tools\MongoDb\bin\mongod.exe --auth --directoryperdb --dbpath D:\MongoDb\data\ --service --logpath D:\MongoDb\log\dblog.txt --logappend --oplogSize 2
D:\Tools\MongoDb\bin\mongod.exe --auth --directoryperdb --dbpath E:\MongoDb\data\ --service --logpath E:\MongoDb\log\dblog.txt --logappend --oplogSize 2
D:\Tools\MongoDb\bin\mongod.exe --auth --directoryperdb --dbpath F:\MongoDb\data\ --service --logpath F:\MongoDb\log\dblog.txt --logappend --oplogSize 2
>net start MongoDB

5) Log on via command line
>D:\Tools\MongoDb\bin\mongo.exe
>conn = new Mongo("172.28.14.250");
or
>conn = new Mongo("172.29.5.159");
>db = conn.getDB("admin");
>db.auth("sa","sa");




?) Appendix
D:\Tools\MongoDb\bin\mongod.exe --service
D:\Tools\MongoDb\bin\mongod.exe --remove


***************
Sharding
---------------
1) 2 Shards:
2) Config Server:
3) Mongos Routing process
---------------
1) --shardsvr
for all servers, my local machine(172.28.19.85) and Db1(172.28.14.250)
mkdir D:\MongoDb\log D:\MongoDb\data
D:\Tools\MongoDb\bin\mongod.exe --directoryperdb --install --logpath D:\MongoDb\log\shardb.log --logappend  --port 10001 --shardsvr
Run->RegEdit
D:\Tools\MongoDb\bin\mongod.exe --directoryperdb  --service  --logpath  D:\MongoDb\log\shardb.log  --logappend  --port  10001  --shardsvr --dbpath D:\MongoDb\data\

net start MongoDB

2) --configsvr
mkdir D:\MongoDb\config
D:\Tools\MongoDb\bin\mongod.exe --configsvr --dbpath D:\MongoDb\config --port 20001 --logpath D:\MongoDb\config\configdb.log

3) mongos process, can't be run as service!!!
D:\Tools\MongoDb\bin\mongos.exe --configdb 172.28.19.85:20001 --logpath D:\MongoDb\config\mongos.log
better limit on chunkSize to make it easy to see change, default is 200(mb)
D:\Tools\MongoDb\bin\mongos.exe --configdb 172.28.19.85:20001 --logpath D:\MongoDb\config\mongos.log --chunkSize 1

4) connect to mongos server and create shards (no port set)
D:\Tools\MongoDb\bin\mongod.exe 172.28.19.85

use DiegoTest
db.Friends.ensureIndex({name:1})

use admin
db.runCommand( { addshard : "172.28.19.85:10001" } )
db.runCommand( { addshard : "172.28.14.250:10001" } )

db.runCommand( { enablesharding : "DiegoTest" } )
db.runCommand( { shardcollection: "DiegoTest.Friends", key: {name:1}})

db.printShardingStatus()

Then go ahead...

*******************
Introduction from MongoDb's official web site.
$ mkdir /data/db/a /data/db/b
$ ./mongod --shardsvr --dbpath /data/db/a --port 10000 > /tmp/sharda.log &
$ cat /tmp/sharda.log
$ ./mongod --shardsvr --dbpath /data/db/b --port 10001 > /tmp/shardb.log &
$ cat /tmp/shardb.log

mkdir \data\db\a \data\db\b
mkdir \data\db\a\log \data\db\b\log
D:\Tools\MongoDb\bin\mongod.exe --shardsvr --dbpath \data\db\a --port 10001 --logpath \data\db\a\log\shardb.log
D:\Tools\MongoDb\bin\mongod.exe --shardsvr --dbpath \data\db\b --port 10002 --logpath \data\db\b\log\shardb.log

$ mkdir /data/db/config
$ ./mongod --configsvr --dbpath /data/db/config --port 20000 > /tmp/configdb.log &
$ cat /tmp/configdb.log
$ ./mongos --configdb localhost:20000 > /tmp/mongos.log &
$ cat /tmp/mongos.log

mkdir \data\db\config
D:\Tools\MongoDb\bin\mongod.exe --configsvr --dbpath /data/db/config --port 20000 --logpath \data\db\config\configdb.log
D:\Tools\MongoDb\bin\mongos.exe --configdb localhost:20000 --logpath \data\db\config\mongos.log

*******************
posted on 2010-10-21 23:48  Diego  阅读(405)  评论(0编辑  收藏  举报