mongodb生产环境(副本集模式)集群搭建配置
mongodb副本集模式由如下几部分组成:
1、路由实例mongos
2、配置实例configsvr
3、副本集集群replset(一主多从)
tips:
1、以上实例都是mongod守护进程
2、以上实例应在同一网段
配置一个集群分两步:启动和配置。
1、启动
对于下面实例的管理,你可以将各个实例都创建一个目录,然后将数据和配置还有log都放在实例的目录下,启动脚本可以仿照下面的方式编写。
路由实例:10.94.99.53:29017
tips:--configdb为路由实例的ip:port,这里即为10.94.99.55:27219
$sudocommandnd $mongo_dir/mongos --configdb $configsvr_list --bind_ip $bind_ip --port $port --logpath $instance_dir/logs/mongos.log --pidfilepath $instance_dir/pid/mongos.pid -f $instance_dir/conf/mongos.conf --fork
配置实例:10.94.99.55:27219
$sudocommandnd $mongo_dir/mongod --configsvr --bind_ip $bind_ip --port $port --dbpath $instance_dir/data --logpath $instance_dir/logs/configsvr.log --pidfilepath $instance_dir/pid/configsvr.pid -f $instance_dir/conf/configsvr.conf --fork
副本集实例:10.94.99.55:27017;10.94.99.55:27018
$sudocommandnd $mongo_dir/mongod --replSet $replSetName --bind_ip $bind_ip --port $port --dbpath $instance_dir/data --logpath $instance_dir/logs/$replSetName.log --pidfilepath $instance_dir/pid/$replSetName.pid -f $instance_dir/conf/replset.conf --fork
2、配置
先配置副本集集群,进入任意一个副本集实例,这里是27017
mongo 10.94.99.55:27017
初始化副本集
use admin replSet1:PRIMARY> rs.initiate({ _id: "replSet1", members: [ { _id: 0, host: "10.94.99.55:27017" }, { _id: 1, host: "10.94.99.55:27018" } ] })
配置成功后,可已查看副本集状态
# 查看副本集配置 replSet1:PRIMARY> rs.conf() # 查看副本集状态 replSet1:PRIMARY> rs.status()
至此副本集配置完毕。下面开始配置路由实例。
进入路由实例,这里是29017。
mongo 10.94.99.55:29017
添加路由实例配置
# 切换到admin数据库 mongos> use admin # 谁是主分片加载谁 mongos> sh.addShard("replSet1/10.94.99.55:27017") mongos> db.runCommand({enableSharding:"watch"}) 输出: { "ok" : 1 } db.runCommand( { shardCollection: "watch.alarm", key:{"_id":1}}) 输出: { "collectionsharded" : "watch.alarm", "ok" : 1 }