亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mongodb如何借助一致性全備份加oplogs來添加新節點

發布時間:2021-09-29 11:14:25 來源:億速云 閱讀:115 作者:柒染 欄目:關系型數據庫

這篇文章將為大家詳細講解有關mongodb如何借助一致性全備份加oplogs來添加新節點,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

一致性備份+oplogs

如果采用直接rs.add的方法添加新節點,需要保證oplog不被覆蓋并且需要評估同步oplog的流量影響

問題,所以(一致性備份+oplogs)是我們通常進行橫向復制集添加secondary節點的方法,

當數據量大的時候,需要采用下面的方法:

環境描述

主節點 10.9.21.114:27017

兩個從節點

10.9.21.178:27017

10.9.21.179:27017

目標:用一致性快照方式添加第三個從節點10.9.21.115:27017

整體步驟簡述:

1)主節點或者其中一個從節點上進行一致性快照備份;

2)從節點上進行一致性快照恢復,僅僅對數據部分進行恢復,暫時不要對oplog進行恢復;

3)初始化oplog.rs集合,并恢復oplog記錄,恢復oplog記錄是為了告訴該節點從哪里去讀取主庫的oplog,同時如果oplog為空,就會進行initial sync初始化,而初始化的時候會把原來的數據都刪除,所以需要恢復oplog;

4)初始化local數據庫的其他兩個集合db.replset.election(告訴目前的主節點是誰),db.system.replset(存儲的是副本集節點信息,當添加進去之后可以自行同步主節點數據,也就是說可以不必恢復它)

5)修改數據庫配置并重啟數據庫(這一步操作前實例不開啟認證模式、復制集的配置);

6)用rs.add("HOST_NAME:PORT")命令將從節點添加進集群;

7).用rs.status()觀察同步狀態并校驗數據的完整和一致性;

一.主節點或者其他兩個從節點上備份數據,我選擇的是一個從節點:

首先在主節點執行insert操作,模擬線上的業務,同時也可以作為最后驗證節點添加正常的依據:

MongoDB Enterprise liuhe_rs:PRIMARY> use liuwenhe

switched to db liuwenhe

MongoDB Enterprise liuhe_rs:PRIMARY> for (var i = 0; i < 100000; i++) {     db.hezi.insert({id: i}); }

同時執行備份操作,如下,等我備份完成,前面的插入操作還沒有結束!

[mongod@beijing-fuli-hadoop-04 ~]$ mongodump  -h 10.9.21.179 -u liuwenhe -p  liuwenhe  --authenticationDatabase admin --oplog -o /data/mongodb/backup/

二.將備份文件scp到192.168.0.3上并進行恢復:

scp  -r  /data/mongodb/backup  mongod@10.9.21.115:/data/mongodb/backup/

三.第三個節點以單實例方式啟動:

備注:需要注釋掉以下副本集參數

vi /etc/mongod.conf

#replication:

#    oplogSizeMB: 51200

#    replSetName: liuhe_rs

#security:

#   keyFile: /data/mongodb/config/mongodb.key

#   authorization: enabled

[mongod@beijing-fuli-hadoop-03 /]$ /usr/bin/mongodb/bin/mongod  -f /etc/mongod.conf

about to fork child process, waiting until server is ready for connections.

forked process: 60522

child process started successfully, parent exiting

四:在10.9.21.115上進行一致性快照恢復:

[mongod@beijing-fuli-hadoop-03 /data/mongodb/backup/backup]$ mongorestore   --oplogReplay

--dir /data/mongodb/backup/backup/

五:創建oplog.rs集合并初始化大小;

MongoDB Enterprise > use local

switched to db local

注釋:因為一致性全備份的時候并不會備份local和config庫,并且新創建啟動的mongod實例的local庫下只有startup_log這個集合如下所示:

MongoDB Enterprise > show collections;

startup_log

MongoDB Enterprise > db.createCollection("oplog.rs",{"capped":true,"size":100000000})

{ "ok" : 1 }

注釋:其中capped:true表示創建的集合是循環覆蓋的,限制大小的;創建固定集合。固定集合是指有著固定大小的集合,當達到最大值時,它會自動覆蓋最早的文檔。size單位是KB

六:恢復一致性備份的oplog.rs集合的數據到10.9.21.115:

[mongod@beijing-fuli-hadoop-03 /data/mongodb/backup/backup]$ mongorestore -d local -c oplog.rs  /data/mongodb/backup/backup/oplog.bson

2019-12-13T22:29:33.370+0800    checking for collection data in /data/mongodb/backup/backup/oplog.bson

2019-12-13T22:29:33.371+0800    restoring local.oplog.rs from /data/mongodb/backup/backup/oplog.bson

2019-12-13T22:29:33.433+0800    no indexes to restore

2019-12-13T22:29:33.433+0800    finished restoring local.oplog.rs (1378 documents)

2019-12-13T22:29:33.433+0800    done

七:需要查詢主節點replset.election集合的數據并將這些數據存儲到10.9.21.115節點

在主節點21.114上的操作:

MongoDB Enterprise liuhe_rs:PRIMARY>  use local

switched to db local

MongoDB Enterprise liuhe_rs:PRIMARY>  db.replset.election.find()

{ "_id" : ObjectId("5dcfb9112670e3e338d03747"), "term" : NumberLong(7), "candidateIndex" : NumberLong(2) }

10.9.21.115節點上保存主節點(21.114)上replset.election集合的數據內容:

MongoDB Enterprise > use  local

switched to db local

MongoDB Enterprise > db.replset.election.save({ "_id" : ObjectId("5dcfb9112670e3e338d03747"), "term" : NumberLong(7), "candidateIndex" : NumberLong(2) })

WriteResult({

"nMatched" : 0,

"nUpserted" : 1,

"nModified" : 0,

"_id" : ObjectId("5dcfb9112670e3e338d03747")

})

八:關閉第三個從節點,以副本集方式啟動mongodb:

MongoDB Enterprise > use admin

switched to db admin

MongoDB Enterprise >  db.shutdownServer()

2019-12-13T22:36:36.935+0800 I NETWORK  [js] DBClientConnection failed to receive message from 127.0.0.1:27017 - HostUnreachable: Connection closed by peer

server should be down...

九:以副本集方式啟動mongodb

修改第三個從節點配置,注釋去掉:

vi /etc/mongod.conf

#replication:

#    oplogSizeMB: 51200

#    replSetName: liuhe_rs

#security:

#   keyFile: /data/mongodb/config/mongodb.key

#   authorization: enabled

[mongod@beijing-fuli-hadoop-03 ~]$ /usr/bin/mongodb/bin/mongod  -f /etc/mongod.conf

about to fork child process, waiting until server is ready for connections.

forked process: 64136

child process started successfully, parent exiting

十:主節點執行添加節點操作

MongoDB Enterprise liuhe_rs:PRIMARY> rs.add("10.9.21.115:27017")

{

"ok" : 1,

"operationTime" : Timestamp(1576247871, 1),

"$clusterTime" : {

"clusterTime" : Timestamp(1576247871, 1),

"signature" : {

"hash" : BinData(0,"p3g5oVNzyiHogsBYfSCpzrBpIks="),

"keyId" : NumberLong("6758082305262092289")

}

}

}

十一:驗證是否成功:

1.rs.status()可以看到剛加入的21.115的狀態

MongoDB Enterprise liuhe_rs:PRIMARY> rs.status()

2.rs.printSlaveReplicationInfo()查看復制的狀態,如下可以看到21.115的信息:

MongoDB Enterprise liuhe_rs:PRIMARY> rs.printSlaveReplicationInfo()

source: 10.9.21.178:27017

syncedTo: Fri Dec 13 2019 22:39:59 GMT+0800 (CST)

0 secs (0 hrs) behind the primary

source: 10.9.21.179:27017

syncedTo: Fri Dec 13 2019 22:39:59 GMT+0800 (CST)

0 secs (0 hrs) behind the primary

source: 10.9.21.115:27017

syncedTo: Fri Dec 13 2019 22:39:59 GMT+0800 (CST)

0 secs (0 hrs) behind the primary

3.在32.115上查看hezi的集合的數據量,這個是最關鍵的驗證,因為你一致性備份的時候,同時還有操作,如果數據量是一樣的,那么也就證明,你的21.115節點添加是沒有問題了,數據開始同步了

MongoDB Enterprise liuhe_rs:SECONDARY> rs.slaveOk()

MongoDB Enterprise liuhe_rs:SECONDARY> use liuwenhe

switched to db liuwenhe

MongoDB Enterprise liuhe_rs:SECONDARY> db.hezi.count()

221323

在21.114上查看hezi集合的數據量:

MongoDB Enterprise liuhe_rs:PRIMARY> use liuwenhe

switched to db liuwenhe

MongoDB Enterprise liuhe_rs:PRIMARY> db.hezi.count()

221323

對比發現數據是一樣的,說明添加節點的工作完成了。。。

關于mongodb如何借助一致性全備份加oplogs來添加新節點就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

京山县| 松桃| 平昌县| 荥阳市| 伊宁县| 荔波县| 临颍县| 菏泽市| 交口县| 皮山县| 梧州市| 曲阜市| 柘城县| 石河子市| 五华县| 高台县| 基隆市| 莆田市| 延安市| 吴江市| 齐河县| 上犹县| 梅州市| 新兴县| 甘洛县| 昂仁县| 海口市| 仪陇县| 洛阳市| 济阳县| 江山市| 铁岭市| 亚东县| 闽清县| 隆德县| 田阳县| 郎溪县| 黄陵县| 阿尔山市| 富平县| 财经|