Install:
$sudo port install memcached
$ curl -O ftp://ftp.tummy.com/pub/python-memcached/python-memcached-latest.tar.gz
$ tar xzvf python-memcached-latest.tar.gz
$ cd python-memcached
$ python setup.py install
Startup:
$sudo launchctl load -w /Library/LaunchDaemons/org.macports.memcached.plist
sudo useradd mongodb
sudo mkdir /db/data
sudo chown mongodb:mongodb /db/data
sudo mkdir /db/data/shards
sudo mkdir /db/data/shards/0 /db/data/shards/1 /db/data/shards/2
sudo mkdir /db/data/shards/config
sudo chown mongodb:mongodb -R /db/data/shards
==== shell scripts =====
#mongodb.config.sh
#!/bin/bash
sudo -u mongodb -H mongod \
--configsvr \
--dbpath /db/data/shards/config \
--port 27019 \
--logpath /var/log/mongodb/mongodb.config.log &
==== shell scripts =====
# mongodb.mongos.multconfig.sh
#!/bin/bash
sudo -u mongodb -H mongos \
-vvv \
--port 27017 \
--configdb db0.domain.com,db1.domain.com,db2.domain.com \
--logpath /var/log/mongodb/mongos.log &
==== shell scripts =====
# mongodb.replicates.sh
#!/bin/bash
DBHOST=$1
sudo -u mongodb -H mongod \
--shardsvr \
--port 27020 \
--fork \
--dbpath /db/data/shards/0 \
--replSet set0/$DBHOST:27020 \
--rest \
--logpath /var/log/mongodb/mongodb.0.log &
sudo -u mongodb -H mongod \
--shardsvr \
--port 27021 \
--fork \
--dbpath /db/data/shards/1 \
--replSet set1/$DBHOST:27021 \
--rest \
--logpath /var/log/mongodb/mongodb.1.log &
sudo -u mongodb -H mongod \
--shardsvr \
--port 27022 \
--fork \
--dbpath /db/data/shards/2 \
--replSet set2/$DBHOST:27022 \
--rest \
--logpath /var/log/mongodb/mongodb.2.log &
# on server db0
./mongodb.replicasets.sh db1.domain.com
# on server db1
./mongodb.replicasets.sh db0.domain.com
# on server db2
./mongodb.replicasets.sh db0.domain.com
# on server db0:27020
sudo -u mongodb -H mongo db0:27020
MongoDB shell version: 1.6.0
connecting to: db0.domain.com:27020/test
cfg = {
_id : "set0",
members : [
{ _id : 0, host : "db0.domain.com:27020"},
{ _id : 1, host : "db1.domain.com:27020"},
{ _id : 2, host : "db2.domain.com:27020"}
]
}
rs.initiate(cfg)
# on server db0:27021
sudo -u mongodb -H mongo db0:27021
MongoDB shell version: 1.6.0
connecting to: db0.domain.com:27021/test
cfg = {
_id : "set1",
members : [
{ _id : 0, host : "db0.domain.com:27021"},
{ _id : 1, host : "db1.domain.com:27021"},
{ _id : 2, host : "db2.domain.com:27021"}
]
}
rs.initiate(cfg)
# on server db0:27022
sudo -u mongodb -H mongo db0:27022
MongoDB shell version: 1.6.0
connecting to: db0.domain.com:27022/test
cfg = {
_id : "set2",
members : [
{ _id : 0, host : "db0.domain.com:27022"},
{ _id : 1, host : "db1.domain.com:27022"},
{ _id : 2, host : "db2.domain.com:27022"}
]
}
rs.initiate(cfg)
# on server db0, db1, db2
./mongodb.config.sh
# on server db0
./mongodb.mongos.multconfig.sh
# on server db0
./mongodb.mongos.sh db0.domain.com
# on server db0
sudo -u mongodb -H mongo db0.domain.com:27017
use admin
db.runCommand( { addshard : "set0/db0.domain.com:27020,db1.domain.com:27020,db2.domain.com:27020", name : "shard0"} );
db.runCommand( { addshard : "set1/db0.domain.com:27021,db1.domain.com:27021,db2.domain.com:27021", name : "shard1"} );
db.runCommand( { addshard : "set2/db0.domain.com:27022,db1.domain.com:27022,db2.domain.com:27022", name : "shard2"} );
db.runCommand( { listshards : 1 });
db.runCommand( { enablesharding : "testdb" } );
db.runCommand( { shardcollection : "testdb.vote.user" , key : { "name" : 1 } , unique : false } );
記憶がだんだん、、、
(sudo tar vzcf - ./) | ssh user@domain.com "(cat > filename.tar.gz)"