Redis宕机了怎么办?
運維工程師必備的認證【紅帽liunx-RHCE 8】
1、什么是哨兵
哨兵是對Redis的系統的運行情況的監控,它是一個獨立進程,功能有二個:
-
監控主數據庫和從數據庫是否運行正常;
-
主數據出現故障后自動將從數據庫轉化為主數據庫;
2、原理
單個哨兵的架構:
多個哨兵的架構:
多個哨兵,不僅同時監控主從數據庫,而且哨兵之間互為監控。
多個哨兵,防止哨兵單點故障。
3、環境
當前處于一主多從的環境中:
4、設置哨兵
啟動哨兵進程首先需要創建哨兵配置文件:
vim sentinel.conf輸入內容:
sentinel monitor taotaoMaster 127.0.0.1 6379 1????
說明:
-
taotaoMaster:監控主數據的名稱,自定義即可,可以使用大小寫字母和“.-_”符號
-
127.0.0.1:監控的主數據庫的IP
-
6379:監控的主數據庫的端口
-
1:最低通過票數
啟動哨兵進程:
redis-sentinel ./sentinel.conf?????
由上圖可以看到:
-
哨兵已經啟動,它的id為9059917216012421e8e89a4aa02f15b75346d2b7
-
為master數據庫添加了一個監控
-
發現了2個slave(由此可以看出,哨兵無需配置slave,只需要指定master,哨兵會自動發現slave)
5、從宕機及恢復
kill掉2826進程后,30秒后哨兵的控制臺輸出:
- 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
說明已經監控到slave宕機了,那么,如果我們將3380端口的redis實例啟動后,會自動加入到主從復制嗎?
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從新加入到了主從復制中。-sdown:說明是恢復服務。
6、主宕機及恢復
哨兵控制臺打印出如下信息:
2989:X 05 Jun 20:16:50.300 # +sdown master taotaoMaster 127.0.0.1 6379 說明master服務已經宕機 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 開始恢復故障 2989:X 05 Jun 20:16:50.304 # +vote-for-leader 9059917216012421e8e89a4aa02f15b75346d2b7 1 投票選舉哨兵leader,現在就一個哨兵所以leader就自己 2989:X 05 Jun 20:16:50.304 # +elected-leader master taotaoMaster 127.0.0.1 6379 選中leader 2989:X 05 Jun 20:16:50.304 # +failover-state-select-slave master taotaoMaster 127.0.0.1 6379 選中其中的一個slave當做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 發送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 等待升級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 升級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 故障恢復完成 2989:X 05 Jun 20:16:52.438 # +switch-master taotaoMaster 127.0.0.1 6379 127.0.0.1 6381 主數據庫從6379轉變為6381 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的從庫 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的從庫 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 發現6379已經宕機,等待6379的恢復可以看出,目前,6381位master,擁有一個slave為6380.
接下來,我們恢復6379查看狀態:
7、配置多個哨兵
- vim sentinel.conf
輸入內容:
- sentinel monitor taotaoMaster1 127.0.0.1 6381 1
sentinel monitor taotaoMaster2 127.0.0.1 6381 2
end
?歡迎關注微信公眾號【廈門微思網絡】。www.xmws.cn專業IT認證培訓19周年
主要課程:思科、華為、紅帽、ORACLE、VMware、CISP、PMP等認證培訓及考證
總結
以上是生活随笔為你收集整理的Redis宕机了怎么办?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网工路由基础(4)EIGRP协议
- 下一篇: 超简单的MySQL菜鸟安装教程