国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MongoDB > 正文

MongoDB分片集群部署詳解

2020-10-29 18:41:55
字體:
供稿:網(wǎng)友

 一、環(huán)境說明

1、我們prod環(huán)境MongoDB的集群架構(gòu)是做的分片集群的部署,但是目前我們沒有分片,即所有數(shù)據(jù)都在一個分片上,后期如果數(shù)量大,需要分配,集群隨時可以分片,對業(yè)務(wù)方透明

2、各個角色的部署情況

角色 IP 端口 復(fù)制集名稱
mongos 172.21.244.101,172.21.244.102,172.21.244.94 27000
config server 172.21.244.101,172.21.244.102,172.21.244.94 27100 repl_configsvr
存儲節(jié)點(shard) 172.21.244.101,172.21.244.102,172.21.244.94 27101 shard1

3、MongoDB版本

mongos> db.version()4.0.4-62-g7e345a7

二、基礎(chǔ)信息準備

0、系統(tǒng)優(yōu)化

echo "never" >/sys/kernel/mm/transparent_hugepage/enabledecho "never" >/sys/kernel/mm/transparent_hugepage/defrag

1、下載MongoDB二進制文件

cd /chj/appwget ops.chehejia.com:9090/pkg/chj_mongodb_4.0.4.tar.gztar -zxvf chj_mongodb_4.0.4.tar.gz

2、相關(guān)目錄建立

#建立base目錄mkdir /chj/data/mongodb/chj_db#把MongoDB二進制文件移動到base目錄下的bin文件夾mv chj_mongodb_4.0.4/bin /chj/data/mongodb/chj_db/bin#建立認證文件目錄mkdir /chj/data/mongodb/chj_db/auth#建立配置文件目錄mkdir /chj/data/mongodb/chj_db/conf#建立config server的data和日志目錄mkdir /chj/data/mongodb/chj_db/config/data -pmkdir /chj/data/mongodb/chj_db/config/log#建立mongos的日志目錄mkdir /chj/data/mongodb/chj_db/mongos/log -p#建立數(shù)據(jù)節(jié)點data和日志目錄 mkdir /chj/data/mongodb/chj_db/shard1/data -pmkdir /chj/data/mongodb/chj_db/shard1/log

3、相關(guān)配置文件編寫

A、mongos的配置文件編寫

vim /chj/data/mongodb/chj_db/conf/mongos.confsystemLog: destination: file logAppend: true path: /chj/data/mongodb/chj_db/mongos/log/mongos.logprocessManagement: fork: true # fork and run in background pidFilePath: /chj/data/mongodb/chj_db/mongos/log/mongos.pid # location of pidfile timeZoneInfo: /usr/share/zoneinfonet: port: 27000 bindIpAll: true maxIncomingConnections: 1000 unixDomainSocket:  enabled: true  pathPrefix: /chj/data/mongodb/chj_db/mongos/log  filePermissions: 0700security: keyFile: /chj/data/mongodb/chj_db/auth/keyfile.key# authorization: enabled#replication:sharding: configDB: repl_configsvr/172.21.244.101:27100,172.21.244.102:27100,172.21.244.94:27100

B、config server的配置文件編寫

vim /chj/data/mongodb/chj_db/conf/config.confsystemLog: destination: file logAppend: true path: /chj/data/mongodb/chj_db/config/log/congigsrv.logstorage: dbPath: /chj/data/mongodb/chj_db/config/data journal:  enabled: true wiredTiger:  engineConfig:   directoryForIndexes: trueprocessManagement: fork: true # fork and run in background pidFilePath: /chj/data/mongodb/chj_db/config/log/configsrv.pid # location of pidfile timeZoneInfo: /usr/share/zoneinfonet: port: 27100 bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting. #bindIpAll: true maxIncomingConnections: 1000 unixDomainSocket:  enabled: true  pathPrefix: /chj/data/mongodb/chj_db/config/data  filePermissions: 0700security: keyFile: /chj/data/mongodb/chj_db/auth/keyfile.key authorization: enabledreplication: replSetName: repl_configsvrsharding: clusterRole: configsvr

C、存儲節(jié)點的配置文件編寫

vim /chj/data/mongodb/chj_db/conf/shard1.confsystemLog: destination: file logAppend: true path: /chj/data/mongodb/chj_db/shard1/log/shard1.logstorage: dbPath: /chj/data/mongodb/chj_db/shard1/data journal:  enabled: true wiredTiger:  engineConfig:   directoryForIndexes: trueprocessManagement: fork: true # fork and run in background pidFilePath: /chj/data/mongodb/chj_db/shard1/log/shard1.pid # location of pidfile timeZoneInfo: /usr/share/zoneinfonet: port: 27101 bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting. #bindIpAll: true maxIncomingConnections: 1000 unixDomainSocket:  enabled: true  pathPrefix: /chj/data/mongodb/chj_db/shard1/data  filePermissions: 0700security: keyFile: /chj/data/mongodb/chj_db/auth/keyfile.key authorization: enabledreplication: replSetName: shard1sharding: clusterRole: shardsvr

4、生產(chǎn)key認證文件

echo "chj123456" >/chj/data/mongodb/chj_db/auth/keyfile.key#設(shè)置文件的權(quán)限為400,不然服務(wù)無法啟動chmod 400 /chj/data/mongodb/chj_db/auth/keyfile.key

三、集群初始化

1、啟動 config server 服務(wù)

/chj/data/mongodb/chj_db/bin/mongod -f /chj/data/mongodb/chj_db/conf/config.conf

2、初始化config server集群

#登錄其中一個config server節(jié)點/chj/data/mongodb/chj_db/bin/mongo --port 27100#配置集群config = { _id:"repl_configsvr",members:[ {_id:0,host:"172.21.244.101:27100"}, {_id:1,host:"172.21.244.102:27100"}, {_id:2,host:"172.21.244.94:27100"}] }#初始化集群rs.initiate(config)PS:結(jié)果輸出如下,說明集群初始化成功,可以通過rs.status()命令查看集群狀態(tài){    "ok" : 1,    "$gleStats" : {        "lastOpTime" : Timestamp(1557538260, 1),        "electionId" : ObjectId("000000000000000000000000")    },    "lastCommittedOpTime" : Timestamp(0, 0)}

3、啟動存儲節(jié)點服務(wù)

/chj/data/mongodb/chj_db/bin/mongod -f /chj/data/mongodb/chj_db/conf/shard1.conf

4、初始化存儲集群

#登錄你希望是主節(jié)點的服務(wù)器/chj/data/mongodb/chj_db/bin/mongo --port 27101#配置集群config = { _id:"shard1",members:[ {_id:0,host:"172.21.244.101:27101"}, {_id:1,host:"172.21.244.102:27101"},{_id:2,host:"172.21.244.94:27101",arbiterOnly:true}] }#初始化集群rs.initiate(config)PS:結(jié)果輸出如下,說明集群初始化成功,可以通過rs.status()命令查看集群狀態(tài){ "ok" : 1 }

5、添加存儲集群的管理賬號

登錄主節(jié)點

/chj/data/mongodb/chj_db/bin/mongo --port 27101use admindb.createUser({user: "root",pwd: "123456",roles: [ { role: "root", db: "admin" } ]})

6、啟動mongos 服務(wù)

/chj/data/mongodb/chj_db/bin/mongos -f /chj/data/mongodb/chj_db/conf/mongos.conf

7、添加config server的管理賬號

登錄任意一個mongos節(jié)點

/chj/data/mongodb/chj_db/bin/mongo --port 27000use admindb.createUser({user: "root",pwd: "123456",roles: [ { role: "root", db: "admin" } ]})

8、把存儲節(jié)點添加到mongos

登錄任意一個mongos節(jié)點(如果是在上一步的窗口,需要退出重新登錄)

/chj/data/mongodb/chj_db/bin/mongo --port 27000use admindb.auth('root','123456')#添加分片sh.addShard('shard1/172.21.244.101:27101,172.21.244.102:27101,172.21.244.94:27101')#查看分片狀態(tài)sh.status()

四、交付業(yè)務(wù)方

1、建立應(yīng)用賬號

登錄任意一個mongos節(jié)點/chj/data/mongodb/chj_db/bin/mongo --port 27000use admindb.auth('root','123456')#切到業(yè)務(wù)數(shù)據(jù)庫use chj_db#建立讀寫賬號db.createUser({  user: "chj_db_rw",  pwd: "123456",  roles: [   { role: "readWrite", db: "chj_db" },   { role: "dbOwner", db: "chj_db" }  ]})#建立只讀賬號(根據(jù)業(yè)務(wù)需求確認是否需要)db.createUser({user: "chj_db_r",pwd: "123456",roles: [ { role: "read", db: "chj_db" } ]})

2、交付開發(fā)人員信息

連接地址:172.21.244.101:27000,172.21.244.102:27000,172.21.244.94:27000庫名:chj_db賬號:chj_db_rw密碼:123456

五、數(shù)據(jù)庫啟用分片

如果后期業(yè)務(wù)量大,需要開啟分片,配置如下

#指定需要分片的數(shù)據(jù)庫mongos> sh.enableSharding("chj_db") {    "ok" : 1,    "operationTime" : Timestamp(1557546835, 3),    "$clusterTime" : {        "clusterTime" : Timestamp(1557546835, 3),        "signature" : {            "hash" : BinData(0,"bkrrr8Kxrr9j9udrDc/hURHld38="),            "keyId" : NumberLong("6689575940508352541")        }    }}#在chj_db數(shù)據(jù)庫和users集合中創(chuàng)建了name和age為升序的片鍵mongos> sh.shardCollection("chj_db.users",{name:1,age:1}) {    "collectionsharded" : "chj_db.users",    "collectionUUID" : UUID("59c0b99f-efff-4132-b489-f6c7e3d98f42"),    "ok" : 1,    "operationTime" : Timestamp(1557546861, 12),    "$clusterTime" : {        "clusterTime" : Timestamp(1557546861, 12),        "signature" : {            "hash" : BinData(0,"UBB1A/YODnmXwG5eAhgNLcKVzug="),            "keyId" : NumberLong("6689575940508352541")        }    }}#查看分片情況mongos> sh.status() --- Sharding Status --- sharding version: {    "_id" : 1,    "minCompatibleVersion" : 5,    "currentVersion" : 6,    "clusterId" : ObjectId("5cd625e0da695346d740f749") } shards:    { "_id" : "shard1", "host" : "shard1/172.21.244.101:27101,172.21.244.102:27101", "state" : 1 } active mongoses:    "4.0.4-62-g7e345a7" : 3 autosplit:    Currently enabled: yes balancer:    Currently enabled: yes    Currently running: no    Failed balancer rounds in last 5 attempts: 0    Migration Results for the last 24 hours:        No recent migrations databases:    { "_id" : "chj_db", "primary" : "shard1", "partitioned" : true, "version" : { "uuid" : UUID("82088bc7-7b98-4033-843d-7058d8d959f6"), "lastMod" : 1 } }        chj_db.users            shard key: { "name" : 1, "age" : 1 }            unique: false            balancing: true            chunks:                shard1 1            { "name" : { "$minKey" : 1 }, "age" : { "$minKey" : 1 } } -->> { "name" : { "$maxKey" : 1 }, "age" : { "$maxKey" : 1 } } on : shard1 Timestamp(1, 0)    { "_id" : "config", "primary" : "config", "partitioned" : true }        config.system.sessions            shard key: { "_id" : 1 }            unique: false            balancing: true            chunks:                shard1 1            { "_id" : { "$minKey" : 1 } } -->> { "_id" : { "$maxKey" : 1 } } on : shard1 Timestamp(1, 0)

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 瑞昌市| 宁武县| 宿州市| 庄河市| 武隆县| 周口市| 确山县| 宕昌县| 安顺市| 海盐县| 河北区| 常宁市| 大兴区| 启东市| 维西| 马山县| 正安县| 蓝山县| 庄浪县| 庆城县| 桃园市| 大余县| 洱源县| 阿巴嘎旗| 托克逊县| 延寿县| 嵊州市| 拜泉县| 武功县| 交口县| 大新县| 同心县| 来安县| 沙湾县| 富平县| 高密市| 克东县| 鄂州市| 通江县| 横山县| 开阳县|