天天看点

mongodb集群

使用docker创建mongodb cluster步骤:

1.创建配置副本集

(1)创建副本集容器

docker run --name  mongo_cluster_config1  -p 27001:27019  -d mongo mongod --configsvr --replSet configCluster

docker run --name  mongo_cluster_config2  -p 27002:27019  -d mongo mongod --configsvr --replSet configCluster

docker run --name  mongo_cluster_config3  -p 27003:27019  -d mongo mongod --configsvr --replSet configCluster

(2)副本集初始化

登录其中一台容器:

docker exec -it config容器ID /bin/bash

登录后进入mongo:

mongo --port 27019   //注意端口号

在mongo命令行运行:

rs.initiate({

    _id:"configCluster",//副本集名

    configsvr:true,//配置

    members:[

        {_id:0,host:"192.168.99.100:27001"},

        {_id:1,host:"192.168.99.100:27002"},

        {_id:2,host:"192.168.99.100:27003"}

    ]

})

2.创建分片1

docker run --name  mongo_cluster_shard1  -p 27011:27018  -d mongo mongod --shardsvr --replSet shard1Cluster

docker run --name  mongo_cluster_shard2  -p 27021:27018  -d mongo mongod --shardsvr --replSet shard1Cluster

docker run --name  mongo_cluster_shard3  -p 27031:27018  -d mongo mongod --shardsvr --replSet shard1Cluster

mongo --port 27018   //注意端口号

    _id:"shard1Cluster",

        {_id:0,host:"192.168.99.100:27011"},

        {_id:1,host:"192.168.99.100:27021"},

        {_id:2,host:"192.168.99.100:27031"}

3.创建分片2

docker run --name  mongo_cluster_shard4  -p 27041:27018  -d mongo mongod --shardsvr --replSet shard2Cluster

docker run --name  mongo_cluster_shard5  -p 27051:27018  -d mongo mongod --shardsvr --replSet shard2Cluster

docker run --name  mongo_cluster_shard6  -p 27061:27018  -d mongo mongod --shardsvr --replSet shard2Cluster

    _id:"shard2Cluster",

        {_id:0,host:"192.168.99.100:27041"},

        {_id:1,host:"192.168.99.100:27051"},

        {_id:2,host:"192.168.99.100:27061"}

注:rs.status()可查看状态

4.创建路由

(1)创建容器

docker run --name  mongo_cluster_router1  -p 27101:27017  -d mongo mongos --configdb configCluster/192.168.99.100:27001,192.168.99.100:27002,192.168.99.100:27003

(2)初始化

use admin //仅admin数据库下能执行以下命令

//添加分片

sh.addShard("shard1Cluster/192.168.99.100:27011,192.168.99.100:27021,192.168.99.100:27031")

sh.addShard("shard2Cluster/192.168.99.100:27041,192.168.99.100:27051,192.168.99.100:27061")

//开启数据库的sharding

db.runCommand({enablesharding:"数据库名"});