<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 5643字,需瀏覽 12分鐘

           ·

          2021-07-18 15:20

          來(lái)源:blog.csdn.net/py_tamir/
          article/details/82555338

          目錄

          • 什么是哨兵
          • 原理
          • 環(huán)境
          • 設(shè)置哨兵
          • 從宕機(jī)及恢復(fù)
          • 主宕機(jī)及恢復(fù)
          • 配置多個(gè)哨兵

          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ù)的名稱(chēng),自定義即可,可以使用大小寫(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 6381  將6379設(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

          1. Java代碼中,如何監(jiān)控Mysql的binlog?

          2. 重磅推薦:很全的 Java 權(quán)限認(rèn)證框架!

          3. 互聯(lián)網(wǎng)大促運(yùn)維實(shí)踐案例

          4. 最強(qiáng)代碼生成器平臺(tái),殺瘋了~

          最近面試BAT,整理一份面試資料Java面試BATJ通關(guān)手冊(cè),覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)結(jié)構(gòu)等等。

          獲取方式:點(diǎn)“在看”,關(guān)注公眾號(hào)并回復(fù) Java 領(lǐng)取,更多內(nèi)容陸續(xù)奉上。

          文章有幫助的話(huà),在看,轉(zhuǎn)發(fā)吧。

          謝謝支持喲 (*^__^*)

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

          手機(jī)掃一掃分享

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

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产无码高清在线 | 无码一区二区区 | 日韩激情视频一区二区三区 | 免费欧美一级 | 色婷网|