我們來學mysql -- keepalive主從高可用

keepalive主從高可用

  • 簡明扼要
  • 安裝KP
  • 場景
  • “高可用”配置
    • 主keepalived.conf
    • 從keepalived.conf
    • mysql_check.sh
  • 高可用驗證
    • KP運行情況
    • 通過vip連接mysql
    • vip連接上創建數據庫
    • 關閉主庫所在服務器的KP
    • vip連接上再次創建數據庫
  • 結尾

簡明扼要

  • 搭建mysql的主從
  • 八股文如是:主用來寫,從作為讀(大量報表業務或其他讀較多的需求)
    • 實際業務中,從頂多就是個備份
    • 至少binlog被破壞,數據在從還有一份
  • 或許正是源于此種解釋,客戶認為我認為的不是他認為的
  • 便有了這樣的需求
    • 主節點下線,數據服務要能切換到從
  • 呵呵,那便有了keepalive,便會造成兩種情況
    • 主恢復了后,主從關系易位
      • 涉及將從的數據恢復到主(此時做了些業務,從的數據多余主)
      • 修改my.cnf配置,調整主從
    • 保持之前主從關系
      • 從的數據恢復到主(此時做了些業務,從的數據多余主)
      • 開啟主從
  • 友情提示
    • 本篇只是驗證數據服務的切換,上述的兩種情況不做記錄
    • 本篇通過主數據服務的下線,關閉KP,實現切換

安裝KP

  • 參考

場景

  • 兩臺服務器,都安裝了KP
  • 兩臺服務器,做了mysql主從
  • 主mysql下線,從mysql提供數據服務

“高可用”配置

主keepalived.conf

  • 配置 authentication 兩個節點一樣
  • 配置virtual_ipaddress 未被占用的IP
  • 配置 interface 實際的網卡
  • 配置 virtual_router_id 虛擬路由id,雙節點需要一致
  • 配置 priority 優先級,以優先級為主,state 沒啥意義
  • 配置 vrrp_script 檢測腳本
! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_DEVELvrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_script mysql_check {  # 健康檢查腳本,通過命令判斷MySQL的狀態值,如果狀態值不為零,則MySQL異常,停止keepalived服務,VIP將飄逸到另一臺backup上面。script "/u01/soft/oracle/script/mysql_check.sh" # 腳本別忘了加上可執行權限。interval 2 # 沒2秒檢查一次# weight -30 # 檢查失敗,優先級減30
}vrrp_instance VI_1 {state MASTERinterface ens192 # 實際網卡名稱virtual_router_id 51 # 虛擬路由id,雙節點需要一致priority 100 # 主節點優先級advert_int 1# 認證密碼,雙節點需一致authentication {auth_type PASSauth_pass 1111}track_script {	mysql_check        # 使用vrrp_script定義的名稱}virtual_ipaddress {10.2.0.200}# Allow packets addressed to the VIPs above to be receivedaccept
}

從keepalived.conf

  • 除了優先級,其他都一樣
  • 當然,網卡要配置當前服務器的
  • 沒有數據庫檢測的腳本
! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_DEVELvrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_instance VI_1 {state MASTERinterface ens192 # 實際網卡名稱virtual_router_id 51 # 虛擬路由id,雙節點需要一致priority 90 # 節點優先級advert_int 1# 認證密碼,雙節點需一致authentication {auth_type PASSauth_pass 1111}track_script {	}virtual_ipaddress {10.2.0.200}# Allow packets addressed to the VIPs above to be receivedaccept
}

mysql_check.sh

  • 檢查不到數據庫服務,關閉KP
#!/bin/bashss -tnl |grep 3308
i=$?ps -ef | grep mysqld |grep -v color |grep -v "grep mysqld"
j=$?mysql -uroot -proot@000 -e "select version();"
k=$?if [ $i -ne 0 -a $j -ne 0 -a $k -ne 0 ];then
# 通過命令判斷MySQL的狀態值,如果狀態值不為零,則MySQL異常,停止keepalived服務,VIP將飄逸到另一臺backup上面。systemctl stop keepalivedexit 1
elseexit 0
fi

高可用驗證

KP運行情況

在這里插入圖片描述
在這里插入圖片描述

通過vip連接mysql

在這里插入圖片描述

vip連接上創建數據庫

在這里插入圖片描述

關閉主庫所在服務器的KP

在這里插入圖片描述
在這里插入圖片描述

vip連接上再次創建數據庫

在這里插入圖片描述

結尾

  • 給個贊呦!!!
    在這里插入圖片描述
    在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/84615.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/84615.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/84615.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Compose筆記(二十六)--DatePicker

這一節主要了解一下Compose中的DatePicker,DatePicker是一個用于選擇日期的組件,它提供了直觀的界面讓用戶可以通過日歷視圖或直接輸入來選擇年、月、日。我們在開發中時常會用到日期選擇器,簡單總結如下: API: DatePickerDialog onDismissRequest&…

【靶場】upload-labs-文件上傳漏洞闖關

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 前言1.第一關1.保存html頁面2.修改頁面html3.訪問修改后的本地html文件4.上傳php文件5.訪問上傳的php2.第二關1.抓上傳包修改文件類型2.上傳成功3.第三關1.phtml php3會被解析為php原理2.上傳成功4…

基于 Transformer RoBERTa的情感分類任務實踐總結之四——PGM、EMA

整合了以下五大核心技術:R-Drop、PGM 對抗訓練、EMA、標簽平滑、CosineAnnealing 學習率調度。 1. R-Drop(Regularized Dropout) 原理:同一個樣本做兩次前向傳播(同 dropout mask),計算兩次輸…

錄制mp4 rospy

ros 預覽攝像頭 #!/usr/bin/env python import rospy from sensor_msgs.msg import Image from cv_bridge import CvBridge import cv2# 初始化 bridge bridge CvBridge()def image_callback(msg):# 將ROS圖像消息轉換為OpenCV圖像cv_image bridge.imgmsg_to_cv2(msg, desir…

超簡單部署離線語音合成TTS和語音識別

一篇文章講清楚超簡單 離線語音合成TTS 和 離線語音識別 系統部署 本文只介紹兩個輕量級的 語音合成用piper, 語音識別用vosk 部署簡單,效果勉強 語音合成 推薦 piper (其他沒用過) 安裝 linux下安裝 pip install piper-tts下載模型(63M) 中文模型下載 zh_CN-huayan-medi…

【算力網】

一、算力網-DNS 1.1、核心架構設計 1.1.1 設計框架 基于SRv6的智能DNS算法設計框架,結合IPv6路由可編程性、動態路徑優化及業務感知能力,實現網絡性能與用戶體驗的雙重提升:? ?SRv6-DNS融合架構? ?控制平面?: DNS服務器集…

shell分析nginx日志的指令

shell指令 查看有多少個IP訪問: awk {print $1} log_file|sort|uniq|wc -l 查看某一個頁面被訪問的次數: grep "/index.php" log_file | wc -l 查看每一個IP訪問了多少個頁面: awk {S[$1]} END {for (a in S) print a,S[a]} …

CMS軟件以及常見分類

CMS(Content Management System,內容管理系統)是 讓非技術人員也能便捷創建、編輯、管理網站內容的軟件 ,核心是 分離 “內容” 和 “頁面設計”(內容存在數據庫,頁面用模板生成),無…

Spring @Value 典型用法

典型用法 注入常量值 Value("Hello World") private String message;注入配置文件中的屬性值(如 application.properties) // 假設你有如下配置: app.nameMyApp app.version1.0.0// Java 類中使用: Value("${ap…

golang -- map實現原理

目錄 一、前言二、結構1. hmap(map) 結構2. bmap(buckets) 結構 三、哈希沖突四、負載因子五、哈希函數六、擴容增量擴容等量擴容 一、前言 在現代編程語言中,map 是一種非常重要的數據結構,廣泛用于存儲和快速查找鍵值對。Go 語言中的 map 是一種高效且…

Vue2 Extends 繼承機制與組件復用實踐

extends在某些場景下依然發揮作用,如Options API。子組件將繼承父組件的屬性、方法、生命周期鉤子函數以及混合(mixins)等選項。 注意:子組件可以覆蓋、或繼承擴展父組件的選項。子組件的生命周期鉤子和父組件的鉤子一起執行。 &l…

openSUSE MicroOS不可變Linux

openSUSE MicroOS不可Linux 1、openSUSE MicroOS簡介安裝時可能遇到的問題 2、ssh登錄3、openSUSE MicroOS配置國內軟件源4、系統變更openSUSE MicroOS安裝軟件包方法1:進入事務性更新模式安裝軟件包方法2:繼續快照id基于這個快照進行增量安裝方法3&…

建站SEO優化之站點地圖sitemap

文章目錄 編寫規范小型網站站點地圖小型網站規范示例站點地圖說明 大型網站站點地圖大型網站規范示例以豆瓣站點地圖為例 近期文章: 個人建站做SEO網站外鏈這一點需要注意,做錯了可能受到Google懲罰一文搞懂SEO優化之站點robots.txt網頁常見水印實現方式…

Java分層開發必知:PO、BO、DTO、VO、POJO概念詳解

目錄 引言一、核心概念與定義1、PO(Persistent Object,持久化對象)2、BO(Business Object,業務對象)3、DTO(Data Transfer Object,數據傳輸對象)4、VO(View O…

Linux下OLLAMA安裝卡住怎么辦?

網絡環境不理想,經常在官方的linux安裝腳本執行時卡住,其實主要是下載文件卡住,于是我想到了是否可以把其中下載的過程顯化、分步,這樣更可控,于是修改了官方的install.sh #!/bin/sh # This script installs Ollama o…

C++面試(5)-----刪除鏈表中指定值的節點

操作系統:ubuntu22.04 IDE:Visual Studio Code 編程語言:C11 算法描述 給定一個單向鏈表的頭節點 head 和一個特定值 val,要求編寫一個函數來刪除鏈表中所有值等于 val 的節點,并返回修改后的鏈表頭節點。 示例: 輸…

如何用AI賦能學習

由于博主是大學生,今天花費了大量的時間去進行期末的復習,不過從復習中得到了一些學習的靈感,即:如何用AI賦能學習 當我們需要掌握一門新的技能的時候,我們很容易的想到三種辦法:買書自己學,報…

【threejs】每天一個小案例講解:常見材質

代碼倉 GitHub - TiffanyHoo/three_practices: Learning three.js together! 可自行clone,無需安裝依賴,直接liver-server運行/直接打開chapter01中的html文件 運行效果圖 知識要點 1. MeshBasicMaterial(基礎網格材質) ? 特…

springboot后端與鴻蒙的結合

軟件:鴻蒙devceo3.1,springboot項目采用IDEA 目的: 1、結合springboot后端與鴻蒙的結合運用。 2、Log日志查看console語句的信息。 3、引入 import http from ohos.net.http。 4、調用springboot后端提供的鏈接發送post 5、TextInput的…

minio集群通過mc mirror命令進行定時備份,支持X86和arm兩種架構

文章目錄 前言一、思路二、使用步驟1.下載mc二進制文件2.手動測試備份命令3.配置定時任務4.成功截圖 總結 前言 通過mc mirror命令對minio集群進行定時備份。 一、思路 通過mc mirror命令配合crond定時任務進行周期性的備份 二、使用步驟 1.下載mc二進制文件 wget https:…