安装包已经在基本服务器包上
系统: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
服务规划列表
端口规划列表
一、设置三类配置文件,分片节点,配置节点,路由节点。 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 }
数据库集群状态截图:
五、设置数据库启用分片,启用索引。
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 }
评论区