1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Redis中主、從庫(kù)宕機(jī)如何恢復(fù)?

        共 3705字,需瀏覽 8分鐘

         ·

        2021-08-29 15:53


        1、什么是哨兵


        哨兵是對(duì)Redis的系統(tǒng)的運(yùn)行情況的監(jiān)控,它是一個(gè)獨(dú)立進(jìn)程,功能有二個(gè):


        • 監(jiān)控主數(shù)據(jù)庫(kù)和從數(shù)據(jù)庫(kù)是否運(yùn)行正常;


        • 主數(shù)據(jù)出現(xiàn)故障后自動(dòng)將從數(shù)據(jù)庫(kù)轉(zhuǎn)化為主數(shù)據(jù)庫(kù);


        2、原理


        單個(gè)哨兵的架構(gòu):



        多個(gè)哨兵的架構(gòu):



        多個(gè)哨兵,不僅同時(shí)監(jiān)控主從數(shù)據(jù)庫(kù),而且哨兵之間互為監(jiān)控。


        多個(gè)哨兵,防止哨兵單點(diǎn)故障。


        3、環(huán)境


        當(dāng)前處于一主多從的環(huán)境中:



        4、設(shè)置哨兵


        啟動(dòng)哨兵進(jìn)程首先需要?jiǎng)?chuàng)建哨兵配置文件:

        vim sentinel.conf


        輸入內(nèi)容:

        sentinel monitor taotaoMaster 127.0.0.1 6379 1


        說(shuō)明:


        • taotaoMaster:監(jiān)控主數(shù)據(jù)的名稱,自定義即可,可以使用大小寫(xiě)字母和“.-_”符號(hào)


        • 127.0.0.1:監(jiān)控的主數(shù)據(jù)庫(kù)的IP


        • 6379:監(jiān)控的主數(shù)據(jù)庫(kù)的端口


        • 1:最低通過(guò)票數(shù)


        啟動(dòng)哨兵進(jìn)程:

        redis-sentinel ./sentinel.conf



        由上圖可以看到:


        • 哨兵已經(jīng)啟動(dòng),它的id為9059917216012421e8e89a4aa02f15b75346d2b7


        • 為master數(shù)據(jù)庫(kù)添加了一個(gè)監(jiān)控


        • 發(fā)現(xiàn)了2個(gè)slave(由此可以看出,哨兵無(wú)需配置slave,只需要指定master,哨兵會(huì)自動(dòng)發(fā)現(xiàn)slave)


        5、從宕機(jī)及恢復(fù)



        kill掉2826進(jìn)程后,30秒后哨兵的控制臺(tái)輸出:

        2989:X 05 Jun 20:09:33.509 # +sdown slave 127.0.0.1:6380 127.0.0.1 6380 @ taotaoMaster 127.0.0.1 6379


        說(shuō)明已經(jīng)監(jiān)控到slave宕機(jī)了,那么,如果我們將3380端口的redis實(shí)例啟動(dòng)后,會(huì)自動(dòng)加入到主從復(fù)制嗎?

        2989:X 05 Jun 20:13:22.716 * +reboot slave 127.0.0.1:6380 127.0.0.1 6380 @ taotaoMaster 127.0.0.1 6379
        2989:X 05 Jun 20:13:22.788 # -sdown slave 127.0.0.1:6380 127.0.0.1 6380 @ taotaoMaster 127.0.0.1 6379


        可以看出,slave從新加入到了主從復(fù)制中。-sdown:說(shuō)明是恢復(fù)服務(wù)。



        6、主宕機(jī)及恢復(fù)


        哨兵控制臺(tái)打印出如下信息:

        2989:X 05 Jun 20:16:50.300 # +sdown master taotaoMaster 127.0.0.1 6379 說(shuō)明master服務(wù)已經(jīng)宕機(jī)
        2989:X 05 Jun 20:16:50.300 # +odown master taotaoMaster 127.0.0.1 6379 #quorum 1/1
        2989:X 05 Jun 20:16:50.300 # +new-epoch 1
        2989:X 05 Jun 20:16:50.300 # +try-failover master taotaoMaster 127.0.0.1 6379 開(kāi)始恢復(fù)故障
        2989:X 05 Jun 20:16:50.304 # +vote-for-leader 9059917216012421e8e89a4aa02f15b75346d2b7 1 投票選舉哨兵leader,現(xiàn)在就一個(gè)哨兵所以leader就自己
        2989:X 05 Jun 20:16:50.304 # +elected-leader master taotaoMaster 127.0.0.1 6379 選中l(wèi)eader
        2989:X 05 Jun 20:16:50.304 # +failover-state-select-slave master taotaoMaster 127.0.0.1 6379 選中其中的一個(gè)slave當(dāng)做master
        2989:X 05 Jun 20:16:50.357 # +selected-slave slave 127.0.0.1:6381 127.0.0.1 6381 @ taotaoMaster 127.0.0.1 6379 選中6381
        2989:X 05 Jun 20:16:50.357 * +failover-state-send-slaveof-noone slave 127.0.0.1:6381 127.0.0.1 6381 @ taotaoMaster 127.0.0.1 6379 發(fā)送slaveof no one命令
        2989:X 05 Jun 20:16:50.420 * +failover-state-wait-promotion slave 127.0.0.1:6381 127.0.0.1 6381 @ taotaoMaster 127.0.0.1 6379 等待升級(jí)master
        2989:X 05 Jun 20:16:50.515 # +promoted-slave slave 127.0.0.1:6381 127.0.0.1 6381 @ taotaoMaster 127.0.0.1 6379 升級(jí)6381為master
        2989:X 05 Jun 20:16:50.515 # +failover-state-reconf-slaves master taotaoMaster 127.0.0.1 6379
        2989:X 05 Jun 20:16:50.566 * +slave-reconf-sent slave 127.0.0.1:6380 127.0.0.1 6380 @ taotaoMaster 127.0.0.1 6379
        2989:X 05 Jun 20:16:51.333 * +slave-reconf-inprog slave 127.0.0.1:6380 127.0.0.1 6380 @ taotaoMaster 127.0.0.1 6379
        2989:X 05 Jun 20:16:52.382 * +slave-reconf-done slave 127.0.0.1:6380 127.0.0.1 6380 @ taotaoMaster 127.0.0.1 6379
        2989:X 05 Jun 20:16:52.438 # +failover-end master taotaoMaster 127.0.0.1 6379 故障恢復(fù)完成
        2989:X 05 Jun 20:16:52.438 # +switch-master taotaoMaster 127.0.0.1 6379 127.0.0.1 6381 主數(shù)據(jù)庫(kù)從6379轉(zhuǎn)變?yōu)?381
        2989:X 05 Jun 20:16:52.438 * +slave slave 127.0.0.1:6380 127.0.0.1 6380 @ taotaoMaster 127.0.0.1 6381 添加6380為6381的從庫(kù)
        2989:X 05 Jun 20:16:52.438 * +slave slave 127.0.0.1:6379 127.0.0.1 6379 @ taotaoMaster 127.0.0.1 6381 添加6379為6381的從庫(kù)
        2989:X 05 Jun 20:17:22.463 # +sdown slave 127.0.0.1:6379 127.0.0.1 6379 @ taotaoMaster 127.0.0.1 6381 發(fā)現(xiàn)6379已經(jīng)宕機(jī),等待6379的恢復(fù)



        可以看出,目前,6381位master,擁有一個(gè)slave為6380.


        接下來(lái),我們恢復(fù)6379查看狀態(tài):

        2989:X 05 Jun 20:35:32.172 # -sdown slave 127.0.0.1:6379 127.0.0.1 6379 @ taotaoMaster 127.0.0.1 6381  6379已經(jīng)恢復(fù)服務(wù)2989:X 05 Jun 20:35:42.137 * +convert-to-slave slave 127.0.0.1:6379 127.0.0.1 6379 @ taotaoMaster 127.0.0.1 63816379設(shè)置為6381的slave


        7、配置多個(gè)哨兵


        vim sentinel.conf


        輸入內(nèi)容:

        sentinel monitor taotaoMaster1 127.0.0.1 6381 1
        sentinel monitor taotaoMaster2 127.0.0.1 6381 2


        版權(quán)申明:內(nèi)容來(lái)源網(wǎng)絡(luò),版權(quán)歸原創(chuàng)者所有。除非無(wú)法確認(rèn),我們都會(huì)標(biāo)明作者及出處,如有侵權(quán)煩請(qǐng)告知,我們會(huì)立即刪除并表示歉意。謝謝!





        感謝閱讀



        瀏覽 64
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            精品国产aⅴ麻豆 | 欧美小少妇| 欧美熟妇性又伦-区二区 | 在教室伦流澡到高潮hbl视频 | 操逼网大全 | 疯狂操逼大香蕉 | 人人操干 | 骚女操逼 | 一线黄片| 操我的骚逼|