mongodb shard集群的shell程序启动

#!/bin/bash
processExist=`ps aux|grep mongo|grep -v "grep" `
MONGODB_PATH="/opt/mongodb/mongos"
MONGODB_DATA="/opt/mongodb"

mongod_lock=$MONGODB_DATA/data/configsvr/mongod.lock
shard1_lock=$MONGODB_DATA/data/shard1/mongod.lock
shard2_lock=$MONGODB_DATA/data/shard2/mongod.lock
shard3_lock=$MONGODB_DATA/data/shard3/mongod.lock

echo "------------------------关闭mongodb的所有进程start-------------------------"
mongoProesses=` ps -A |grep "mongo"| awk '{if($0!~/mongodb-run/) print $1}' `

for proess in ${mongoProesses}; do
kill -9 $proess
done
echo "------------------------关闭mongodb的所有进程end-------------------------"


echo "----------------删除mongodb异常关闭的锁文件start-------------------------"
if [ -f "$mongod_lock" ]; then
rm -rf $mongod_lock
fi

if [ -f "$shard1_lock" ]; then
rm -rf $shard1_lock
fi
if [ -f "$shard2_lock" ]; then
rm -rf $shard2_lock
fi
if [ -f "$shard3_lock" ]; then
rm -rf $shard3_lock
fi
echo "----------------删除mongodb异常关闭的锁文件end-------------------------"

#以下配置我参考了[url]http://www.csdn.net/article/2014-04-24/2819492-2819221-build-high-avialable-mongodb-cluster-part-2/2#0-tsina-1-78606-397232819ff9a47a7b7e80a40613cfe1[/url]

echo "-------------------------configsvr------------------------------"
$MONGODB_PATH/bin/mongod --configsvr --port 21000 --dbpath $MONGODB_DATA/data/configsvr --logpath $MONGODB_DATA/log/configsvr/configsvr.log --fork
echo "-------------------------mongos------------------------------"
$MONGODB_PATH/bin/mongos -configdb 10.100.112.155:21000 -port 20000 -logpath $MONGODB_DATA/log/mongos.log -logappend -fork
echo "-------------------------shard1------------------------------"
$MONGODB_PATH/bin/mongod --shardsvr --replSet shard1 --port 22001 --dbpath $MONGODB_DATA/data/shard1 --logpath $MONGODB_DATA/log/shard1/shard1.log --fork --nojournal --oplogSize 10
echo "-------------------------shard2------------------------------"
$MONGODB_PATH/bin/mongod --shardsvr --replSet shard2 --port 22002 --dbpath $MONGODB_DATA/data/shard2 --logpath $MONGODB_DATA/log/shard2/shard2.log --fork --nojournal --oplogSize 10
echo "-------------------------shard3------------------------------"
$MONGODB_PATH/bin/mongod --shardsvr --replSet shard3 --port 22003 --dbpath $MONGODB_DATA/data/shard3 --logpath $MONGODB_DATA/log/shard3/shard3.log --fork --nojournal --oplogSize 10
echo "-------------------------end------------------------------"
$MONGODB_PATH/bin/mongo 127.0.0.1:22001 <<EOF

use admin
config = { _id:"shard1", members:[ {_id:0,host:"10.100.112.155:22001"} ] };
rs.initiate(config);
EOF

$MONGODB_PATH/bin/mongo 127.0.0.1:22002 <<EOF
use admin
config = { _id:"shard2", members:[ {_id:0,host:"10.100.112.155:22002"} ] };
rs.initiate(config);
EOF
$MONGODB_PATH/bin/mongo 127.0.0.1:22003 <<EOF
use admin
config = { _id:"shard3", members:[ {_id:0,host:"10.100.112.155:22003"} ] };
rs.initiate(config);
EOF
$MONGODB_PATH/bin/mongo 127.0.0.1:20000 <<EOF
use admin
db.runCommand( { addshard : "shard1/10.100.112.155:22001"});
db.runCommand( { addshard : "shard1/10.100.112.155:22002"});
db.runCommand( { addshard : "shard1/10.100.112.155:22003"});
db.runCommand( { listshards : 1 } );
EOF


#这两个配置是一定要的,不然插入数据时,数据只会到shard1,这些业务逻辑操作,可以写另外一个shell文件导入。
#最后要分片的数据库一定要执行
db.runCommand( { enablesharding :"testdb"});

#指定数据库里需要分片的集合和片键
#db.runCommand( { shardcollection : "testdb.table1",key : {id: 1} } )
#hashed:均匀分布数据
db.runCommand( { shardcollection : "testdb.table1",key : {id:'hashed' } } )

#再介绍工作时使用的mongodb可视化工具:MongoVUE,可以分别连进去20000,22001,22002,22003查看配置,插入切片数据的分布。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值