婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > mongodb3.4集群搭建實戰(zhàn)之高可用的分片+副本集

mongodb3.4集群搭建實戰(zhàn)之高可用的分片+副本集

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

前言

最近因為工作的原因,在學習使用mongodb數(shù)據(jù)庫,mongodb是最常用的nodql數(shù)據(jù)庫,在數(shù)據(jù)庫排名中已經(jīng)上升到了前六。這篇文章介紹如何搭建高可用的mongodb(分片+副本)集群,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹:

在搭建集群之前,需要首先了解幾個概念:路由,分片、副本集、配置服務器等。

相關概念

先來看一張圖:

從圖中可以看到有四個組件:mongos、config server、shard、replica set。

mongos,數(shù)據(jù)庫集群請求的入口,所有的請求都通過mongos進行協(xié)調,不需要在應用程序添加一個路由選擇器,mongos自己就是一個請求分發(fā)中心,它負責把對應的數(shù)據(jù)請求請求轉發(fā)到對應的shard服務器上。在生產(chǎn)環(huán)境通常有多mongos作為請求的入口,防止其中一個掛掉所有的mongodb請求都沒有辦法操作。

config server,顧名思義為配置服務器,存儲所有數(shù)據(jù)庫元信息(路由、分片)的配置。mongos本身沒有物理存儲分片服務器和數(shù)據(jù)路由信息,只是緩存在內(nèi)存里,配置服務器則實際存儲這些數(shù)據(jù)。mongos第一次啟動或者關掉重啟就會從 config server 加載配置信息,以后如果配置服務器信息變化會通知到所有的 mongos 更新自己的狀態(tài),這樣 mongos 就能繼續(xù)準確路由。在生產(chǎn)環(huán)境通常有多個 config server 配置服務器,因為它存儲了分片路由的元數(shù)據(jù),防止數(shù)據(jù)丟失!

shard,分片(sharding)是指將數(shù)據(jù)庫拆分,將其分散在不同的機器上的過程。將數(shù)據(jù)分散到不同的機器上,不需要功能強大的服務器就可以存儲更多的數(shù)據(jù)和處理更大的負載。基本思想就是將集合切成小塊,這些塊分散到若干片里,每個片只負責總數(shù)據(jù)的一部分,最后通過一個均衡器來對各個分片進行均衡(數(shù)據(jù)遷移)。

replica set,中文翻譯副本集,其實就是shard的備份,防止shard掛掉之后數(shù)據(jù)丟失。復制提供了數(shù)據(jù)的冗余備份,并在多個服務器上存儲數(shù)據(jù)副本,提高了數(shù)據(jù)的可用性, 并可以保證數(shù)據(jù)的安全性。

仲裁者(Arbiter),是復制集中的一個MongoDB實例,它并不保存數(shù)據(jù)。仲裁節(jié)點使用最小的資源并且不要求硬件設備,不能將Arbiter部署在同一個數(shù)據(jù)集節(jié)點中,可以部署在其他應用服務器或者監(jiān)視服務器中,也可部署在單獨的虛擬機中。為了確保復制集中有奇數(shù)的投票成員(包括primary),需要添加仲裁節(jié)點做為投票,否則primary不能運行時不會自動切換primary。

簡單了解之后,我們可以這樣總結一下,應用請求mongos來操作mongodb的增刪改查,配置服務器存儲數(shù)據(jù)庫元信息,并且和mongos做同步,數(shù)據(jù)最終存入在shard(分片)上,為了防止數(shù)據(jù)丟失同步在副本集中存儲了一份,仲裁在數(shù)據(jù)存儲到分片的時候決定存儲到哪個節(jié)點。

環(huán)境準備

  • 系統(tǒng)系統(tǒng) centos6.5
  • 三臺服務器:192.168.0.75/84/86
  • 安裝包: mongodb-linux-x86_64-3.4.6.tgz

服務器規(guī)劃

服務器75 服務器84 服務器86
mongos mongos mongos
config server config server config server
shard server1 主節(jié)點 shard server1 副節(jié)點 shard server1 仲裁
shard server2 仲裁 shard server2 主節(jié)點 shard server2 副節(jié)點
shard server3 副節(jié)點 shard server3 仲裁 shard server3 主節(jié)點

端口分配:

mongos:20000
config:21000
shard1:27001
shard2:27002
shard3:27003

集群搭建

1、安裝mongodb

#解壓
tar -xzvf mongodb-linux-x86_64-3.4.6.tgz -C /usr/local/
#改名
mv mongodb-linux-x86_64-3.4.6 mongodb

分別在每臺機器建立conf、mongos、config、shard1、shard2、shard3六個目錄,因為mongos不存儲數(shù)據(jù),只需要建立日志文件目錄即可。

mkdir -p /usr/local/mongodb/conf
mkdir -p /usr/local/mongodb/mongos/log
mkdir -p /usr/local/mongodb/config/data
mkdir -p /usr/local/mongodb/config/log
mkdir -p /usr/local/mongodb/shard1/data
mkdir -p /usr/local/mongodb/shard1/log
mkdir -p /usr/local/mongodb/shard2/data
mkdir -p /usr/local/mongodb/shard2/log
mkdir -p /usr/local/mongodb/shard3/data
mkdir -p /usr/local/mongodb/shard3/log

配置環(huán)境變量

vim /etc/profile
# 內(nèi)容
export MONGODB_HOME=/usr/local/mongodb
export PATH=$MONGODB_HOME/bin:$PATH
# 使立即生效
source /etc/profile

2、config server配置服務器

mongodb3.4以后要求配置服務器也創(chuàng)建副本集,不然集群搭建不成功。

添加配置文件

vi /usr/local/mongodb/conf/config.conf

## 配置文件內(nèi)容
pidfilepath = /usr/local/mongodb/config/log/configsrv.pid
dbpath = /usr/local/mongodb/config/data
logpath = /usr/local/mongodb/config/log/congigsrv.log
logappend = true
 
bind_ip = 0.0.0.0
port = 21000
fork = true
 
#declare this is a config db of a cluster;
configsvr = true

#副本集名稱
replSet=configs
 
#設置最大連接數(shù)
maxConns=20000

啟動三臺服務器的config server

mongod -f /usr/local/mongodb/conf/config.conf

登錄任意一臺配置服務器,初始化配置副本集

#連接
mongo --port 21000
#config變量
config = {
... _id : "configs",
... members : [
...  {_id : 0, host : "192.168.0.75:21000" },
...  {_id : 1, host : "192.168.0.84:21000" },
...  {_id : 2, host : "192.168.0.86:21000" }
... ]
... }

#初始化副本集
rs.initiate(config)

其中,”_id” : “configs”應與配置文件中配置的 replicaction.replSetName 一致,”members” 中的 “host” 為三個節(jié)點的 ip 和 port

3、配置分片副本集(三臺機器)

設置第一個分片副本集

配置文件

vi /usr/local/mongodb/conf/shard1.conf

#配置文件內(nèi)容
#——————————————–
pidfilepath = /usr/local/mongodb/shard1/log/shard1.pid
dbpath = /usr/local/mongodb/shard1/data
logpath = /usr/local/mongodb/shard1/log/shard1.log
logappend = true

bind_ip = 0.0.0.0
port = 27001
fork = true
 
#打開web監(jiān)控
httpinterface=true
rest=true
 
#副本集名稱
replSet=shard1
 
#declare this is a shard db of a cluster;
shardsvr = true
 
#設置最大連接數(shù)
maxConns=20000

啟動三臺服務器的shard1 server

mongod -f /usr/local/mongodb/conf/shard1.conf

登陸任意一臺服務器,初始化副本集

mongo --port 27001
#使用admin數(shù)據(jù)庫
use admin
#定義副本集配置,第三個節(jié)點的 "arbiterOnly":true 代表其為仲裁節(jié)點。
config = {
... _id : "shard1",
... members : [
...  {_id : 0, host : "192.168.0.75:27001" },
...  {_id : 1, host : "192.168.0.84:27001" },
...  {_id : 2, host : "192.168.0.86:27001” , arbiterOnly: true }
... ]
... }
#初始化副本集配置
rs.initiate(config);

設置第二個分片副本集

配置文件

vi /usr/local/mongodb/conf/shard2.conf

#配置文件內(nèi)容
#——————————————–
pidfilepath = /usr/local/mongodb/shard2/log/shard2.pid
dbpath = /usr/local/mongodb/shard2/data
logpath = /usr/local/mongodb/shard2/log/shard2.log
logappend = true

bind_ip = 0.0.0.0
port = 27002
fork = true
 
#打開web監(jiān)控
httpinterface=true
rest=true
 
#副本集名稱
replSet=shard2
 
#declare this is a shard db of a cluster;
shardsvr = true
 
#設置最大連接數(shù)
maxConns=20000

啟動三臺服務器的shard2 server

mongod -f /usr/local/mongodb/conf/shard2.conf

登陸任意一臺服務器,初始化副本集

mongo --port 27002
#使用admin數(shù)據(jù)庫
use admin
#定義副本集配置
config = {
... _id : "shard2",
... members : [
...  {_id : 0, host : "192.168.0.75:27002" , arbiterOnly: true },
...  {_id : 1, host : "192.168.0.84:27002" },
...  {_id : 2, host : "192.168.0.86:27002" }
... ]
... }

#初始化副本集配置
rs.initiate(config);

設置第三個分片副本集

配置文件

vi /usr/local/mongodb/conf/shard3.conf

 
#配置文件內(nèi)容
#——————————————–
pidfilepath = /usr/local/mongodb/shard3/log/shard3.pid
dbpath = /usr/local/mongodb/shard3/data
logpath = /usr/local/mongodb/shard3/log/shard3.log
logappend = true

bind_ip = 0.0.0.0
port = 27003
fork = true
 
#打開web監(jiān)控
httpinterface=true
rest=true
 
#副本集名稱
replSet=shard3
 
#declare this is a shard db of a cluster;
shardsvr = true
 
#設置最大連接數(shù)
maxConns=20000

啟動三臺服務器的shard3 server

mongod -f /usr/local/mongodb/conf/shard3.conf

登陸任意一臺服務器,初始化副本集

mongo --port 27003
#使用admin數(shù)據(jù)庫
use admin
#定義副本集配置
config = {
... _id : "shard3",
...  members : [
...   {_id : 0, host : "192.168.0.75:27003" },
...   {_id : 1, host : "192.168.0.84:27003" , arbiterOnly: true},
...   {_id : 2, host : "192.168.0.86:27003" }
...  ]
... }

#初始化副本集配置
rs.initiate(config);

4、配置路由服務器 mongos

先啟動配置服務器和分片服務器,后啟動路由實例啟動路由實例:(三臺機器)

vi /usr/local/mongodb/conf/mongos.conf

#內(nèi)容
pidfilepath = /usr/local/mongodb/mongos/log/mongos.pid
logpath = /usr/local/mongodb/mongos/log/mongos.log
logappend = true

bind_ip = 0.0.0.0
port = 20000
fork = true

#監(jiān)聽的配置服務器,只能有1個或者3個 configs為配置服務器的副本集名字
configdb = configs/192.168.0.75:21000,192.168.0.84:21000,192.168.0.86:21000
 
#設置最大連接數(shù)
maxConns=20000

啟動三臺服務器的mongos server

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

5、啟用分片

目前搭建了mongodb配置服務器、路由服務器,各個分片服務器,不過應用程序連接到mongos路由服務器并不能使用分片機制,還需要在程序里設置分片配置,讓分片生效。

登陸任意一臺mongos

mongo --port 20000
#使用admin數(shù)據(jù)庫
user admin
#串聯(lián)路由服務器與分配副本集
sh.addShard("shard1/192.168.0.75:27001,192.168.0.84:27001,192.168.0.86:27001")
sh.addShard("shard2/192.168.0.75:27002,192.168.0.84:27002,192.168.0.86:27002")
sh.addShard("shard3/192.168.0.75:27003,192.168.0.84:27003,192.168.0.86:27003")
#查看集群狀態(tài)
sh.status()

6、測試

目前配置服務、路由服務、分片服務、副本集服務都已經(jīng)串聯(lián)起來了,但我們的目的是希望插入數(shù)據(jù),數(shù)據(jù)能夠自動分片。連接在mongos上,準備讓指定的數(shù)據(jù)庫、指定的集合分片生效。

#指定testdb分片生效
db.runCommand( { enablesharding :"testdb"});
#指定數(shù)據(jù)庫里需要分片的集合和片鍵
db.runCommand( { shardcollection : "testdb.table1",key : {id: 1} } )

我們設置testdb的 table1 表需要分片,根據(jù) id 自動分片到 shard1 ,shard2,shard3 上面去。要這樣設置是因為不是所有mongodb 的數(shù)據(jù)庫和表 都需要分片!

測試分片配置結果

mongo 127.0.0.1:20000
#使用testdb
use testdb;
#插入測試數(shù)據(jù)
for (var i = 1; i = 100000; i++)
db.table1.save({id:i,"test1":"testval1"});
#查看分片情況如下,部分無關信息省掉了
db.table1.stats();

{
  "sharded" : true,
  "ns" : "testdb.table1",
  "count" : 100000,
  "numExtents" : 13,
  "size" : 5600000,
  "storageSize" : 22372352,
  "totalIndexSize" : 6213760,
  "indexSizes" : {
    "_id_" : 3335808,
    "id_1" : 2877952
  },
  "avgObjSize" : 56,
  "nindexes" : 2,
  "nchunks" : 3,
  "shards" : {
    "shard1" : {
      "ns" : "testdb.table1",
      "count" : 42183,
      "size" : 0,
      ...
      "ok" : 1
    },
    "shard2" : {
      "ns" : "testdb.table1",
      "count" : 38937,
      "size" : 2180472,
      ...
      "ok" : 1
    },
    "shard3" : {
      "ns" : "testdb.table1",
      "count" :18880,
      "size" : 3419528,
      ...
      "ok" : 1
    }
  },
  "ok" : 1
}

可以看到數(shù)據(jù)分到3個分片,各自分片數(shù)量為: shard1 “count” : 42183,shard2 “count” : 38937,shard3 “count” : 18880。已經(jīng)成功了!

后期運維

啟動關閉

mongodb的啟動順序是,先啟動配置服務器,在啟動分片,最后啟動mongos.

mongod -f /usr/local/mongodb/conf/config.conf
mongod -f /usr/local/mongodb/conf/shard1.conf
mongod -f /usr/local/mongodb/conf/shard2.conf
mongod -f /usr/local/mongodb/conf/shard3.conf
mongod -f /usr/local/mongodb/conf/mongos.conf

關閉時,直接killall殺掉所有進程

killall mongod
killall mongos

總結

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

參考:

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

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

巨人網(wǎng)絡通訊聲明:本文標題《mongodb3.4集群搭建實戰(zhàn)之高可用的分片+副本集》,本文關鍵詞  mongodb3.4,集群,搭建,實戰(zhàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《mongodb3.4集群搭建實戰(zhàn)之高可用的分片+副本集》相關的同類信息!
  • 本頁收集關于mongodb3.4集群搭建實戰(zhàn)之高可用的分片+副本集的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美日韩精品欧美日韩精品| 91久久精品网| 日本高清成人免费播放| 97精品电影院| 欧美精品黑人性xxxx| 亚洲色图视频网| 粉嫩一区二区三区在线看| 欧美一区二区三区电影| 国产精品看片你懂得| 666欧美在线视频| 成人三级在线视频| 韩国精品主播一区二区在线观看 | 国产精品538一区二区在线| 欧美在线看片a免费观看| 99久久精品国产观看| 国产精品久久久久一区| 另类成人小视频在线| 欧洲精品中文字幕| 蓝色福利精品导航| 蜜桃视频一区二区三区在线观看| 久草精品在线观看| 欧美三级日韩在线| 国产精品青草综合久久久久99| 色婷婷香蕉在线一区二区| 美国毛片一区二区三区| 精品国产亚洲在线| 欧美伦理电影网| 91猫先生在线| 成人黄色片在线观看| 精品处破学生在线二十三| 亚洲午夜精品久久久久久久久| 国产精品18久久久久久vr| 成人激情综合网站| 中文字幕亚洲视频| 日韩精品乱码免费| 国产精品欧美一区喷水| 91亚洲国产成人精品一区二三| 亚洲成av人片一区二区梦乃| 久久综合五月天婷婷伊人| 波多野结衣亚洲一区| 国产精品456露脸| 精品国产网站在线观看| 精品国精品国产| 国产视频不卡一区| 韩国毛片一区二区三区| 国产精品正在播放| 91女人视频在线观看| 7777精品伊人久久久大香线蕉的 | 成人免费黄色在线| 欧美一区二区二区| 麻豆精品久久精品色综合| 久久久影视传媒| 成人99免费视频| 午夜影院在线观看欧美| 日韩欧美中文一区二区| 五月天网站亚洲| 精品国产免费视频| 国产成人自拍网| 亚洲精品一二三四区| 欧美日韩久久久久久| 国产一区二区在线免费观看| 18欧美亚洲精品| 亚洲美女淫视频| 亚洲色欲色欲www| 一区2区3区在线看| 国产精品天天看| 成人免费三级在线| 亚洲永久免费视频| 日韩欧美专区在线| 日本不卡一区二区三区高清视频| 91香蕉视频在线| 夜夜精品视频一区二区| 色综合天天综合给合国产| 久久综合九色综合欧美亚洲| 色综合欧美在线视频区| 久久久精品影视| 亚洲欧美乱综合| 免费成人av在线| 一区二区三区蜜桃网| 国产精品久久久久一区二区三区 | 亚洲福利视频三区| 亚洲国产成人av好男人在线观看| 日韩美女精品在线| 一卡二卡三卡日韩欧美| 日韩精品一二三四| 国产一区二区三区视频在线播放| 日韩精品91亚洲二区在线观看| 毛片一区二区三区| 国产精品一区二区果冻传媒| av亚洲精华国产精华| 欧美三级乱人伦电影| 久久只精品国产| 国产精品不卡在线观看| 国产精品一区二区三区四区| 亚洲精品在线观看网站| 亚洲国产中文字幕| 这里只有精品99re| 美女一区二区久久| 欧美乱妇20p| 香蕉av福利精品导航| 懂色av一区二区夜夜嗨| 一本色道久久综合狠狠躁的推荐| 91首页免费视频| 欧美人伦禁忌dvd放荡欲情| 91官网在线免费观看| 精品污污网站免费看| 日韩三级在线免费观看| 久久嫩草精品久久久久| 久久久精品综合| 欧美色偷偷大香| 国产精品无圣光一区二区| 欧美福利视频导航| 亚洲成在线观看| 亚洲自拍偷拍九九九| 国产精品996| 精品福利在线导航| 天天综合日日夜夜精品| 欧洲另类一二三四区| 亚洲欧洲综合另类| 成人av免费网站| 亚洲欧美综合另类在线卡通| 激情综合网天天干| 久久精品免费在线观看| 成人一区二区三区中文字幕| 久久综合av免费| 成人av在线资源| 夜夜揉揉日日人人青青一国产精品 | 久久日韩精品一区二区五区| 亚洲成人自拍一区| 亚洲国产精品黑人久久久| 日韩电影在线观看网站| 国产偷国产偷亚洲高清人白洁| 欧美日韩另类国产亚洲欧美一级| 久久电影网电视剧免费观看| 一区二区日韩电影| 亚洲第一激情av| 欧美精品一区二区三区久久久 | 91精品国产aⅴ一区二区| 日韩免费福利电影在线观看| 亚洲成年人网站在线观看| 色综合久久久久久久久久久| 精品国产一区二区三区久久影院| 国产精品午夜免费| 欧美主播一区二区三区| 中文字幕av一区二区三区| 午夜精品福利一区二区蜜股av| 日韩激情中文字幕| 精品国产一区二区三区忘忧草 | 最好看的中文字幕久久| 欧美午夜精品一区二区三区| 国产一区二区三区美女| 视频精品一区二区| 日本va欧美va精品| 中文字幕在线不卡一区| 欧美一区二区久久| 欧美人妇做爰xxxⅹ性高电影| 免费成人在线视频观看| 亚洲人成在线播放网站岛国 | 在线观看视频91| 国产最新精品精品你懂的| 亚洲欧洲三级电影| 久久天天做天天爱综合色| 日韩欧美国产午夜精品| 国产精品丝袜在线| 欧美高清激情brazzers| 自拍偷拍国产精品| 香蕉成人啪国产精品视频综合网 | 欧美丝袜自拍制服另类| 国产在线精品免费| 精品一区二区综合| 亚洲精品中文字幕在线观看| 国产亚洲欧美日韩日本| 欧美精品亚洲一区二区在线播放| 美女网站一区二区| 亚洲精品欧美综合四区| 久久久久国产精品人| 欧美日韩国产大片| 狠狠色狠狠色综合系列| 日本视频一区二区| 国产视频不卡一区| 麻豆91精品91久久久的内涵| 色妹子一区二区| 欧美精品乱码久久久久久| 精品国产一区二区三区av性色| ㊣最新国产の精品bt伙计久久| 亚洲夂夂婷婷色拍ww47 | 麻豆国产欧美日韩综合精品二区 | 久久中文字幕电影| 国产精品久久久久7777按摩| 香港成人在线视频| 国产99精品国产| 在线一区二区观看| 日韩欧美精品在线| 亚洲理论在线观看| 成人丝袜18视频在线观看| 欧美区在线观看| 亚洲国产精品综合小说图片区| 秋霞av亚洲一区二区三| 中文字幕一区二区三区视频| 久久精品视频在线看|