好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > MongoDB分片集群部署詳解

MongoDB分片集群部署詳解

熱門標簽:濟南電銷機器人加盟公司 老虎洗衣店地圖標注 杭州人工電銷機器人價格 電銷機器人是什么軟件 廣州長安公司怎樣申請400電話 怎么投訴地圖標注 蘋果汽車租賃店地圖標注 呼和浩特電銷外呼系統加盟 云南外呼系統

 一、環境說明

1、我們prod環境MongoDB的集群架構是做的分片集群的部署,但是目前我們沒有分片,即所有數據都在一個分片上,后期如果數量大,需要分配,集群隨時可以分片,對業務方透明

2、各個角色的部署情況

角色 IP 端口 復制集名稱
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
存儲節點(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

二、基礎信息準備

0、系統優化

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

1、下載MongoDB二進制文件

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

2、相關目錄建立

#建立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 -p
mkdir /chj/data/mongodb/chj_db/config/log
#建立mongos的日志目錄
mkdir /chj/data/mongodb/chj_db/mongos/log -p
#建立數據節點data和日志目錄 
mkdir /chj/data/mongodb/chj_db/shard1/data -p
mkdir /chj/data/mongodb/chj_db/shard1/log

3、相關配置文件編寫

A、mongos的配置文件編寫

vim /chj/data/mongodb/chj_db/conf/mongos.conf
systemLog:
 destination: file
 logAppend: true
 path: /chj/data/mongodb/chj_db/mongos/log/mongos.log

processManagement:
 fork: true # fork and run in background
 pidFilePath: /chj/data/mongodb/chj_db/mongos/log/mongos.pid # location of pidfile
 timeZoneInfo: /usr/share/zoneinfo

net:
 port: 27000
 bindIpAll: true
 maxIncomingConnections: 1000
 unixDomainSocket:
  enabled: true
  pathPrefix: /chj/data/mongodb/chj_db/mongos/log
  filePermissions: 0700

security:
 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.conf
systemLog:
 destination: file
 logAppend: true
 path: /chj/data/mongodb/chj_db/config/log/congigsrv.log

storage:
 dbPath: /chj/data/mongodb/chj_db/config/data
 journal:
  enabled: true
 wiredTiger:
  engineConfig:
   directoryForIndexes: true

processManagement:
 fork: true # fork and run in background
 pidFilePath: /chj/data/mongodb/chj_db/config/log/configsrv.pid # location of pidfile
 timeZoneInfo: /usr/share/zoneinfo

net:
 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: 0700

security:
 keyFile: /chj/data/mongodb/chj_db/auth/keyfile.key
 authorization: enabled

replication:
 replSetName: repl_configsvr
sharding:
 clusterRole: configsvr

C、存儲節點的配置文件編寫

vim /chj/data/mongodb/chj_db/conf/shard1.conf
systemLog:
 destination: file
 logAppend: true
 path: /chj/data/mongodb/chj_db/shard1/log/shard1.log

storage:
 dbPath: /chj/data/mongodb/chj_db/shard1/data
 journal:
  enabled: true
 wiredTiger:
  engineConfig:
   directoryForIndexes: true

processManagement:
 fork: true # fork and run in background
 pidFilePath: /chj/data/mongodb/chj_db/shard1/log/shard1.pid # location of pidfile
 timeZoneInfo: /usr/share/zoneinfo

net:
 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: 0700

security:
 keyFile: /chj/data/mongodb/chj_db/auth/keyfile.key
 authorization: enabled

replication:
 replSetName: shard1
sharding:
 clusterRole: shardsvr

4、生產key認證文件

echo "chj123456" >/chj/data/mongodb/chj_db/auth/keyfile.key
#設置文件的權限為400,不然服務無法啟動
chmod 400 /chj/data/mongodb/chj_db/auth/keyfile.key

三、集群初始化

1、啟動 config server 服務

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

2、初始化config server集群

#登錄其中一個config server節點
/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:
結果輸出如下,說明集群初始化成功,可以通過rs.status()命令查看集群狀態
{
    "ok" : 1,
    "$gleStats" : {
        "lastOpTime" : Timestamp(1557538260, 1),
        "electionId" : ObjectId("000000000000000000000000")
    },
    "lastCommittedOpTime" : Timestamp(0, 0)
}

3、啟動存儲節點服務

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

4、初始化存儲集群

#登錄你希望是主節點的服務器
/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:
結果輸出如下,說明集群初始化成功,可以通過rs.status()命令查看集群狀態
{ "ok" : 1 }

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

登錄主節點

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

6、啟動mongos 服務

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

7、添加config server的管理賬號

登錄任意一個mongos節點

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

8、把存儲節點添加到mongos

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

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

四、交付業務方

1、建立應用賬號

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

2、交付開發人員信息

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

五、數據庫啟用分片

如果后期業務量大,需要開啟分片,配置如下

#指定需要分片的數據庫
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數據庫和users集合中創建了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)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 如何為MongoDB添加分片副本集
  • 分布式文檔存儲數據庫之MongoDB分片集群的問題
  • MongoDB搭建高可用集群的完整步驟(3個分片+3個副本)
  • Mongodb副本集和分片示例詳解
  • MongoDB分片在部署與維護管理中常見的事項總結大全
  • 詳解MongoDB4.0構建分布式分片群集
  • MongoDB分片鍵的選擇和案例實例詳解
  • MongoDB分片詳解
  • mongodb分片技術_動力節點Java學院整理
  • mongodb3.4集群搭建實戰之高可用的分片+副本集
  • 深入理解MongoDB分片的管理
  • Mongodb 刪除添加分片與非分片表維護
  • MongoDB 主分片(primary shard)相關總結

標簽:自貢 泰安 雞西 玉林 無錫 廈門 興安盟 遼陽

巨人網絡通訊聲明:本文標題《MongoDB分片集群部署詳解》,本文關鍵詞  MongoDB,分片,集群,部署,詳解,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MongoDB分片集群部署詳解》相關的同類信息!
  • 本頁收集關于MongoDB分片集群部署詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 校花自慰被调教成妓女| 特级淫片aaaa**毛片| 精品视频一区二区三区在线观看| 欧美特级AB高潮毛片生活| 日韩在线观看免费完整版视频| 女性私密紧致视频| 日本成年人视频网站| 国产伦理无套进入| 久久99精品久久久久久国产越南| 国产成人精品综合久久久久性色 | 久久加久久| 极品尤物翘臀裸感被猛然发现| 被c到喷水嗯H办公室1v1视频| 午夜试看120秒小视频动态图| 51国产熟妇无码精品视频AV| 亚洲精品无码久久久久A片| 《睡眠指导1∽6集》| 欧美高潮喷谢精水XXX小说| 含紧一点H娇喘快一点好爽H漫画| 色花堂久久久一区二区三区综合| sedaohang.us官网| 9色丨PORNY丨人妻| 看污的网站| 欧美破处在线| 一本色道无码道DVD在线观看,| 国产成人久久综合二区| 隔壁肉香| 黑人巨大av日本人无码| 好紧好爽好湿别拔出来视频男男| 真人一级毛片直播强弓治疗仪 | babesvideos激烈国产| 天美传媒董小宛视频| 97在线精品| 乱荡一区二区三区视频| 米奇7777最新地域网名是什么| 国产91?在线播放九色竹菊影视| 女人18毛多水多A片毛片7777| gogo最专业大尺度高清人体| 公主被强出水呻吟被中出A片视频| 女明星艳妇系列短篇目录| 秋霞成人午夜鲁丝一区二区三区 |