真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MongoDB添加secondary節(jié)點(diǎn)的2種方法詳解-創(chuàng)新互聯(lián)

前言

10年積累的成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有淮陽免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

前段時(shí)間維護(hù)的一個(gè)事業(yè)群的其中一條業(yè)務(wù)線的開發(fā)找到運(yùn)維,提出來了一個(gè)MongoDB的優(yōu)化問題,那段時(shí)間MongoDB正在從op管理移交給db進(jìn)行維護(hù),整個(gè)部門都對MongoDB的運(yùn)維經(jīng)驗(yàn)缺乏,MongoDB的優(yōu)化更是一個(gè)未知的挑戰(zhàn)。當(dāng)op找到我,核心系統(tǒng)的公共服務(wù)平臺用來進(jìn)行短信服務(wù)的MongoDB集群想進(jìn)行一次優(yōu)化,我當(dāng)仁不能讓的承擔(dān)了這項(xiàng)我都覺得可能搞不定的任務(wù)。

開發(fā)找到我提出了兩點(diǎn)兒問題,并尋求運(yùn)維團(tuán)隊(duì)解決這個(gè)問題,不過最終在我的理性的思考和他感性的思維碰撞下,最終我還是以勝利者的姿態(tài)勝出。我成功說服了他,并解答了他一些疑問,得到了滿意的答復(fù)后再也沒找我了。當(dāng)然這里肯定不會就憑幾句話,任你理論再怎么豐富,態(tài)度如何曖昧,不拿點(diǎn)兒真實(shí)數(shù)據(jù),做點(diǎn)兒什么,怎么能說服經(jīng)驗(yàn)豐富的開發(fā)認(rèn)定的事兒。溝通了大半天,占據(jù)了我白天的工作時(shí)間,不過他提出來的問題還是很值得討論。

根據(jù)開發(fā)的邏輯,是想橫向擴(kuò)充secondary節(jié)點(diǎn),把其他要求不高的業(yè)務(wù)放到secondary節(jié)點(diǎn)上,減輕primary節(jié)點(diǎn)的壓力,達(dá)到部分讀寫分離,使得主要業(yè)務(wù)優(yōu)先保障。我覺得這個(gè)出發(fā)點(diǎn)是好的,但并沒有就此作出回應(yīng),其一是他沒有認(rèn)識到這個(gè)他認(rèn)為的有延遲并不是數(shù)據(jù)庫集群的問題(這里不詳細(xì)講述排查的過程,下一篇文章會講些MongoDB的寫入與業(yè)務(wù)邏輯),其二是我們確實(shí)缺乏有效的資源硬件去進(jìn)行擴(kuò)充節(jié)點(diǎn)。

不同的業(yè)務(wù)場景應(yīng)用不同的架構(gòu)策略,擴(kuò)充secondary節(jié)點(diǎn)有時(shí)候不能解決問題,尤其是那些實(shí)時(shí)性很高的業(yè)務(wù),但有時(shí)候擴(kuò)充secondary節(jié)點(diǎn)確實(shí)有效,比如硬件升級后需要做的服務(wù)遷移,需要在線擴(kuò)充secondary節(jié)點(diǎn)來滿足業(yè)務(wù)需要的更高的硬件要求。

MongoDB的secondary節(jié)點(diǎn)的擴(kuò)充,我總結(jié)起來有兩種方式:

1、rs.add()直接擴(kuò)充

2、一致性備份后進(jìn)行擴(kuò)充(個(gè)人叫法)

1、rs.add("HOST_NAME:PORT")

具體的實(shí)現(xiàn)方式是登陸擴(kuò)充節(jié)點(diǎn)的機(jī)器,編輯好配置文件,并建立相應(yīng)的目錄和權(quán)限,啟動(dòng)MongoDB實(shí)例就可以了。

需要注意的一點(diǎn)兒是這種擴(kuò)充方式要保證同步源的數(shù)據(jù)量級,即保證在同步完數(shù)據(jù)前MongoDB的oplog不會被覆蓋,這點(diǎn)兒類似與MySQL的redo log日志,如果被覆蓋那么同步的數(shù)據(jù)出現(xiàn)不一致,導(dǎo)致同步失敗。

需要注意的另一點(diǎn)是同步數(shù)據(jù)的過程中,當(dāng)集群數(shù)據(jù)達(dá)到一定量級時(shí),同步數(shù)據(jù)的大小很大就會對網(wǎng)絡(luò)造成一定的壓力,可能對業(yè)務(wù)的核心交換機(jī)造成影響,因此需要用TC工具對同步流量做限速處理。這個(gè)限速需要考慮同步源可能不會是primary,也可能是同樣角色的secondary節(jié)點(diǎn),令外限速同步勢必會增大同步時(shí)間,這個(gè)會增大oplog被覆蓋的概率,具體限速值還是要經(jīng)過計(jì)算才能把握好。

2、一致性快照快速添加secondary節(jié)點(diǎn)(自我命名,歡迎各位交流)

  a)primary節(jié)點(diǎn)上進(jìn)行一致性快照備份

  b)secondary節(jié)點(diǎn)上進(jìn)行一致性快照恢復(fù),僅僅對數(shù)據(jù)部分進(jìn)行恢復(fù),暫時(shí)不要對oplog進(jìn)行恢復(fù)

     c)初始化oplog.rs集合,并恢復(fù)oplog記錄

     d)初始化local數(shù)據(jù)庫的其他兩個(gè)集合db.replset.election,db.system.replset

  e)修改數(shù)據(jù)庫配置并重啟數(shù)據(jù)庫(這一步操作前實(shí)例不開啟認(rèn)證模式、復(fù)制集的配置),rs.add("HOST_NAME:PORT")將secondary添加進(jìn)集群并觀察同步狀態(tài)、校驗(yàn)數(shù)據(jù)的完整和一致性

實(shí)踐的詳細(xì)實(shí)踐過程如下(僅供參考交流,生產(chǎn)環(huán)境慎用):

1、primary上進(jìn)行一致性快照備份

#primary節(jié)點(diǎn)或者其他secondary節(jié)點(diǎn)備份數(shù)據(jù)
[root@172-16-3-190 mongodb]# /opt/app/mongodb/bin/mongodump -uroot -ppwd4mysql --authenticationDatabase=admin --port=27017 --oplog -o /tmp/dump_mongo/
2018-08-20T15:42:47.028+0800 writing admin.system.users to 
2018-08-20T15:42:47.030+0800 done dumping admin.system.users (1 document)
2018-08-20T15:42:47.030+0800 writing admin.system.version to 
2018-08-20T15:42:47.031+0800 done dumping admin.system.version (2 documents)
2018-08-20T15:42:47.032+0800 writing super_hero.user_address to 
2018-08-20T15:42:47.032+0800 writing super_hero.user_info to 
2018-08-20T15:42:47.033+0800 done dumping super_hero.user_address (1 document)
2018-08-20T15:42:47.033+0800 done dumping super_hero.user_info (1 document)
2018-08-20T15:42:47.034+0800 writing captured oplog to 
2018-08-20T15:42:47.036+0800 dumped 1 oplog entry

#查看備份的文件
[root@172-16-3-190 mongodb]# ls -lh /tmp/dump_mongo/
total 12K
drwxr-xr-x 2 root root 4.0K Aug 20 15:42 admin
-rw-r--r-- 1 root root 110 Aug 20 15:42 oplog.bson
drwxr-xr-x 2 root root 4.0K Aug 20 15:42 super_hero

#傳遞備份到準(zhǔn)備添加為secondary的節(jié)點(diǎn)上
[root@172-16-3-190 tmp]# scp -r -P22222 /tmp/dump_mongo/ liyingxiao@172.16.3.189:/tmp

文章題目:MongoDB添加secondary節(jié)點(diǎn)的2種方法詳解-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://weahome.cn/article/edheg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部