mongodb副本集用一致性快照方法新增從節點步驟
環境描述
主節點 192.168.0.1:27002
兩個從節點
192.168.0.2:27002
192.168.0.3:27002
目標:用一致性快照方式新增第三個從節點192.168.0.3
步驟簡述:
1)主節點上進行一致性快照備份
2)從節點上進行一致性快照恢復,僅僅對資料部分進行恢復,暫時不要對oplog進行恢復
3)初始化oplog.rs集合,並恢復oplog記錄
4)初始化local資料庫的其他兩個集合db.replset.election,db.system.replset
5)修改資料庫配置並重啟資料庫(這一步操作前例項不開啟認證模式、複製集的配置),
6)用rs.add("HOST_NAME:PORT")命令將從節點新增進叢集
7).用rs.status()觀察同步狀態並校驗資料的完整和一致性
一.主節點或者其他兩個從節點上備份資料:
mongodump -uroot -ptest --host 192.168.0.2 --authenticationDatabase=admin --port=27002 --oplog -o /data/mongo/backup
二.將備份檔案scp到192.168.0.3上並進行恢復:
scp -r /data/mongo/backup mongo@192.168.0.3/data/mongo
三.第三個節點以單例項方式啟動:
備註:需要註釋掉以下副本集引數
# auth = true
#replSet = test27002
#replSet = repl_mongo
#keyFile = /data/mongo/27002/replSet.key
# su - mongo
$ mongod -f /data/mongo/27002/conf/mongodb.conf
在192.168.0.3上進行一致性快照恢復:
$ mongorestore --oplogReplay --port=27002 /data/mongo/backup
建立oplog.rs集合並初始化大小:
>use local
>db.createCollection("oplog.rs",{"capped":true,"size":100000000})
恢復一致性備份的oplog.rs集合的資料到192.168.0.3:
$ mongorestore -d local -c oplog.rs --port=27002 /data/mongo/backup/oplog.bson
需要查詢主節點replset.election集合的資料並將這些資料儲存到192.168.0.3節點
主DB上的操作:
$ mongo 192.168.0.1:27002/admin -uroot -ptest
test27002:PRIMARY> use local
switched to db local
test27002:PRIMARY> db.replset.election.find()
{ "_id" : ObjectId("5d64912a1978c9b194cf7cc5"), "term" : NumberLong(2), "candidateIndex" : NumberLong(2) }
192.168.0.3節點上儲存主DB上replset.election集合的資料內容:
use local
db.replset.election.save({ "_id" : ObjectId("5d64912a1978c9b194cf7cc5"), "term" : NumberLong(2), "candidateIndex" : NumberLong(2) })
關閉第三個從節點,以副本集方式啟動mongodb:
> use admin
switched to db admin
> db.shutdownServer()
server should be down...
2019-09-01T18:10:57.337+0800 I NETWORK [js] trying reconnect to 127.0.0.1:27002 failed
2019-09-01T18:10:57.337+0800 I NETWORK [js] reconnect 127.0.0.1:27002 failed failed
>
>
修改第三個從節點配置,註釋去掉:
auth = true
replSet = test27002
keyFile = /data/mongo/27002/replSet.key
以副本集方式啟動mongodb
$ mongod -f /data/mongo/27002/conf/mongodb.conf
主節點執行新增節點操作:
mongo 192.168.0.1:27002/admin -uroot -ptest
>rs.add("172.31.30.82:27001");
主節點上寫入資料:
use test
for (var i=0;i<=500;i++) { db.test.insert({id:i,name:"chenfeng"}) }
登入第三個從節點進行資料驗證:
>use test
>db.test.count()
說明:以上步驟和MySQL的用mysqldump或xtrabackup備份方式新增一個從節點方法類似。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2656983/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mongodb副本集新增刪除節點MongoDB
- MongoDB 6.0.3副本集搭建MongoDB
- mongodb 4.0副本集搭建MongoDB
- MongoDB 4.2副本集新增/刪除副本(一主一副一仲裁)MongoDB
- rac新增節點步驟(11g)
- 11gR2 RAC新增節點步驟
- MongoDB日常運維-04副本集搭建MongoDB運維
- 11g rac新增節點步驟(11g)
- DKHhadoop叢集新增節點管理功能的操作步驟Hadoop
- 單機Linux下搭建MongoDB副本集-三節點LinuxMongoDB
- MongoDB日常運維-05副本集故障切換MongoDB運維
- MongoDB 副本集切換方法MongoDB
- mongodb 藉助一致性全備份加oplogs來新增新節點MongoDB
- 2.MongoDB 4.2副本集環境基於時間點的恢復MongoDB
- mongodb主從仲裁節點配置MongoDB
- MongoDB 刪除,新增副本集,並修改副本集IP等資訊MongoDB
- MongoDB 4.2副本集自動故障轉移(一主一副一仲裁)MongoDB
- MongoDB日常運維-06副本集搭建錯誤彙總MongoDB運維
- MongoDB副本集MongoDB
- NEO共識節點推薦搭建步驟
- 搭建MongoDB副本集MongoDB
- MongoDB 副本集搭建MongoDB
- MongoDB部署副本集MongoDB
- MongoDB 副本集管理MongoDB
- Allure2新增用例標題、用例步驟
- mongodb叢集節點故障的切換方法MongoDB
- 用SQL建立索引的方法步驟SQL索引
- MongoDB - 副本集簡介MongoDB
- 006.MongoDB副本集MongoDB
- 節點加入k8s 叢集的步驟K8S
- pyinstaller 打包 exe 程式步驟和新增依賴檔案方法
- KubeSphere 新增節點
- 新增節點教程
- 新增Jenkins節點Jenkins
- linux下安裝redis 單節點安裝操作步驟LinuxRedis
- MongoDB副本集replica set (二)--副本集環境搭建MongoDB
- MongoDB 副本集原理及管理MongoDB
- CentOS 7 安裝MongoDB詳細步驟CentOSMongoDB