部署单节点的mongos

1 概要
本文档用于部署 单节点的mongos,一个节点的 config , 一个节点的 shard ,一个节点的mongos。

变量:
mongodb 版本号:{{mongodb-version}}

2 部署架构及资源列表
2.1 架构图

2.2 架构说明

  1. 单节点的mongos,一个节点的 config , 一个节点的 shard ,一个节点的mongos。分片集

2.3 服务器列表

IP 服务 描述
mongodb-01 configsvr1 Primary 端口开放: - 27019
mongodb-01 shardsvr1 Primary 端口开放: - 27018
mongodb-01 mongos1 Primary 端口开放: - 27017

3 安装 MongoDB
3.1 环境准备

mongodb-01:
在 linux bash 中执行以下命令:

ulimit -n 1024000
echo “* soft nofile 1024000” >> /etc/security/limits.conf
echo “* hard nofile 1024000” >> /etc/security/limits.conf
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
sed -i “s/enforcing/disabled/g” /etc/selinux/config
准备环境:首先,您需要在机器上配置主机名和修改内核参数。在/etc/hosts文件中,添加以下配置:

127.0.0.1 configsvr1
127.0.0.1 shardsvr1
127.0.0.1 mongos1
3.2 安装步骤

获取到 mongodb 安装包后,在服务器上按顺序执行以下命令:

configsvr1 :

  1. 将安装包解压到指定目录下:
    tar -zxvf mongodb-{{mongodb-version}}.xxx.tar.gz

  2. 调整软件目录,创建 mongodb 相关目录
    mkdir /data
    mv mongodb-{{mongodb-version}}/ /data/
    mkdir -p config/data config/log data

  3. 创建配置文件
    vim config/mongod.conf,粘贴以下内容后,保存

根据实际情况调整个别参数:
systemLog:
verbosity: 0
quiet: false
traceAllExceptions: false
destination: file
path: /data/mongos/mongodb-3.4.24-27019/config/log/mongod.log
logAppend: true
logRotate: rename

processManagement:
fork: true
pidFilePath: /data/mongos/mongodb-3.4.24-27019/config/mongod.pid

storage:
dbPath: /data/mongos/mongodb-3.4.24-27019/config/data
journal:
enabled: true
directoryPerDB: true
syncPeriodSecs: 60
engine: wiredTiger
wiredTiger:
engineConfig:
cacheSizeGB: 1
journalCompressor: snappy
directoryForIndexes: false
collectionConfig:
blockCompressor: snappy
indexConfig:
prefixCompression: true

net:
bindIp: 0.0.0.0
port: 27019
maxIncomingConnections: 20000

replication:
oplogSizeMB: 10240
replSetName: configReplSet
4. 增加环境变量
echo “export PATH=$PATH:/data/mongodb-{{mongodb-version}}/bin” >> ~/.bash_profile

source ~/.bash_profile

  1. 启动 mongod
    mongod --configsvr --config /data/mongos/mongodb-3.4.24-27019/config/mongod.conf

  2. 配置副本集
    在命令行执行:mongo “mongodb://localhost:27019”

  3. 进入 mongo shell ,执行以下命令:
    rs.initiate()
    若执行失败,则可以这么执行:
    var cfg = {
    … “_id”: “tap”,
    … “members”: [
    … {
    … “_id”: 0,
    … “host”: “119.8.233.223:27019”,
    … “priority”: 1,
    … “votes”: 1
    … }
    … ]
    … };
    再执行:rs.initiate(cfg);
    use admin
    db.createUser(
    {
    user: “admin”,
    pwd: “password”,
    roles: [
    “root”
    ],
    passwordDigestor:“server”
    }
    )
    shardsvr1:

  4. 将安装包解压到指定目录下:
    tar -zxvf mongodb-{{mongodb-version}}.xxx.tar.gz

  5. 调整软件目录,创建 mongodb 相关目录
    mkdir /data
    mv mongodb-{{mongodb-version}}/ /data/
    mkdir -p config data/shard1

  6. 创建配置文件
    vim config/mongod.yml,粘贴以下内容后,保存

根据实际情况调整个别参数:
systemLog:
verbosity: 0
quiet: false
traceAllExceptions: false
destination: file
path: /data/mongos/mongodb-3.4.24-27018/data/shard1/mongod.log
logAppend: true
logRotate: rename

processManagement:
fork: true
pidFilePath: /data/mongos/mongodb-3.4.24-27018/data/shard1/mongod.pid

storage:
dbPath: /data/mongos/mongodb-3.4.24-27018/data/shard1
journal:
enabled: true
directoryPerDB: true
syncPeriodSecs: 60
engine: wiredTiger
wiredTiger:
engineConfig:
cacheSizeGB: 1
journalCompressor: snappy
directoryForIndexes: false
collectionConfig:
blockCompressor: snappy
indexConfig:
prefixCompression: true

net:
bindIp: 0.0.0.0
port: 27018
maxIncomingConnections: 20000

replication:
oplogSizeMB: 10240
replSetName: shard1
4. 增加环境变量
echo “export PATH=$PATH:/data/mongodb-{{mongodb-version}}/bin” >> ~/.bash_profile

source ~/.bash_profile

  1. 启动 mongoshard
    ./mongod --shardsvr --config /data/mongos/mongodb-3.4.24-27018/config/mongod.yml

  2. 配置副本集
    在命令行执行:mongo “mongodb://localhost:27018”

  3. 进入 mongo shell ,执行以下命令:
    rs.initiate()
    若执行失败,则可以这么执行:
    var cfg = {
    … “_id”: “tap”,
    … “members”: [
    … {
    … “_id”: 0,
    … “host”: “119.8.233.223:27019”,
    … “priority”: 1,
    … “votes”: 1
    … }
    … ]
    … };
    再执行:rs.initiate(cfg);
    use admin
    db.createUser(
    {
    user: “admin”,
    pwd: “password”,
    roles: [
    “root”
    ],
    passwordDigestor:“server”
    }
    )

db.auth(‘admin’, ‘Gotapd8!’)
cfg = rs.conf()
cfg.members[0].host = “{{IP:27019}}”
rs.reconfig(cfg)
mongos1:
8. 将安装包解压到指定目录下:
tar -zxvf mongodb-{{mongodb-version}}.xxx.tar.gz

  1. 调整软件目录,创建 mongodb 相关目录
    mkdir /data
    mv mongodb-{{mongodb-version}}/ /data/
    mkdir -p config data/shard1

  2. 创建配置文件
    vim config/mongos.yml,粘贴以下内容后,保存

根据实际情况调整个别参数:
systemLog:
destination: file
path: /data/mongos/mongodb-3.4.24-27017/data/shard1/mongod.log
logAppend: true
net:
bindIp: 0.0.0.0
port: 27017
sharding:
configDB: “configReplSet/jack-test:27019”
11. 增加环境变量
echo “export PATH=$PATH:/data/mongodb-{{mongodb-version}}/bin” >> ~/.bash_profile

source ~/.bash_profile

  1. 启动 mongos
    后台运行
    nohup ./mongos --configdb “configReplSet/jack-test:27019” --port 27017 &

  2. 配置副本集
    ./mongo --port 27017

  3. 进入 mongo shell ,执行以下命令:
    rs.initiate()
    若执行失败,则可以这么执行:
    var cfg = {
    … “_id”: “tap”,
    … “members”: [
    … {
    … “_id”: 0,
    … “host”: “119.8.233.223:27019”,
    … “priority”: 1,
    … “votes”: 1
    … }
    … ]
    … };
    再执行:rs.initiate(cfg);
    use admin
    db.createUser(
    {
    user: “admin”,
    pwd: “password”,
    roles: [
    “root”
    ],
    passwordDigestor:“server”
    }
    )
    添加分片:
    sh.addShard(“shard1/hostname:27018”)
    插入一条测试数据:
    db.test_table_001.insert({name: “test”,ORDER_ID: 1})
    mongos创建新的集合,并创建分片键
    db.createCollection(“test_table_001”) ;
    sh.shardCollection(“test.test_table_001”, { ORDER_ID: 1 }) ;
    db.test_table_001.createIndex({ ORDER_ID: 1 },{ background: true });

  4. 杀掉 mongo进程
    db.shutdownServer()

  5. 创建证书
    mkdir -p /etc/mongo
    openssl rand -base64 745 > /etc/mongo/mongodb-keyfile
    chmod 600 /etc/mongo/mongodb-keyfile

你可能感兴趣的:(mongodb)