MongoDB实战系列之六:mongodb的高可用集群设计实战
来源:网络 责任编辑:admin 发表时间:2013-07-01 11:35 点击:次
环境:
CentOS 6.0 x64
md01: 10.0.0.11
md02: 10.0.0.12
md03: 10.0.0.14
md04: 10.0.0.15
md05: 10.0.0.16
md06: 10.0.0.17
设计思路:
md01、md02、md03 做一组复制集
md04、md05、md06 做一组复制集
再把这两组复制集用分片做成shard1、shard2 用LVS 调用
下载安装mongodb
cd /root/tools
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.0.tgz
tar zxvf mongodb-linux-x86_64-2.0.0.tgz
mv mongodb-linux-x86_64-2.0.0 /elain/apps/mongodb-linux-x86_64-2.0.0
ln -s /elain/apps/mongodb-linux-x86_64-2.0.0 /elain/apps/mongodb
ln -s /elain/apps/mongodb/bin/* /bin/
#添加用户组
/usr/sbin/groupadd -g 690 mongodb
/usr/sbin/useradd -g mongodb mongodb -u 690 -s /sbin/nologin
各节点hosts文件 添加:
true > /etc/hosts
echo -ne "
10.0.0.11 md01
10.0.0.12 md02
10.0.0.14 md03
10.0.0.15 md04
10.0.0.16 md05
10.0.0.17 md06
" >>/etc/hosts
———————————————
副本集配置:
启动各节点:
md01
mkdir -p /elain/logs/mongodb/
mkdir -p /elain/data/mongodb/db
/elain/apps/mongodb/bin/mongod --rest --replSet elain/md01:27017 --fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath /elain/logs/mongodb/mongodb.log
md02
mkdir -p /elain/logs/mongodb/
mkdir -p /elain/data/mongodb/db
/elain/apps/mongodb/bin/mongod --rest --replSet elain/md02:27017 --fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath /elain/logs/mongodb/mongodb.log
md03
mkdir -p /elain/logs/mongodb/
mkdir -p /elain/data/mongodb/db
/elain/apps/mongodb/bin/mongod --rest --replSet elain/md03:27017 --fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath /elain/logs/mongodb/mongodb.log
#启动仲裁节点
在md02上
mkdir /elain/data/mongodb/arb
/elain/apps/mongodb/bin/mongod --fork --rest --replSet elain --dbpath /elain/data/mongodb/arb --port 27015 --logpath /elain/logs/mongodb/mongodb.log
初始化节点:
md01:(登录其中任何一个节点操作皆可)
> rs.initiate({
_id : "elain",
members : [
{_id : 1, host : "md01:27017"},
{_id : 2, host : "md02:27017"},
{_id : 3, host : "md03:27017"},
{_id : 4, host : "md02:27015", "arbiterOnly": true},
]
});
#验证
PRIMARY> rs.status()
也可浏览:http://10.0.0.11:28017/_replSet 查看状态
查看副本集状态
>rs.status()
>user local;
>rs.isMaster()
>db.system.replset.find()
查看当前主库:
>db.$cmd.findOne({ismaster:1});
另一组副本集同理操作即可;这里为省篇幅就不再写出,但切记两复制集名称不可以重复
—————————————————
启动并配置三台Config Server
#md01,03,05上执行
mkdir -p /elain/data/mongodb/config/
/elain/apps/mongodb/bin/mongod --configsvr --dbpath /elain/data/mongodb/config/ --port 20000 --logpath /elain/logs/mongodb/config.log --logappend --fork
5、部署并配置三台Routing Server
指定所有的config sever地址参数,chunkSize是分割数据时每块(Chunk)的单位大小
#md02,md04,md06
/elain/apps/mongodb/bin/mongos --configdb md01:20000,md03:20000,md05:20000 --port 30000 --chunkSize 100 --logpath /elain/logs/mongodb/mongos.log --logappend --fork
6、命令行添加分片
连接到mongs服务器,并切换到admin
/elain/apps/mongodb/bin/mongo 10.0.0.11:30000/admin
db.runCommand( {
CentOS 6.0 x64
md01: 10.0.0.11
md02: 10.0.0.12
md03: 10.0.0.14
md04: 10.0.0.15
md05: 10.0.0.16
md06: 10.0.0.17
设计思路:
md01、md02、md03 做一组复制集
md04、md05、md06 做一组复制集
再把这两组复制集用分片做成shard1、shard2 用LVS 调用
下载安装mongodb
cd /root/tools
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.0.tgz
tar zxvf mongodb-linux-x86_64-2.0.0.tgz
mv mongodb-linux-x86_64-2.0.0 /elain/apps/mongodb-linux-x86_64-2.0.0
ln -s /elain/apps/mongodb-linux-x86_64-2.0.0 /elain/apps/mongodb
ln -s /elain/apps/mongodb/bin/* /bin/
#添加用户组
/usr/sbin/groupadd -g 690 mongodb
/usr/sbin/useradd -g mongodb mongodb -u 690 -s /sbin/nologin
各节点hosts文件 添加:
true > /etc/hosts
echo -ne "
10.0.0.11 md01
10.0.0.12 md02
10.0.0.14 md03
10.0.0.15 md04
10.0.0.16 md05
10.0.0.17 md06
" >>/etc/hosts
———————————————
副本集配置:
启动各节点:
md01
mkdir -p /elain/logs/mongodb/
mkdir -p /elain/data/mongodb/db
/elain/apps/mongodb/bin/mongod --rest --replSet elain/md01:27017 --fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath /elain/logs/mongodb/mongodb.log
md02
mkdir -p /elain/logs/mongodb/
mkdir -p /elain/data/mongodb/db
/elain/apps/mongodb/bin/mongod --rest --replSet elain/md02:27017 --fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath /elain/logs/mongodb/mongodb.log
md03
mkdir -p /elain/logs/mongodb/
mkdir -p /elain/data/mongodb/db
/elain/apps/mongodb/bin/mongod --rest --replSet elain/md03:27017 --fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath /elain/logs/mongodb/mongodb.log
#启动仲裁节点
在md02上
mkdir /elain/data/mongodb/arb
/elain/apps/mongodb/bin/mongod --fork --rest --replSet elain --dbpath /elain/data/mongodb/arb --port 27015 --logpath /elain/logs/mongodb/mongodb.log
初始化节点:
md01:(登录其中任何一个节点操作皆可)
> rs.initiate({
_id : "elain",
members : [
{_id : 1, host : "md01:27017"},
{_id : 2, host : "md02:27017"},
{_id : 3, host : "md03:27017"},
{_id : 4, host : "md02:27015", "arbiterOnly": true},
]
});
#验证
PRIMARY> rs.status()
也可浏览:http://10.0.0.11:28017/_replSet 查看状态
查看副本集状态
>rs.status()
>user local;
>rs.isMaster()
>db.system.replset.find()
查看当前主库:
>db.$cmd.findOne({ismaster:1});
另一组副本集同理操作即可;这里为省篇幅就不再写出,但切记两复制集名称不可以重复
—————————————————
启动并配置三台Config Server
#md01,03,05上执行
mkdir -p /elain/data/mongodb/config/
/elain/apps/mongodb/bin/mongod --configsvr --dbpath /elain/data/mongodb/config/ --port 20000 --logpath /elain/logs/mongodb/config.log --logappend --fork
5、部署并配置三台Routing Server
指定所有的config sever地址参数,chunkSize是分割数据时每块(Chunk)的单位大小
#md02,md04,md06
/elain/apps/mongodb/bin/mongos --configdb md01:20000,md03:20000,md05:20000 --port 30000 --chunkSize 100 --logpath /elain/logs/mongodb/mongos.log --logappend --fork
6、命令行添加分片
连接到mongs服务器,并切换到admin
/elain/apps/mongodb/bin/mongo 10.0.0.11:30000/admin
db.runCommand( {
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 进入详细评论页>>