启动步骤:
192.168.1.21:
sudo /data/mongodb/bin/mongod --replSet rep1 --fork --port 9003 --maxConns 20000 --dbpath /data/mongodb/data/9003 --directoryperdb --logpath /data/mongodb/log/9003/db9003.log --logappend --nohttpinterface
sudo /data/mongodb/bin/mongod --replSet rep1 --fork --port 9004 --maxConns 20000 --dbpath /data/mongodb/data/9004 --directoryperdb --logpath /data/mongodb/log/9004/db9004.log --logappend --nohttpinterface
sudo /data/mongodb/bin/mongod --replSet rep1 --fork --port 9005 --dbpath /data/mongodb/arbiter --directoryperdb --logpath /data/mongodb/log/arbiter.log --logappend --nohttpinterface
192.168.1.22:
sudo /data/mongodb/bin/mongod --replSet rep2 --fork --port 9003 --maxConns 20000 --dbpath /data/mongodb/data/9003 --directoryperdb --logpath /data/mongodb/log/9003/db9003.log --logappend --nohttpinterface
sudo /data/mongodb/bin/mongod --replSet rep2 --fork --port 9004 --maxConns 20000 --dbpath /data/mongodb/data/9004 --directoryperdb --logpath /data/mongodb/log/9004/db9004.log --logappend --nohttpinterface
sudo /data/mongodb/bin/mongod --replSet rep2 --fork --port 9005 --dbpath /data/mongodb/arbiter --directoryperdb --logpath /data/mongodb/log/arbiter.log --logappend --nohttpinterface
192.168.1.23:
sudo /data/mongodb/bin/mongod --replSet rep3 --fork --port 9003 --maxConns 20000 --dbpath /data/mongodb/data/9003 --directoryperdb --logpath /data/mongodb/log/9003/db9003.log --logappend --nohttpinterface
sudo /data/mongodb/bin/mongod --replSet rep3 --fork --port 9004 --maxConns 20000 --dbpath /data/mongodb/data/9004 --directoryperdb --logpath /data/mongodb/log/9004/db9004.log --logappend --nohttpinterface
sudo /data/mongodb/bin/mongod --replSet rep3 --fork --port 9005 --dbpath /data/mongodb/arbiter --directoryperdb --logpath /data/mongodb/log/arbiter.log --logappend --nohttpinterface
sudo /data/mongodb/bin/mongo 192.168.1.21:9002/admin
show dbs
use admin
mongos> use blog
switched to db blog
mongos> db.people.insert({ name : join , age : 20})
Wed Jul 23 14:29:20.115 ReferenceError: join is not defined
mongos> db.people.insert({ name : 'join' , age : 20})
mongos> db.people.find();
{ "_id" : ObjectId("53cf564d4a0c5ed175796562"), "name" : "join", "age" : 20 }
mongos>
参考网址:http://freeze.blog.51cto.com/1846439/884925
mongodb 三台服务器集群配置架构说明与配置总体思路:
1.在10.21上配置配置服务器实例和路由服务器实例
2.分别在三台机器上各配置2个节点的副本集 rep1 rep2 rep3 1个仲裁节点
3.分别初始位副本集
4.将每个副本集作为一个单独的分布加入10.21服务器中
1、下载
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.4.tgz
2、安装
tar zxvf mongodb-linux-2.0.4.tgz
cp -fr mongodb-linux-*2.0.4/* /data/mongodb/
sudo mkdir -p /data/mongodb/data/9003 #创建数据存储目录
sudo mkdir -p /data/mongodb/data/9004 #创建数据存储目录
sudo mkdir -p /data/mongodb/log/9003 #创建日志存储目录
sudo mkdir -p /data/mongodb/log/9004 #创建日志存储目录
sudo mkdir -p /data/mongodb/config/ #创建配置存储目录
sudo mkdir -p /data/mongodb/arbiter/
三台主机配置三个shard分片,每个分片内一个副本集,内有2个节点
/opt/mongodb-linux-x86_64-2.4.10/bin/
1.以第一台服务器作为配置服务器(9001)和路由服务器(9002),再分别为这三台服务器配置mongod实例(9003 9004)
第一组分片
192.168.10.21:
sudo /data/mongodb/bin/mongod --replSet rep1 --fork --port 9003 --maxConns 20000 --dbpath /data/mongodb/data/9003 --directoryperdb --logpath /data/mongodb/log/9003/db9003.log --logappend --nohttpinterface
sudo /data/mongodb/bin/mongod --replSet rep1 --fork --port 9004 --maxConns 20000 --dbpath /data/mongodb/data/9004 --directoryperdb --logpath /data/mongodb/log/9004/db9004.log --logappend --nohttpinterface
#启动rep1分片的一个数据节点
sudo /data/mongodb/bin/mongos --configdb 192.168.10.21:9001 --port 9002 --fork --chunkSize 256 --logpath /data/mongodb/log/ms.log #启动路由节点,读取10.21上的配置节点的配置文件,(在配置节点启动后启动)
sudo /data/mongodb/bin/mongod --replSet rep1 --fork --port 9005 --dbpath /data/mongodb/arbiter --directoryperdb --logpath /data/mongodb/log/arbiter.log --logappend --nohttpinterface
#启动分片的仲裁节点
192.168.10.22:
sudo /data/mongodb/bin/mongod --replSet rep2 --fork --port 9003 --maxConns 20000 --dbpath /data/mongodb/data/9003 --directoryperdb --logpath /data/mongodb/log/9003/db9003.log --logappend --nohttpinterface
sudo /data/mongodb/bin/mongod --replSet rep2 --fork --port 9004 --maxConns 20000 --dbpath /data/mongodb/data/9004 --directoryperdb --logpath /data/mongodb/log/9004/db9004.log --logappend --nohttpinterface
sudo /data/mongodb/bin/mongod --replSet rep2 --fork --port 9005 --dbpath /data/mongodb/arbiter --directoryperdb --logpath /data/mongodb/log/arbiter.log --logappend --nohttpinterface
192.168.10.23:
sudo /data/mongodb/bin/mongod --replSet rep3 --fork --port 9003 --maxConns 20000 --dbpath /data/mongodb/data/9003 --directoryperdb --logpath /data/mongodb/log/9003/db9003.log --logappend --nohttpinterface
sudo /data/mongodb/bin/mongod --replSet rep3 --fork --port 9004 --maxConns 20000 --dbpath /data/mongodb/data/9004 --directoryperdb --logpath /data/mongodb/log/9004/db9004.log --logappend --nohttpinterface
sudo /data/mongodb/bin/mongod --replSet rep3 --fork --port 9005 --dbpath /data/mongodb/arbiter --directoryperdb --logpath /data/mongodb/log/arbiter.log --logappend --nohttpinterface
2.ConfigServer---
#启动config server
192.168.10.21:
sudo /data/mongodb/bin/mongod --configsvr --dbpath /data/mongodb/config --port 9001 --fork --logpath /data/mongodb/log/mc.log
#启动配置节点,注意配置节点应该优先启动,不然路由节点读取不到配置节点信息则会启动失败。
3.Mongos路由---
#启动mongos,指定config server, chunkSize 256M
192.168.10.21:
sudo /data/mongodb/bin/mongos --configdb 192.168.10.21:9001 --port 9002 --fork --chunkSize 256 --logpath /data/mongodb/log/ms.log
#启动路由节点
4.配置replSet
sudo /data/mongodb/bin/mongo 192.168.10.21:9002
config = {_id: 'rep1', members: [
{_id: 0, host: '192.168.10.21:9003', priority: 2},
{_id: 1, host: '192.168.10.21:9004'},
{_id: 2, host: '192.168.10.21:9005', arbiterOnly: true}]
}
#priority 为定义优先级,默认为1,高优先级会被认为是主节点优先启用。
rs.initiate(config);
rs.status()
sudo /data/mongodb/bin/mongo 192.168.10.22:9002
config2 = {_id: 'rep2', members: [
{_id: 0, host: '192.168.10.22:9003', priority: 2},
{_id: 1, host: '192.168.10.22:9004'},
{_id: 2, host: '192.168.10.22:9005', arbiterOnly: true}]
}
#priority 为定义优先级,默认为1,高优先级会被认为是主节点优先启用。
rs.initiate(config2);
rs.status()
sudo /data/mongodb/bin/mongo 192.168.10.23:9003
config = {_id: 'rep3', members: [
{_id: 0, host: '192.168.10.23:9003', priority: 2},
{_id: 1, host: '192.168.10.23:9004'},
{_id: 2, host: '192.168.10.23:9005', arbiterOnly: true}]
}
#priority 为定义优先级,默认为1,高优先级会被认为是主节点优先启用。
rs.initiate(config);
rs.status()
5.连接mongos增加shard
sudo /data/mongodb/bin/mongo 192.168.10.21:9002/admin
show dbs
use admin
db.runCommand({addshard:'rep1/192.168.10.21:9003,192.168.10.21:9004'})
db.runCommand({listshards:1})
db.runCommand({addshard:'rep2/192.168.10.22:9003,192.168.10.22:9004'})
db.runCommand({listshards:1})
db.runCommand({addshard:'rep3/192.168.10.23:9003,192.168.10.23:9004'})
db.runCommand({listshards:1})