使用keyfile部署分片集群

2021-08-20 23:38:50 字數 3057 閱讀 4749

mkdir -p /configdb/
openssl rand -base64 756 > /db/conf/keyfile

chmod 400 /db/conf/keyfile

生成後複製到所有節點,集群中所有節點使用同乙個keyfile

storage:

dbpath: "/configdb/data"

journal:

enabled: true

systemlog:

destination: file

path: "/configdb/log/mongod.log"

processmanagement:

fork: true

net:

bindip: 192.168

.3.103,127.0

.0.1

port: 27020

security:

keyfile: "/configdb/conf/keyfile"

sharding:

clusterrole: configsvr

replication:

replsetname: "config"

mongod -f /configdb/conf/mongod.conf
當前還沒有使用者被建立,只能通過localhost介面連線到 mongo shell,第乙個使用者被建立後,localhost介面關閉。

rs

.initiate(

, ,

]})

mkdir -p /sharddb/
集群中所有節點使用同乙個keyfile, 使用上面的keyfile檔案

storage:

dbpath: "/sharddb/data"

engine: wiredtiger

wiredtiger:

engineconfig:

cachesizegb: 4

indexconfig:

prefixcompression: true

journal:

enabled: true

systemlog:

destination: file

path: "/sharddb/log/mongod.log"

processmanagement:

fork: true

net:

bindip: 192.168

.3.103,127.0

.0.1

port: 27018

security:

keyfile: "/sharddb/conf/keyfile"

replication:

oplogsizemb: 5000

replsetname: "rs1"

sharding:

clusterrole: shardsvr

各mongod例項按實際情況修改以上引數

mongod -f /sharddb/conf/mongod.conf
當前還沒有使用者被建立,只能通過localhost介面連線到 mongo shell,第乙個使用者被建立後,localhost介面關閉。

rs

.initiate(

, ,

]})

第乙個使用者建立完成後,localhost exception就不可用了,所以第乙個使用者(例如:useradminanydatabase)必須具有建立使用者的許可權

必須在主節點上建立使用者

use

admin

db.createuser(

]})

集群管理員使用者可以修改複製集配置

use

admin

db.createuser(]}

)

mkdir -p /mongos/
集群中所有節點使用同乙個keyfile, 使用上面的keyfile檔案

systemlog:

destination: file

path: "/mongos/log/mongos.log"

processmanagement:

fork: true

net:

bindip: 192.168

.3.103,127.0

.0.1

port: 27019

security:

keyfile: "/mongos/conf/keyfile"

sharding:

configdb: config/192.168

.3.103:27020, 192.168

.3.104:27020, 192.168

.3.105:27020

mongos -f /mongos/conf/mongos.conf
當前還沒有使用者被建立,只能通過localhost介面連線到 mongo shell,第乙個使用者被建立後,localhost介面關閉。

use

admin

db.createuser(

]})

use

admin

db.createuser(]}

)

以下操作必須用集群管理員操作

sh.addshard('rs1/192.168.3.103:27018')
sh.enablesharding('test')
sh.shardcollection(".",  )
片鍵必須是索引,如果集合是空的,會自動建索引

mongodb部署分片集群

在3臺centos 6伺服器上部署mongodb分片集群,其中副本集 replica set 部署在不同的伺服器上,每個伺服器有乙個配置 config 副本集,兩個分片 sharding 副本集,以及乙個mongos服務。所以3臺伺服器總共需要部署12個服務。3臺伺服器ip分別是 172.16.66...

mongoDB 分片集群部署

mongodb將大量的資料檔案進行切割,將切割的資料塊分別儲存到不同的片上,其中每個片為乙個副本集,而對外通過mongos提供統一介面,使用者實際上感覺不到內部分片機制。replicaset 副本集 mongodb集群的一種實現方式,該副本集由一台活躍mongodb伺服器 節點 和兩台非活躍mong...

mongodb分布式集群部署,集群分片策略

由於專案需要,要部署乙個副本集的分片集群,有三個伺服器用來部署mongodb,我們將資料分為2個副本集分片,並分別部署2個config server和2個mongos,則具體分配如下 server 192.168.155.224 10001 shard1 10002 shard2 20001 con...