脚本
port="28017 28018 28019 28020"dir=/usr/local/mongodb/shardexec=/usr/local/mongodb/bin/mongodfunction create(){ for i in $port do mkdir -p $dir/$i/conf mkdir -p $dir/$i/data mkdir -p $dir/$i/log donecat >>$dir/28017/conf/mongod.conf<<'EOF'systemLog: destination: file path: /usr/local/mongodb/shard/28017/log/mongodb.log logAppend: truestorage: journal: enabled: true dbPath: /usr/local/mongodb/shard/28017/data directoryPerDB: true #engine: wiredTiger wiredTiger: engineConfig: # cacheSizeGB: 1 directoryForIndexes: true collectionConfig: blockCompressor: zlib indexConfig: prefixCompression: trueprocessManagement: fork: true pidFilePath: /usr/local/mongodb/shard/28017/mongod.pidnet: port: 28017replication: oplogSizeMB: 2048 replSetName: my_replEOF for i in 28018 28019 28020 do \cp $dir/28017/conf/mongod.conf $dir/$i/conf/ sed -i '' "s#28017#$i#g" $dir/$i/conf/mongod.conf done}function start(){ for i in $port do $exec -f $dir/$i/conf/mongod.conf done}function stop(){ for i in $port do kill -9 `cat ${dir}/$i/mongod.pid` done}if [[ $1 == 'start' ]];then echo "Service Start" startelif [[ $1 == 'create' ]];then echo "Service Create" createelif [[ $1 == 'stop' ]];then echo "Service Stop" stopelif [[ $1 == 'restart' ]];then stop startelse echo "Only Can use (create|start|stop|restart)"fi
加入集群
mongo --port 28017config = {_id: 'my_repl', members: [ {_id: 0, host: '127.0.0.1:28017'}, {_id: 1, host: '127.0.0.1:28018'}, {_id: 2, host: '127.0.0.1:28019'}] }rs.initiate(config)