1. 服务器列表:
服务器IP 10.0.0.11 10.0.0.12 10.0.0.13
配置服务 config(27100) config(27100) config(27100)
shard1服务 shard1主节点(27001) shard1副节点(27001) shard1副节点(27001)
shard2服务 shard2主节点(27002) shard2副节点(27002) shard2副节点(27002)
shard3服务 shard3主节点(27003) shard3副节点(27003) shard3副节点(27003)
路由服务 mongos(27200) mongos(27200) mongos(27200)
  1. 安装mongodb(三台服务器都要执行此操作):

    1. 配置 yum源:
      vim /etc/yum.repos.d/mongodb-org-4.2.repo
      [mongodb-org-4.2]
      name=MongoDB Repository
      baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
      gpgcheck=1
      enabled=1
      gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
    2. 安装:
      yum -y install mongodb-org-4.2.16 mongodb-org-server-4.2.16 mongodb-org-shell-4.2.16 mongodb-org-mongos-4.2.16 mongodb-org-tools-4.2.16
  2. 创建目录:

    mkdir -p /var/run/mongodb/cluster/config/{log,data,run}
    mkdir -p /var/run/mongodb/cluster/shard1/{log,data,run}
    mkdir -p /var/run/mongodb/cluster/shard2/{log,data,run}
    mkdir -p /var/run/mongodb/cluster/shard3/{log,data,run}
    mkdir -p /var/run/mongodb/cluster/mongos/{log,data,run}
  3. 创建配置服务(三台服务器都要执行此操作):

    1. 创建配置文件:
      vim /var/run/mongodb/cluster/config/mongod.conf
       systemLog:
           destination: file
           logAppend: true
           path: /var/run/mongodb/cluster/config/log/mongod.log
       storage:
           dbPath: /var/run/mongodb/cluster/config/data
           journal:
           enabled: true
       processManagement:
           fork: true
           pidFilePath: /var/run/mongodb/cluster/config/run/mongod.pid
       net:
           port: 27100
           bindIp: 10.0.0.11
       replication:
           replSetName: config
       sharding:
           clusterRole: configsvr
    2. 启动配置服务:
      mongod --config /var/run/mongodb/cluster/config/mongod.conf
    3. 初始化配置副本集:
      mongo --port 27100 --host 10.0.0.11
       config = {
          _id : "config",
           members : [
               {_id : 0, host : "10.0.0.11:27100" },
               {_id : 1, host : "10.0.0.12:27100" },
               {_id : 2, host : "10.0.0.13:27100" }
           ]
       }
       rs.initiate(config)
       rs.status()
       exit
  4. 创建shard1服务(三台服务器都要执行此操作):

    1. 创建配置文件:
      vim /var/run/mongodb/cluster/shard1/mongod.conf
       systemLog:
           destination: file
           logAppend: true
           path: /var/run/mongodb/cluster/shard1/log/mongod.log
       storage:
           dbPath: /var/run/mongodb/cluster/shard1/data
           journal:
           enabled: true
       processManagement:
           fork: true
           pidFilePath: /var/run/mongodb/cluster/shard1/run/mongod.pid
       net:
           port: 27001
           bindIp: 10.0.0.11
       replication:
           replSetName: shard1
       sharding:
           clusterRole: shardsvr
    2. 启动shard1服务:
      mongod --config /var/run/mongodb/cluster/shard1/mongod.conf
    3. 初始化shard1副本集:
      mongo --port 27001 --host 10.0.0.11
       use admin
       config = {
          _id : "shard1",
           members : [
               {_id : 0, host : "10.0.0.11:27001" },
               {_id : 1, host : "10.0.0.12:27001" },
               {_id : 2, host : "10.0.0.13:27001" }
           ]
       }
       rs.initiate(config)
       rs.status()
       exit
  5. 创建shard2服务(三台服务器都要执行此操作):

    1. 创建配置文件:
      vim /var/run/mongodb/cluster/shard2/mongod.conf
       systemLog:
           destination: file
           logAppend: true
           path: /var/run/mongodb/cluster/shard2/log/mongod.log
       storage:
           dbPath: /var/run/mongodb/cluster/shard2/data
           journal:
           enabled: true
       processManagement:
           fork: true
           pidFilePath: /var/run/mongodb/cluster/shard2/run/mongod.pid
       net:
           port: 27002
           bindIp: 10.0.0.11
       replication:
           replSetName: shard2
       sharding:
           clusterRole: shardsvr
    2. 启动shard2服务:
      mongod --config /var/run/mongodb/cluster/shard2/mongod.conf
    3. 初始化shard2副本集:
      mongo --port 27002 --host 10.0.0.11
       use admin
       config = {
          _id : "shard2",
           members : [
               {_id : 0, host : "10.0.0.11:27002" },
               {_id : 1, host : "10.0.0.12:27002" },
               {_id : 2, host : "10.0.0.13:27002" }
           ]
       }
       rs.initiate(config)
       rs.status()
       exit
  6. 创建shard3服务(三台服务器都要执行此操作):

    1. 创建配置文件:
      vim /var/run/mongodb/cluster/shard3/mongod.conf
       systemLog:
           destination: file
           logAppend: true
           path: /var/run/mongodb/cluster/shard3/log/mongod.log
       storage:
           dbPath: /var/run/mongodb/cluster/shard3/data
           journal:
           enabled: true
       processManagement:
           fork: true
           pidFilePath: /var/run/mongodb/cluster/shard3/run/mongod.pid
       net:
           port: 27003
           bindIp: 10.0.0.11
       replication:
           replSetName: shard3
       sharding:
           clusterRole: shardsvr
    2. 启动shard3服务:
      mongod --config /var/run/mongodb/cluster/shard3/mongod.conf
    3. 初始化shard3副本集:
      mongo --port 27003 --host 10.0.0.11
       use admin
       config = {
          _id : "shard3",
           members : [
               {_id : 0, host : "10.0.0.11:27003" },
               {_id : 1, host : "10.0.0.12:27003" },
               {_id : 2, host : "10.0.0.13:27003" }
           ]
       }
       rs.initiate(config)
       rs.status()
       exit
  7. 创建路由服务(三台服务器都要执行此操作):

    1. 创建配置文件:
      vim /var/run/mongodb/cluster/mongos/mongod.conf
       systemLog:
           destination: file
           logAppend: true
           path: /var/run/mongodb/cluster/mongos/log/mongod.log
       processManagement:
           fork: true
           pidFilePath: /var/run/mongodb/cluster/mongos/run/mongod.pid
       net:
           port: 27200
           bindIp: 10.0.0.11
       sharding:
           configDB: config/10.0.0.11:27100,10.0.0.12:27100,10.0.0.13:27100
    2. 启动路由服务:
      mongos --config /var/run/mongodb/cluster/mongos/mongod.conf
    3. 初始化路由副本集:
      mongo --port 27200 --host 10.0.0.11
      sh.addShard("shard1/10.0.0.11:27001,10.0.0.12:27001,10.0.0.13:27001")
      sh.addShard("shard2/10.0.0.12:27002,10.0.0.13:27002,10.0.0.11:27002")
      sh.addShard("shard3/10.0.0.13:27003,10.0.0.11:27003,10.0.0.12:27003")
      rs.slaveOk()
      exit
  8. 集群测试:

    1. 在主服务器创建测试数据库(dbTest):
      mongo --port 27200 --host 10.0.0.11
      use dbTest
      db.testTable.insert({name: "lee"})
      show dbs
      exit
    2. 在副本服务器查看测试数据库是否存在:
      mongo --port 27200 --host 10.0.0.12
      show dbs
      exit
      mongo --port 27200 --host 10.0.0.13
      show dbs
      exit
  9. 附录:

    1. 服务启动命令:
      mongod --config /var/run/mongodb/cluster/config/mongod.conf
      mongod --config /var/run/mongodb/cluster/shard1/mongod.conf
      mongod --config /var/run/mongodb/cluster/shard2/mongod.conf
      mongod --config /var/run/mongodb/cluster/shard3/mongod.conf
      mongos --config /var/run/mongodb/cluster/mongos/mongod.conf
    2. 服务停止命令:
      mongod --shutdown --dbpath /var/run/mongodb/cluster/shard3/data
      mongod --shutdown --dbpath /var/run/mongodb/cluster/shard2/data
      mongod --shutdown --dbpath /var/run/mongodb/cluster/shard1/data
      mongod --shutdown --dbpath /var/run/mongodb/cluster/config/data
文档更新时间: 2024-04-20 10:57   作者:lee