# wget http://www.menprojects.com/public/mongo/shard_configs/install.txt # bash install.txt cd etc rm mongo* cd init rm mongo* rm /var/log/mongodb/* rm -rf /var/lib/mongo* killall mongod killall mongos killall mongo cd /root wget http://www.menprojects.com/public/mongo/shard_configs/etc_mongodb1.conf -O /etc/mongodb1.conf wget http://www.menprojects.com/public/mongo/shard_configs/etc_init_mongodb1.conf -O /etc/init/mongodb1.conf chmod 755 /etc/init/mongodb1.conf service mongodb1 start #-------------------------------------------------- cp /etc/mongodb1.conf /etc/mongodb2.conf cp /etc/mongodb1.conf /etc/mongodb3.conf cp /etc/mongodb1.conf /etc/mongodb4.conf cp /etc/mongodb1.conf /etc/mongodb5.conf cp /etc/mongodb1.conf /etc/mongodb6.conf cp /etc/mongodb1.conf /etc/mongodb7.conf cp /etc/init/mongodb1.conf /etc/init/mongodb2.conf cp /etc/init/mongodb1.conf /etc/init/mongodb3.conf cp /etc/init/mongodb1.conf /etc/init/mongodb4.conf cp /etc/init/mongodb1.conf /etc/init/mongodb5.conf cp /etc/init/mongodb1.conf /etc/init/mongodb6.conf cp /etc/init/mongodb1.conf /etc/init/mongodb7.conf cp /etc/init/mongodb1.conf /etc/init/mongodb8.conf sed -i 's/b1/b2/g' /etc/mongodb2.conf sed -i 's/b1/b2/g' /etc/init/mongodb2.conf sed -i 's/b1/b3/g' /etc/mongodb3.conf sed -i 's/b1/b3/g' /etc/init/mongodb3.conf sed -i 's/b1/b4/g' /etc/mongodb4.conf sed -i 's/b1/b4/g' /etc/init/mongodb4.conf sed -i 's/b1/b5/g' /etc/mongodb5.conf sed -i 's/b1/b5/g' /etc/init/mongodb5.conf sed -i 's/b1/b6/g' /etc/mongodb6.conf sed -i 's/b1/b6/g' /etc/init/mongodb6.conf sed -i 's/r1/r2/g' /etc/mongodb4.conf sed -i 's/r1/r2/g' /etc/mongodb5.conf sed -i 's/r1/r2/g' /etc/mongodb6.conf sed -i 's/27001/27002/g' /etc/mongodb2.conf sed -i 's/27001/27003/g' /etc/mongodb3.conf sed -i 's/27001/27004/g' /etc/mongodb4.conf sed -i 's/27001/27005/g' /etc/mongodb5.conf sed -i 's/27001/27006/g' /etc/mongodb6.conf #--------------------- service mongodb2 start service mongodb3 start service mongodb4 start service mongodb5 start service mongodb6 start # sudo -s -- bash -c ' echo "127.0.0.1 localhost ">> /etc/hosts ' sleep 2 mongo --port 27001 --eval "rs.initiate( { _id: 'r1', version: 1, members: [ {_id :0, host: 'localhost:27001' } ] } )" sleep 2 mongo --port 27001 --eval "rs.add('localhost:27002')" sleep 2 mongo --port 27001 --eval "rs.add('localhost:27003')" sleep 2 mongo --port 27004 --eval "rs.initiate( { _id: 'r2', version: 1, members: [ {_id :0, host: 'localhost:27004' } ] } )" sleep 2 mongo --port 27004 --eval "rs.add('localhost:27005')" sleep 2 mongo --port 27004 --eval "rs.add('localhost:27006')" sleep 2 mongo --port 27001 --eval "rs.status()" | grep name mongo --port 27004 --eval "rs.status()" | grep name #---------------------------------------------------- wget http://www.menprojects.com/public/mongo/shard_configs/etc_mongodb_config1.conf -O /etc/mongodb_config1.conf wget http://www.menprojects.com/public/mongo/shard_configs/etc_init_mongodb_config1.conf -O /etc/init/mongodb_config1.conf chmod 755 /etc/init/mongodb_config1.conf service mongodb_config1 start mongo --port 28001 --eval "rs.initiate({ _id: 'config', version: 1, members: [ {_id :0, host: 'localhost:28001' } ] })" cp /etc/mongodb_config1.conf /etc/mongodb_config2.conf cp /etc/mongodb_config1.conf /etc/mongodb_config3.conf cp /etc/init/mongodb_config1.conf /etc/init/mongodb_config2.conf cp /etc/init/mongodb_config1.conf /etc/init/mongodb_config3.conf sed -i 's/config1/config2/g' /etc/mongodb_config2.conf sed -i 's/config1/config2/g' /etc/init/mongodb_config2.conf sed -i 's/config1/config3/g' /etc/mongodb_config3.conf sed -i 's/config1/config3/g' /etc/init/mongodb_config3.conf sed -i 's/28001/28002/g' /etc/mongodb_config2.conf sed -i 's/28001/28003/g' /etc/mongodb_config3.conf service mongodb_config2 start service mongodb_config3 start sleep 2 mongo --port 28001 --eval "rs.add('localhost:28002')" mongo --port 28001 --eval "rs.add('localhost:28003')" mongo --port 28001 --eval "rs.status()" | grep name #---------------------------------------------------------------------- wget http://www.menprojects.com/public/mongo/shard_configs/etc_init_mongos1.conf -O /etc/init/mongos1.conf chmod 755 /etc/init/mongos1.conf mongo --eval 'db.runCommand({addShard: "r1/localhost:27001", name: "s1"})' admin mongo --eval 'db.runCommand({addShard: "r2/localhost:27004", name: "s2"})' admin #----------------------------- # Lets add some data. echo " function fillData() { db = db.getSiblingDB('shard_test') for( var i = 0; i < 1000; i++ ) { db.no.insert( {value: i } ); } } fillData() " > mongo/fill.js mongo mongo/fill.js #Shard the database. mongo --eval 'sh.enableSharding("shard_test")' # Add an index which is required for sharding. mongo --eval 'db.no.createIndex( { value : 1}, {unique:1 })' shard_test # shard the collection. mongo --eval 'sh.shardCollection("shard_test.no", {value: 1}, 1)' mongo --quiet --eval 'sh.splitAt( "shard_test.no", { "value": 200 } )' mongo --quiet --eval 'sh.splitAt( "shard_test.no", { "value": 300 } )' mongo --quiet --eval 'sh.splitAt( "shard_test.no", { "value": 400 } )' mongo --quiet --eval 'sh.splitAt( "shard_test.no", { "value": 500 } )' mongo --quiet --eval 'sh.splitAt( "shard_test.no", { "value": 600 } )' mongo --quiet --eval 'sh.splitAt( "shard_test.no", { "value": 700 } )' mongo --quiet --eval 'sh.splitAt( "shard_test.no", { "value": 800 } )' mongo --quiet --eval 'sh.splitAt( "shard_test.no", { "value": 900 } )' # Turn on the balancer. mongo --quiet --eval 'sh.getBalancerHost()' mongo --quiet --eval 'sh.isBalancerRunning()' mongo --quiet --eval 'sh.setBalancerState(true)' mongo --quiet --eval 'sh.isBalancerRunning()' mongo --quiet --eval 'sh.status()' | egrep '\-\->>|state' #---------------------------