在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)庫(kù)/ MongoDB復(fù)制
MongoDB教程
MongoDB覆蓋查詢
MongoDB數(shù)據(jù)建模
MongoDB聚合
MongoDB更改用戶密碼和自定義數(shù)據(jù)
MongoDB用戶
MongoDB分片
MongoDB創(chuàng)建集合
MongoDB文本搜索
MongoDB數(shù)據(jù)類型
MongoDB GridFS
MongoDB索引限制
MongoDB插入文檔
MongoDB刪除集合
MongoDB數(shù)據(jù)庫(kù)引用
MongoDB復(fù)制
MongoDB Map Reduce
Python連接MongoDB操作
MongoDB原子操作
MongoDB特點(diǎn)
MongoDB安全檢查表
MongoDB排序記錄
MongoDB自動(dòng)遞增序列
MongoDB安裝配置(Windows)
MongoDB備份與恢復(fù)
MongoDB安裝配置(Ubuntu)
Ruby連接MongoDB操作
MongoDB部署
MongoDB索引
MongoDB分析查詢
MongoDB投影(選擇字段)
MongoDB刪除數(shù)據(jù)庫(kù)
MongoDB認(rèn)證
MongoDB限制記錄數(shù)
MongoDB添加用戶
MongoDB固定循環(huán)集合
MongoDB高級(jí)索引
MongoDB數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)
MongoDB快速入門
MongoDB創(chuàng)建數(shù)據(jù)庫(kù)
MongoDB啟用身份驗(yàn)證
MongoDB歷史
MongoDB管理用戶和角色
MongoDB安裝配置(RedHat/CentOS)
MongoDB刪除文檔
Java連接MongoDB操作
MongoDB正則表達(dá)式
MongoDB查詢文檔
MongoDB關(guān)聯(lián)關(guān)系
PHP連接MongoDB操作
MongoDB更新文檔
MongoDB ObjectId

MongoDB復(fù)制

復(fù)制是跨多個(gè)服務(wù)器同步數(shù)據(jù)的過(guò)程。復(fù)制提供冗余,并通過(guò)不同數(shù)據(jù)庫(kù)服務(wù)器上的多個(gè)數(shù)據(jù)副本增加數(shù)據(jù)可用性。 復(fù)制保護(hù)數(shù)據(jù)庫(kù)免受單個(gè)服務(wù)器的丟失。 復(fù)制還允許從硬件故障和服務(wù)中斷中恢復(fù)。 使用其他數(shù)據(jù)副本,可以將其專用于災(zāi)難恢復(fù),報(bào)告或備份。

為什么復(fù)制?

  • 保持?jǐn)?shù)據(jù)安全
  • 數(shù)據(jù)的高可用性(24 * 7)
  • 災(zāi)難恢復(fù)
  • 維護(hù)無(wú)停機(jī)(如備份,索引重建,壓縮)
  • 讀取縮放(額外的副本可讀)
  • 副本集對(duì)應(yīng)用程序是透明的

MongoDB復(fù)制的工作原理

MongoDB通過(guò)使用副本集來(lái)實(shí)現(xiàn)復(fù)制。副本集是托管相同數(shù)據(jù)集的一組 mongod 實(shí)例。 在一個(gè)副本中,一個(gè)節(jié)點(diǎn)是接收所有寫操作的主節(jié)點(diǎn)。所有其他實(shí)例(例如輔助節(jié)點(diǎn))都應(yīng)用主節(jié)點(diǎn)的操作,以便它們具有相同的數(shù)據(jù)集。 副本集可以只有一個(gè)主節(jié)點(diǎn)。

  • 副本集是一組兩個(gè)或多個(gè)節(jié)點(diǎn)(通常最少需要3個(gè)節(jié)點(diǎn))。
  • 在副本集中,一個(gè)節(jié)點(diǎn)是主節(jié)點(diǎn),其余節(jié)點(diǎn)是次要節(jié)點(diǎn)。
  • 所有數(shù)據(jù)從主節(jié)點(diǎn)復(fù)制到輔助節(jié)點(diǎn)。
  • 在自動(dòng)故障切換或維護(hù)時(shí),選擇為主節(jié)點(diǎn)建立,并選擇新的主節(jié)點(diǎn)。
  • 恢復(fù)故障節(jié)點(diǎn)后,它再次加入副本集,并作為輔助節(jié)點(diǎn)。

顯示了MongoDB復(fù)制的典型圖,客戶端應(yīng)用程序始終與主節(jié)點(diǎn)進(jìn)行交互,然后主節(jié)點(diǎn)將數(shù)據(jù)復(fù)制到輔助節(jié)點(diǎn)。

副本集功能

  • N個(gè)節(jié)點(diǎn)的集群
  • 任何一個(gè)節(jié)點(diǎn)都可以是主節(jié)點(diǎn)
  • 所有寫入操作都轉(zhuǎn)到主節(jié)點(diǎn)操作
  • 自動(dòng)故障切換
  • 自動(dòng)恢復(fù)
  • 共識(shí)一般選舉

設(shè)置副本集

在本教程中,我們將獨(dú)立的 MongoDB 實(shí)例轉(zhuǎn)換為副本集。要轉(zhuǎn)換為副本集,以下是步驟 -

  • 關(guān)機(jī)正在運(yùn)行 MongoDB 服務(wù)器。
  • 通過(guò)指定 - replSet選項(xiàng)啟動(dòng) MongoDB服 務(wù)器。 以下是--replSet的基本語(yǔ)法 -
mongod --port "PORT" --dbpath "YOUR_DB_DATA_PATH" --replSet "REPLICA_SET_INSTANCE_NAME"

示例

mongod --port 27017 --dbpath "D:\set up\mongodb\data" --replSet rs0
  • 它在端口27017上啟動(dòng)名稱為rs0的 mongod 實(shí)例。
  • 現(xiàn)在啟動(dòng)命令提示符并連接到這個(gè) mongod 實(shí)例。
  • 在Mongo客戶端中,發(fā)出命令rs.initiate()以啟動(dòng)新的副本集。
  • 要檢查副本集配置,可使用命令rs.conf()。 要檢查復(fù)制集的狀態(tài),請(qǐng)使用命令rs.status()。

將會(huì)員添加到副本集

要將成員添加到副本集,請(qǐng)?jiān)诙嗯_(tái)計(jì)算機(jī)上啟動(dòng) mongod 實(shí)例。 現(xiàn)在啟動(dòng)一個(gè) mongo 客戶端并發(fā)出一個(gè)命令rs.add()。

語(yǔ)法

rs.add()命令的基本語(yǔ)法如下:

>rs.add(HOST_NAME:PORT)

示例

假設(shè)您的 mongod 實(shí)例名稱是 mongod1.net,它在端口 27017 上運(yùn)行。要將此實(shí)例添加到副本集,請(qǐng)?jiān)?Mongo 客戶端中發(fā)出命令 rs.add()

>rs.add("mongod1.net:27017")
>

只能在連接到主節(jié)點(diǎn)時(shí),將 mongod 實(shí)例添加到副本集。要檢查是否連接到主服務(wù)器,請(qǐng)?jiān)?mongo 客戶端中發(fā)出命令db.isMaster()。

rs0:PRIMARY> db.isMaster()
{
        "hosts" : [
                "ubuntu:27017"
        ],
        "setName" : "rs0",
        "setVersion" : 1,
        "ismaster" : true,
        "secondary" : false,
        "primary" : "ubuntu:27017",
        "me" : "ubuntu:27017",
        "electionId" : ObjectId("7fffffff0000000000000001"),
        "lastWrite" : {
                "opTime" : {
                        "ts" : Timestamp(1498896581, 1),
                        "t" : NumberLong(1)
                },
                "lastWriteDate" : ISODate("2017-07-01T08:09:41Z")
        },
        "maxBsonObjectSize" : 16777216,
        "maxMessageSizeBytes" : 48000000,
        "maxWriteBatchSize" : 1000,
        "localTime" : ISODate("2017-07-01T08:09:50.365Z"),
        "maxWireVersion" : 5,
        "minWireVersion" : 0,
        "readOnly" : false,
        "ok" : 1
}
rs0:PRIMARY>