侧边栏壁纸
  • 累计撰写 208 篇文章
  • 累计创建 16 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

ubuntu16.04安装mongoDB 4.0.1及shard集群搭建

Wake
2022-08-23 / 0 评论 / 0 点赞 / 432 阅读 / 1,077 字

安装包已经在基本服务器包上
系统:ubuntu 16.04

将压缩包解压: tar -xvf mongodb-linux-x86_64-ubuntu1604-4.0.1.tgz

将解压包拷贝到/usr/local/mongodb目录 mv mongodb-linux-x86_64-ubuntu1604-4.0.1 /usr/local/mongodb

设置环境变量: vi ~/.bashrc

在尾端按i插入如下指令: export PATH=/usr/local/mongodb/bin:$PATH

刷新环境变量,使其生效

source ~/.bashrc

1.创建MongoDB数据库目录
MongoDB的数据存储在Data目录的db目录下,但这些目录不会自动创建,需要手动创建/data/db目录,现在根目录(/)下创建data/db目录。

mkdir -p /data/db
mongod --dbpath=/data/db

注意问题: 如何修改默认端口,开放bind_ip

方法一

mongod --bind_ip 127.0.0.1,10.0.133.14 --dbpath /data/db/ --port 14564

方法二

在/etc/mongodb.conf文件中添加以下内容:

bind_ip = 127.0.0.1,10.0.133.14

这样之后,MongoDB服务端只有127.0.0.1和10.0.133.14这两个 IP 可以访问了。
集群部署
一.依赖和环境

Ubuntu 16.04(注意操作系统和版本需一致)

Mongo1:172.17.2.47

Mongo2:172.17.2.40
服务规划列表
image-1661256045961

端口规划列表
image-1661256072519

一、设置三类配置文件,分片节点,配置节点,路由节点。 shard1.conf(配置文件)

port=27001

fork=true

dbpath=/data/db/shard1

logpath=/data/db/logs/shard1.log

logappend=true

bind_ip=0.0.0.0

replSet=shard1

shardsvr=true

shard2.conf(配置文件)

port=27002

fork=true

dbpath=/data/db/shard2

logpath=/data/db/logs/shard2.log

logappend=true

bind_ip=0.0.0.0

replSet=shard2

shardsvr=true

shard3.conf(配置文件)

port=27003

fork=true

dbpath=/data/db/shard3

logpath=/data/db/logs/shard3.log

logappend=true

bind_ip=0.0.0.0

replSet=shard3

shardsvr=true

注意:shard2.conf配置文件和shard1.conf配置文件的区别就是端口改为了27002,另外数据存储路径和日志路径均和文件名一致。ReplSet也需要更改。

Config.conf 配置文件

port=21000

fork=true

dbpath=/data/db/config

logpath=/data/db/logs/config.log

logappend=true

bind_ip=0.0.0.0

replSet=config

configsvr=true

router.conf 配置文件

port=20000

configdb=config/172.17.2.47:21000,172.17.2.40:21000

logpath=/data/db/logs/router.log

fork=true

logappend=true

关于配置文件说明: shard01.conf,shard02.conf是shard1分片的配置。

shard21.conf,shard22.conf是shard2分片的配置。

config.conf,config2.conf,config3.conf是config节点配置。

依次在服务器中启动shard ,config,router

例如:

配置文件都在 /usr/local/mongodb/conf/ 里面

例如:

bin/mongod -f conf/shard1.conf
二、进172.17.2.47那台机器里面分片节点构成副本集

Mongo - - host 172.17.2.47 - - port 27001

> var config = {_id:'shard1',members:[{_id:0,host:'172.17.2.47:27001'},{_id:1,host:'172.17.2.40:27001'}]}

> rs.initiate(config)

{ "ok" : 1 }

Shard1:SECONDARY> 

Shard1:SECONDARY> 

Shard1:PRIMARY> exit

两个分片shard1,shard2设置成功之后,等待10s左右就会发现当前节点默认变为了当前分片的primary节点。

三、配置节点构成副本集。

> var config = {_id:'config',members:[{_id:0,host:'172.17.2.47:21000'},{_id:1,host:'172.17.2.40:21000'}]}

> rs.initiate(config)

{ "ok" : 1 }

config:SECONDARY> 

config:SECONDARY> 

config:PRIMARY> exit

配置分片之后,等待10S左右,当前节点会变为primary节点。

四、启动路由节点,并增加分片。 mongos –f /usr/local/mongodb/conf/router.conf
进入mongos

mongo - - host 172.17.2.47 - - port 20000



2018-06-29T14:51:29.383+0800 I CONTROL  [main] 

2018-06-29T14:51:29.383+0800 I CONTROL  [main] ** WARNING: Access control is not enabled for the database.

2018-06-29T14:51:29.383+0800 I CONTROL  [main] **          Read and write access to data and configuration is unrestricted.

2018-06-29T14:51:29.383+0800 I CONTROL  [main] ** WARNING: You are running this process as the root user, which is not recommended.

2018-06-29T14:51:29.384+0800 I CONTROL  [main] 

mongos> sh.addShard("shard1/172.17.2.47:27001,172.17.2.40:27001")

{ "shardAdded" : "shard1", "ok" : 1 }

mongos> sh.addShard("shard2/172.17.2.47:27002,172.17.2.40:27001")

{ "shardAdded" : "shard2", "ok" : 1 }

数据库集群状态截图:
image-1661256266007
五、设置数据库启用分片,启用索引。

mongos> use admin

switched to db admin

mongos> sh.enableSharding("push")

{ "ok" : 1 }

mongos> sh.shardCollection("push.user",{name:1})

{ "collectionsharded" : "push.user", "ok" : 1 }
0

评论区