mongodb分片集群安装部署

1、关闭系统防火墙

2、解压mongodb安装包到对应的文件夹

3、在mongodb建立对应的文件夹,以三台linux 服务器为例进行集群搭建;

准备环境

系统系统 centos7.6
三台服务器:10.184.16.18/19/20
安装包: mongodb-linux-x86_64-rhel70-3.4.1.tgz

搭建一主一备一仲裁的分片集群;

4、端口分配如下

mongos:20000

config:21000

shard1:27001

shard2:27002

shard3:27003

准备安装,分别建立对应的文件夹进行存储数据及数据库日志,建立config、 mongos、shard1、shard2、shard3

Config文件夹下建立data文件夹,mongos文件夹下存储mongos日志,shard文件夹下分别创建data、log文件夹;

5、配置configServer

在config文件夹下创建config.conf文件

Vi  /data/mongodb/config/config.conf

配置如下

dbpath = /home/mongodb/config/data #数据库位置

logpath = /home/mongodb/mongos/log/config.log #日志位置

logappend = true

bind_ip = 0.0.0.0 #开放IP

port = 21000  # 端口

fork = true

rest = true

httpinterface = true

#declare this is a config db of a cluster;

configsvr = true

#副本集名称

replSet=configs

#设置最大连接数

maxConns=20000

wiredTigerCacheSizeGB = 230  #设置内存最大限制

#auth = true #密码设置访问

#keyFile = /home/mongodb/config/onlineimagemongo.key   #密码文件路径

注意  auth 和keyfile 配置密码的时候在用,这里先注释

启动三台服务器config server

./mongod -f /home/mongodb/config/config.conf

登录任意一台配置服务器,初始化配置副本集

#连接

mongo --port 21000 注意config变量需单独输入

#config变量

config = {

...    _id : "configs",

...     members : [

...         {_id : 0, host : "10.184.16.18:21000" },

...         {_id : 1, host : "10.184.16.19:21000" },

...         {_id : 2, host : "10.184.16.20:21000" }

...     ]

... }

#初始化副本集

rs.initiate(config)

其中,”_id” : “configs”应与配置文件中配置的 replicaction.replSetName 一致,”members” 中的 “host” 为三个节点的 ip 和 port

6、设置分片集,第一个

编辑配置文件

Vi  /home/mongodb/shard1/config.conf

dbpath = /home/mongodb/shard1/data

logpath = /home/mongodb/shard1/log/shard1.log

logappend = true

bind_ip = 0.0.0.0

port = 27001

fork = true

#打开web监控

httpinterface=true

rest=true

#副本集名称

replSet=shard1

#declare this is a shard db of a cluster;

shardsvr = true

#设置最大连接数

maxConns=20000

wiredTigerCacheSizeGB = 230

#auth = true

#keyFile = /home/mongodb/config/onlineimagemongo.key

启动三台服务器分片1

./mongod -f /home/mongodb/shard1/config.conf

登陆任意一台服务器,配置副本,初始化副本集

./mongo --port 27001

配置副本集

#使用admin数据库

use admin

#定义副本集配置,第三个节点的 "arbiterOnly":true 代表其为仲裁节点。

config = {

...    _id : "shard1",

...     members : [

...         {_id : 0, host : "10.184.16.18:27001" },

...         {_id : 1, host : "10.184.16.19:27001" },

...         {_id : 2, host : "10.184.16.20:27001” , arbiterOnly: true }

...     ]

... }

#初始化副本集配置

rs.initiate(config);

7、设置第二个分片集

编辑配置文件

Vi  /home/mongodb/shard2/config.conf

dbpath = /home/mongodb/shard2/data

logpath = /home/mongodb/shard2/log/shard2.log

logappend = true

bind_ip = 0.0.0.0

port = 27002

fork = true

#打开web监控

httpinterface=true

rest=true

#副本集名称

replSet=shard2

#declare this is a shard db of a cluster;

shardsvr = true

#设置最大连接数

maxConns=20000

wiredTigerCacheSizeGB = 230

#auth = true

#keyFile = /home/mongodb/config/onlineimagemongo.key

启动三台服务器分片2

./mongod -f /home/mongodb/shard2/config.conf

登陆任意一台服务器,配置副本,初始化副本集

./mongo --port 27002

#使用admin数据库

use admin

#定义副本集配置,第三个节点的 "arbiterOnly":true 代表其为仲裁节点。

config = {

...    _id : "shard1",

...     members : [

...         {_id : 0, host : "10.184.16.18:27002" },

...         {_id : 1, host : "10.184.16.19:27002" , arbiterOnly: true },

...         {_id : 2, host : "10.184.16.20:27002” }

...     ]

... }

#初始化副本集配置

rs.initiate(config);

8、设置第三个分片

编辑配置文件

Vi  /home/mongodb/shard3/config.conf

dbpath = /home/mongodb/shard3/data

logpath = /home/mongodb/shard3/log/shard1.log

logappend = true

bind_ip = 0.0.0.0

port = 27003

fork = true

#打开web监控

httpinterface=true

rest=true

#副本集名称

replSet=shard3

#declare this is a shard db of a cluster;

shardsvr = true

#设置最大连接数

maxConns=20000

wiredTigerCacheSizeGB = 230

#auth = true

#keyFile = /home/mongodb/config/onlineimagemongo.key

启动三台服务器分片3

./mongod -f /home/mongodb/shard3/config.conf

登陆任意一台服务器,配置副本,初始化副本集

./mongo --port 27003

#使用admin数据库

use admin

#定义副本集配置,第三个节点的 "arbiterOnly":true 代表其为仲裁节点。

config = {

...    _id : "shard1",

...     members : [

...         {_id : 0, host : "10.184.16.18:27003" , arbiterOnly: true },

...         {_id : 1, host : "10.184.16.19:27003" },

...         {_id : 2, host : "10.184.16.20:27003” }

...     ]

... }

#初始化副本集配置

rs.initiate(config);

9、配置路由服务器 mongos

配置三台服务器mongos路由配置文件

Vi  /home/mongodb/config/mongos.conf

logpath = /home/mongodb/mongos/log/mongos.log

logappend = true

bind_ip = 0.0.0.0

port = 20000

fork = true

#监听的配置服务器,只能有1个或者3个 configs为配置服务器的副本集名字

configdb = configs/10.214.11.13:21000,10.214.11.14:21000,10.214.11.15:21000

#设置最大连接数

maxConns=20000

#auth = true

#keyFile = /home/mongodb/config/onlineimagemongo.key

启动三台服务器的mongos server

mongos -f /usr/local/mongodb/conf/mongos.conf

启用分片

目前搭建了mongodb配置服务器、路由服务器,各个分片服务器,不过应用程序连接到mongos路由服务器并不能使用分片机制,还需要在程序里设置分片配置,让分片生效。

登陆任意一台mongos

./mongo --port 20000

#使用admin数据库

use  admin

#串联路由服务器与分配副本集

sh.addShard("shard1/10.184.16.18:27001,10.184.16.19:27001,10.184.16.20:27001")

sh.addShard("shard2/10.184.16.18:27002,10.184.16.19:27002,10.184.16.20:27002")

sh.addShard("shard3/10.184.16.18:27003,10.184.16.19:27003,10.184.16.20:27003")

#查看集群状态

sh.status()

查看集群状态

自此搭建一主一备一仲裁的分片集群完成;

db.runCommand( { enablesharding : "testdb"});数据库进行分片

#指定testdb分片生效

db.runCommand( { enablesharding :"testdb"});

#指定数据库里需要分片的集合和片键

db.runCommand( { shardcollection : "testdb.table1",key : {id: 1} } )

10、启动和关闭

关闭进程,查看mongo进程

Ps -ef | grep mongo

关闭进程利用kill 加ID 进行关闭

启动进程按照下面顺序进行启动

./mongod -f /home/mongodb/config/config.conf

./mongod -f /home/mongodb/shard1/config.conf

./mongod -f /home/mongodb/shard2/config.conf

./mongod -f /home/mongodb/shard3/config.conf

./mongos -f /home/mongodb/config/mongos.conf

11、设置密码访问

连接任意一台机器的mongos

./mongo --port 20000

use admin    #注意一定要使用admin数据库

db.createUser(

{

user:"your account",

pwd:"your password",

roles:[{role:"root",db:"admin"}]

}

退出创建副本集认证的key文件

openssl rand -base64 512 -out ./keyfile.key

分别传输拷贝在另外三台同样的路径并进行授权

chmod 600 keyfile.key   #进行授权该文件

在三台服务器中config server服务、shard1、shard2、shard3中启用之前的配置文件中配置的密码设置访问,并设置路径,关闭所有mongos进程,从设置密码、生成key文件的服务器进行服务重启,按照顺序

./mongod -f /home/mongodb/config/config.conf

./mongod -f /home/mongodb/shard1/config.conf

./mongod -f /home/mongodb/shard2/config.conf

./mongod -f /home/mongodb/shard3/config.conf

./mongos -f /home/mongodb/config/mongos.conf

重启后进行验证;

./mongo --port 20000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小崔不闹

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

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

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

打赏作者

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

抵扣说明:

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

余额充值