首页 > 数据库 >mongodb分片集群安装部署

mongodb分片集群安装部署

时间:2025-03-01 15:53:49浏览次数:8  
标签:... mongodb 10.184 集群 分片 home config true

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

标签:...,mongodb,10.184,集群,分片,home,config,true
From: https://blog.csdn.net/2301_79294686/article/details/145932746

相关文章