Mongodb分片集群搭建

安装过程

1.下载安装文件上传解压

2.开始修改搭建mongodb的replica set副本集

2.1上一步基本已经修改完毕,接下来我们只需要修改配置文件以及启动mongo服务
mongodb的实例配置文件基本如下:(配置文件不懂的可以看我最后附上的地址查看学习)

storage:
    dbPath: "/dbdata/"
    engine: "wiredTiger"
    directoryPerDB: true
    syncPeriodSecs: 60
    journal:
        enabled: true
    wiredTiger:
        engineConfig:
            configString: "config_base=true,eviction_dirty_target=1,eviction_dirty_trigger=40,eviction_target=70,eviction_trigger=95,eviction=(threads_min=2,threads_max=4),checkpoint_sync=true"
            statisticsLogDelaySecs: 0
            directoryForIndexes: true
            journalCompressor: snappy
        collectionConfig:
            blockCompressor: snappy
        indexConfig:
            prefixCompression: true
systemLog:
    destination: file
    path: "/opt/mongodb/log/mongod.log"
    logAppend: true
    logRotate: reopen
    timeStampFormat: iso8601-utc

processManagement:
    fork: false
    pidFilePath: "/opt/mongodb/run/mongod.pid"

operationProfiling:
    slowOpThresholdMs: 100
    mode: "slowOp"

sharding:
    clusterRole : "shardsvr"      #这里是集群中扮演的角色  mongod是shardsrv configdb是configsrv

replication:
    oplogSizeMB: 10240
    replSetName: "test"   #这里为复制集群的集群名,可以根据业务名称去定义,但是注意一个replica set的这个参数名字必须一致

net:
    port: 31001
    bindIp: 0.0.0.0
    wireObjectCheck: false

security:
    keyFile: "/opt/mongodb/conf/keyfile"
    authorization: "enabled"

2.2在配置完上面的信息之后就可以启动mongoDB
启动mongod的服务(对应的service文件再/etc/systemd/system/mongod.service)
systemctl start mongod

查看是否启动成功
ps -ef|grep mongod

如果上一步启动失败可以查看下面的日志排错
/opt/mongodb/log/mongod.log
/var/log/syslog

成功后设置mongodb自启动
systemctl enable mongod

查看是否加入成功
systemctl list-unit-files |grep mongod

重复上面的启动三台机器的mongod

2.3 上一步启动完成之后开始成立集群关系
在要选择为主的机器上一次执行下面的命令

登录mongod
mongo --port 配置文件中对应的端口号

执行命令
config = {_id: “tinydrive”, members: []}
config.members.push({_id: 0, host: “A:31001”, “priority”: 1.5})
config.members.push({_id: 1, host: “B:31001”, “priority”: 1})
config.members.push({_id: 2, host: “C:31001”, “priority”: 0,hidden:true})
rs.initiate(config)

返回ok就说明成功了 如果错误看报错信息排查

2.4 创建用户
退出mongo等一会儿在进去(等一会儿的原因是rc之间要进行主从选举)
再次登录进去
执行下面的命令

这里是创建超级用户
use admin;

db.createUser(
{
user:“username”,
pwd:“password”,
roles:[{role:“root”,db:“admin”}]
}
)

然后执行
db.auth(“用户名”,“密码”)
进来之后执行rs.status()即可查看rc复制集群状况

3.搭建configdb的replica set

config replica set的操作基本和上面一致

但是要注意配置文件中下面两个参数的改变

sharding:
clusterRole : “shardsvr” #这里是集群中扮演的角色 mongod是shardsrv,所以这里configdb是configsrv

replication:
oplogSizeMB: 10240
replSetName: “config” #这里为复制集群的集群名,可以根据业务名称去定义,但是注意一个replica set的这个参数名字必须一致

4.mongos搭建

先删除多余的配置文件
rm -f /opt/mongodb/conf/mongod.conf
rm -f /etc/systemd/system/mongod.service

mongos的话需要生成配置文件和service文件
mongos.conf配置文件内容
/opt/mongodb/conf/mongos.conf

systemLog:
    destination: file
    path: "/opt/mongodb/log/mongos.log"
    logAppend: true
    logRotate: reopen
    timeStampFormat: iso8601-utc

processManagement:
    fork: false
    pidFilePath: "/opt/mongodb/run/mongos.pid"

net:
    port: 30011
    bindIp: 0.0.0.0

sharding:
    configDB: "config/D:30001,E:30002,F:30003"  #这里需要配置为configdb的replica set集群串(主机名如果不可以可以使用ip去替代,DEF
    )

security:
    keyFile: "/opt/mongodb/conf/keyfile"
 

/etc/systemd/system/mongos.service

[Unit]
Description=MongoDB, schema-free document-oriented database
After=time-sync.target network.target

[Service]
LimitFSIZE=infinity
LimitCPU=infinity
LimitAS=infinity
LimitNOFILE=131072
LimitNPROC=131072
LimitMEMLOCK=infinity

User=mongodb
Group=mongodb

Restart=on-failure
RestartSec=2
ExecStart=/usr/bin/numactl --interleave=all /opt/mongodb/bin/mongos --config /opt/mongodb/conf/mongos.conf

[Install]
WantedBy=multi-user.target

注意这里启动的是mongos不是mongod
systemctl start mongos

开机自启动设置
system enable mongos

5.可能会遇到的报错整理

5.1.注意数据文件以及mongodb文件目录所属组合用户为 mongodb:mongodb

5.2 service中指定的配置文件和系统中的配置文件不一致

5.3 配置文件中端口或者角色或者目录不存在

5.4 注意mongo的数据文件盘格式要为xfs

5.5 注意mongodb的高版本configdb必须为replica set

6.相关参考资料:

mongodb replica set 搭建:https://developer.ibm.com/zh/technologies/databases/articles/os-mongodb-replication/
mongodb 分片集群搭建:https://developer.ibm.com/zh/articles/os-mongodb-sharded-cluster/
mongoDB参数解析: https://my.oschina.net/u/3101282/blog/1837909

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

渔不是鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值