採用secondary的冷備份的方式來新增新的secondary節點
前面介紹了兩種方法來新增secondary節點,直接rs.add()和一致性備份的方式來實現,接下來介紹第三種方式,具體如下:
方法三:採用secondary的冷備份的方式
找到另外一個secondary資料節點的快照,關閉寫操作(冷備份)這裡我採用了設定延遲節點的方法來實現關閉寫操作的目的。在資料不變化的情況下,獲得一致性的備份快照,複製至故障節點中,啟動MongoDB服務,應用oplog日誌!
需要注意兩點:
1.保證scp期間,該Secondary節點的oprlog 不被覆蓋,2.設定的延遲時間要保證scp資料操作完成
具體步驟如下:
3.1 給某個集合插入資料,來模擬線上業務;
MongoDB Enterprise liuhe_rs:PRIMARY> use liuwenhe
switched to db liuwenhe
MongoDB Enterprise liuhe_rs:PRIMARY> db.hezi.count()
533387
MongoDB Enterprise liuhe_rs:PRIMARY> for (var i = 0; i < 100; i++) { db.hezi.insert({id: i}); }
WriteResult({ "nInserted" : 1 })
MongoDB Enterprise liuhe_rs:PRIMARY> db.hezi.count()
533487
3.2將某個Secondary節點設定為延遲節點;
MongoDB Enterprise liuhe_rs:PRIMARY>cfg = rs.conf()
MongoDB Enterprise liuhe_rs:PRIMARY>cfg.members[1].priority = 0
MongoDB Enterprise liuhe_rs:PRIMARY>cfg.members[1].slaveDelay = 3600
MongoDB Enterprise liuhe_rs:PRIMARY>rs.reconfig(cfg)
檢視是否是延遲的,發現確實延遲1個小時,也就是3600秒!
MongoDB Enterprise liuhe_rs:SECONDARY> rs.printReplicationInfo()
configured oplog size: 51200MB
log length start to end: 5461974secs (1517.22hrs)
oplog first event time: Sat Nov 16 2019 16:53:17 GMT+0800 (CST)
oplog last event time: Sat Jan 18 2020 22:06:11 GMT+0800 (CST)
now: Sat Jan 18 2020 23:06:19 GMT+0800 (CST)
資料確實沒有insert呢,如下所示:
MongoDB Enterprise liuhe_rs:SECONDARY> db.hezi.count()
533387
3.2直接scp 資料目錄到目標伺服器
[mongod@beijing-fuli-hadoop-04 ~]$ scp -r db mongod@10.9.21.115:/data/mongodb
3.3 啟動新的Secondary節點
[mongod@beijing-fuli-hadoop-03 ~]$ /usr/bin/mongodb/bin/mongod -f /etc/mongod.conf
3.4 驗證結果是否正確:
3.4.1檢視新的Secondary節點的同步狀態,如下無延遲:
MongoDB Enterprise liuhe_rs:SECONDARY> rs.printReplicationInfo()
configured oplog size: 51200MB
log length start to end: 5465940secs (1518.32hrs)
oplog first event time: Sat Nov 16 2019 16:53:17 GMT+0800 (CST)
oplog last event time: Sat Jan 18 2020 23:12:17 GMT+0800 (CST)
now: Sat Jan 18 2020 23:17:48 GMT+0800 (CST)
3.4.2檢視資料是否同步成功,如下所示,確實同步成功了
MongoDB Enterprise liuhe_rs:SECONDARY> rs.slaveOk()
MongoDB Enterprise liuhe_rs:SECONDARY> db.hezi.count()
533487
至此透過Secondary節點延遲冷備的方式來實現新加Secondary節點的目的實現了!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29654823/viewspace-2673943/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 什麼是 Angular library 的 secondary entry points?Angular
- secondary logon服務怎麼開啟?Win10系統secondary logon服務的開啟步驟GoWin10
- mysql的冷備份與熱備份MySql
- mongodb 藉助一致性全備份加oplogs來新增新節點MongoDB
- Spectrum Entropy Prediction Assisted Channel Selection for Secondary Users
- MySQL的冷備份和熱備份概念理解(轉)MySql
- 熱備份/冷備份/ 冷啟動/熱啟動
- Hadoop3.2.1 【 HDFS 】原始碼分析 : Secondary Namenode解析Hadoop原始碼
- [20180608]Wrong Results with IOT, Added Column and Secondary Index.txtIndex
- DBV:冷備份的校驗和恢復
- 物理冷備份與恢復的操作命令
- [20180609]Wrong Results with IOT, Added Column and Secondary Index2.txtIndex
- Networker備份oracle單節點Oracle
- HAC叢集新增新節點
- MySQL冷備份過程MySql
- Oracle OCP(60):冷備份Oracle
- RMAN加密備份的三種方式加密
- Win10系統怎麼開啟secondary logon服務Win10Go
- Windows Secondary Logon服務中的一個控制程式碼許可權洩露BugWindowsGo
- Markdown連結採用新開視窗的方式開啟
- DKHhadoop新增新節點功能介紹Hadoop
- 關於Oracle 18c將採用新的命名版本號的方式Oracle
- ADAMoracle採用連線多節點計算並驗證報價的方式實現避免了單點故障Oracle
- rac新增節點容易遇到的問題
- oracle自動冷備份指令碼Oracle指令碼
- MPLS-VPN的幾種備份方式——VecloudCloud
- MySql資料庫備份的幾種方式MySql資料庫
- KubeSphere 新增節點
- 新增節點教程
- 新增Jenkins節點Jenkins
- 節點的運用和方法
- Hyperledger Fabric節點的動態新增和刪除
- MySQL 資料庫定時備份的幾種方式MySql資料庫
- 群暉NAS備份建議及備份方式
- 6個冷門但實用的pandas知識點
- Oracle RAC新增節點Oracle
- [AlwaysOn] 建立SQL Server高可用性組T-SQL語法:SECONDARY_ROLE子句SQLServer
- 用增量備份來快速恢復dg