MySQL MHA 故障轉移-VIP

MHA故障轉移-VIP

#手工在主庫添加VIP
ifconfig?ens33:1?192.168.80.200/24

配置VIP腳本

vim?/usr/local/bin/master_ip_failoverchmod?+x?/usr/local/bin/#!/usr/bin/env?perl
use?strict;
use?warnings?FATAL?=>?'all';use?Getopt::Long;my?(
$command,?$ssh_user,?$orig_master_host,?$orig_master_ip,
$orig_master_port,?$new_master_host,?$new_master_ip,?$new_master_port
);my?$vip?=?'192.168.80.200/24';??????????????????????????????????????????????????????????#指定vip的地址,自己指定
my?$brdc?=?'192.168.80.255';????????????????????????????????????????????????????????????#指定vip的廣播地址
my?$ifdev?=?'ens33';????????????????????????????????????????????????????????????????????????????#指定vip綁定的網卡
my?$key?=?'1';??????????????????????????????????????????????????????????????????????????????????????????#指定vip綁定的虛擬網卡序列號
my?$ssh_start_vip?=?"/sbin/ifconfig?$ifdev:$key?$vip";??????????#代表此變量值為ifconfig?ens33:1?192.168.80.200
my?$ssh_stop_vip?=?"/sbin/ifconfig?$ifdev:$key?down";???????????#代表此變量值為ifconfig?ens33:1?192.168.80.200?down
my?$exit_code?=?0;??????????????????????????????????????????????????????????????????????????????????????#指定退出狀態碼為0
#my?$ssh_start_vip?=?"/usr/sbin/ip?addr?add?$vip/24?brd?$brdc?dev?$ifdev?label?$ifdev:$key;/usr/sbin/arping?-q?-A?-c?1?-I?$ifdev?$vip;iptables?-F;";
#my?$ssh_stop_vip?=?"/usr/sbin/ip?addr?del?$vip/24?dev?$ifdev?label?$ifdev:$key";
##################################################################################
GetOptions(
'command=s'?=>?\$command,
'ssh_user=s'?=>?\$ssh_user,
'orig_master_host=s'?=>?\$orig_master_host,
'orig_master_ip=s'?=>?\$orig_master_ip,
'orig_master_port=i'?=>?\$orig_master_port,
'new_master_host=s'?=>?\$new_master_host,
'new_master_ip=s'?=>?\$new_master_ip,
'new_master_port=i'?=>?\$new_master_port,
);exit?&main();sub?main?{print?"\n\nIN?SCRIPT?TEST====$ssh_stop_vip==$ssh_start_vip===\n\n";if?(?$command?eq?"stop"?||?$command?eq?"stopssh"?)?{my?$exit_code?=?1;
eval?{
print?"Disabling?the?VIP?on?old?master:?$orig_master_host?\n";
&stop_vip();
$exit_code?=?0;
};
if?($@)?{
warn?"Got?Error:?$@\n";
exit?$exit_code;
}
exit?$exit_code;
}
elsif?(?$command?eq?"start"?)?{my?$exit_code?=?10;
eval?{
print?"Enabling?the?VIP?-?$vip?on?the?new?master?-?$new_master_host?\n";
&start_vip();
$exit_code?=?0;
};
if?($@)?{
warn?$@;
exit?$exit_code;
}
exit?$exit_code;
}
elsif?(?$command?eq?"status"?)?{
print?"Checking?the?Status?of?the?script..?OK?\n";
exit?0;
}
else?{
&usage();
exit?1;
}
}
sub?start_vip()?{
`ssh?$ssh_user\@$new_master_host?\"?$ssh_start_vip?\"`;
}
##?A?simple?system?call?that?disable?the?VIP?on?the?old_master
sub?stop_vip()?{
`ssh?$ssh_user\@$orig_master_host?\"?$ssh_stop_vip?\"`;
}sub?usage?{
print
"Usage:?master_ip_failover?--command=start|stop|stopssh|status?--orig_master_host=host?--orig_master_ip=ip?--orig_master_port=port?--new_master_host=host?--new_master_ip=ip?--new_master_port=port\n";
}

修改manager配置文件

[server?default]
manager_log=/data/mha/mysql3306/manager.log
manager_workdir=/data/mha/mysql3306/manager
master_binlog_dir=/data/mha/mysql3306/
user=mha
password=mha
ping_interval=2
repl_password=123456
repl_user=repl
ssh_user=root
master_ip_failover_script=/usr/local/bin/master_ip_failover[server1]
hostname=192.168.80.22
port=3306[server2]
hostname=192.168.80.11
candidate_master=1
port=3306[server3]
hostname=192.168.80.33
port=3306

重啟MHA

sh?start_mha.shmasterha_check_status?--conf=/data/mha/mha_3306.cnf

災備演練

#kill?主節點mysql進程[root@master?~]#?ps?-ef|grep?mysql
root??????52566???1775??0?03:37?pts/0????00:00:00?/bin/sh?./mysqld_safe?--defaults-file=/data/mysql3306/etc/my.cnf?--user=mysql
mysql?????52900??52566??0?03:37?pts/0????00:00:05?/usr/local/mysql/bin/mysqld?--defaults-file=/data/mysql3306/etc/my.cnf?--basedir=/usr/local/mysql?--datadir=/data/mysql3306/data?--plugin-dir=/usr/local/mysql/lib/plugin?--user=mysql?--log-error=/data/mysql3306/log/mysql.err?--pid-file=/data/mysql3306/data/mysql.pid?--socket=/data/mysql3306/tmp/mysql.sock?--port=3306
root??????61368???1775??0?04:03?pts/0????00:00:00?grep?--color=auto?mysql
[root@master?~]#?kill?-9?52566?52900

查看MHA 日志

Checking?the?Status?of?the?script..?OK
Mon?Jun?23?04:13:47?2025?-?[info]??OK.
Mon?Jun?23?04:13:47?2025?-?[warning]?shutdown_script?is?not?defined.
Mon?Jun?23?04:13:47?2025?-?[info]?Set?master?ping?interval?2?seconds.
Mon?Jun?23?04:13:47?2025?-?[warning]?secondary_check_script?is?not?defined.?It?is?highly?recommended?setting?it?to?check?ma??????????????????????????????ster?reachability?from?two?or?more?routes.
Mon?Jun?23?04:13:47?2025?-?[info]?Starting?ping?health?check?on?192.168.80.11(192.168.80.11:3306)..
Mon?Jun?23?04:13:47?2025?-?[info]?Ping(SELECT)?succeeded,?waiting?until?MySQL?doesn't?respond..
Mon?Jun?23?04:14:35?2025?-?[warning]?Got?error?on?MySQL?select?ping:?2006?(MySQL?server?has?gone?away)
Mon?Jun?23?04:14:35?2025?-?[info]?Executing?SSH?check?script:?exit?0
Mon?Jun?23?04:14:35?2025?-?[info]?HealthCheck:?SSH?to?192.168.80.11?is?reachable.
Mon?Jun?23?04:14:37?2025?-?[warning]?Got?error?on?MySQL?connect:?2003?(Can't?connect?to?MySQL?server?on?'192.168.80.11'?(11??????????????????????????????1))
Mon?Jun?23?04:14:37?2025?-?[warning]?Connection?failed?2?time(s)..
Mon?Jun?23?04:14:39?2025?-?[warning]?Got?error?on?MySQL?connect:?2003?(Can't?connect?to?MySQL?server?on?'192.168.80.11'?(11??????????????????????????????1))
Mon?Jun?23?04:14:39?2025?-?[warning]?Connection?failed?3?time(s)..
Mon?Jun?23?04:14:41?2025?-?[warning]?Got?error?on?MySQL?connect:?2003?(Can't?connect?to?MySQL?server?on?'192.168.80.11'?(11??????????????????????????????1))
Mon?Jun?23?04:14:41?2025?-?[warning]?Connection?failed?4?time(s)..
Mon?Jun?23?04:14:41?2025?-?[warning]?Master?is?not?reachable?from?health?checker!
Mon?Jun?23?04:14:41?2025?-?[warning]?Master?192.168.80.11(192.168.80.11:3306)?is?not?reachable!
Mon?Jun?23?04:14:41?2025?-?[warning]?SSH?is?reachable.
Mon?Jun?23?04:14:41?2025?-?[info]?Connecting?to?a?master?server?failed.?Reading?configuration?file?/etc/masterha_default.cn??????????????????????????????f?and?/data/mha/mha_3306.cnf?again,?and?trying?to?connect?to?all?servers?to?check?server?status..
Mon?Jun?23?04:14:41?2025?-?[warning]?Global?configuration?file?/etc/masterha_default.cnf?not?found.?Skipping.
Mon?Jun?23?04:14:41?2025?-?[info]?Reading?application?default?configuration?from?/data/mha/mha_3306.cnf..
Mon?Jun?23?04:14:41?2025?-?[info]?Reading?server?configuration?from?/data/mha/mha_3306.cnf..
[root@mha?mysql3306]#?tail?-f?manager.log
Check?MHA?Manager?logs?at?mha:/data/mha/mysql3306/manager.log?for?details.Started?automated(non-interactive)?failover.
Invalidated?master?IP?address?on?192.168.80.11(192.168.80.11:3306)
Selected?192.168.80.22(192.168.80.22:3306)?as?a?new?master.
192.168.80.22(192.168.80.22:3306):?OK:?Applying?all?logs?succeeded.
192.168.80.22(192.168.80.22:3306):?OK:?Activated?master?IP?address.
192.168.80.33(192.168.80.33:3306):?OK:?Slave?started,?replicating?from?192.168.80.22(192.168.80.22:3306)
192.168.80.22(192.168.80.22:3306):?Resetting?slave?info?succeeded.
Master?failover?to?192.168.80.22(192.168.80.22:3306)?completed?successfully.

master 已經切到slave1,并且vip 跳到了salve1

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

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

相關文章

Elasticsearch索引字段的類型

在 Elasticsearch 中,索引字段的類型(即 Mapping 中的字段類型)對搜索和存儲性能影響很大。下面是各種常用數據類型的用途及推薦使用場景總結: 1. keyword 類型(精確匹配) 適合數據: 不需要分詞…

kubernetes證書續簽-使用kubeadm更新證書(下)

#作者:任少近 文章目錄 查看kubelet證書查看kubelet當前所使用的證書 更換 node上的kubelet證書生成node1所需要的kubelet.conf文件生成node2所需要的kubelet.conf文件查看csr 更新 ~/.kube/config 文件重啟相關組件 查看kubelet證書 以上少了kubelet的證書&#…

AI智能體長期記憶系統架構設計:從認知模型到生產實踐

1 長期記憶:AI智能體的認知基石 1.1 人類記憶與AI記憶的類比 #mermaid-svg-VIPKAFe7VgN4UHFA {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-VIPKAFe7VgN4UHFA .error-icon{fill:#552222;}#mermaid-svg-VIPKAFe7V…

快速上手:利用音頻大模型與Java提取視頻文案

文章目錄 1、前言2、需求說明2.1 需求說明2.2 數據準備 3、功能實現3.1 使用視頻理解大模型能力3.1.1 三方平臺視頻在線鏈接解析3.1.2 三方平臺視頻內網鏈接解析3.1.3 三方平臺視頻轉存本地服務 3.2 使用音頻識別大模型能力3.2.1 三方平臺視頻在線鏈接解析3.2.2 三方平臺視頻詳…

LLM復雜記憶存儲-多會話隔離案例實戰

導讀:在多用戶并發的對話系統中,會話隔離問題往往成為開發者面臨的技術難題。當數千個用戶同時與AI助手交互時,如何確保每個用戶的對話歷史完全獨立,避免數據混淆和隱私泄露? 本文深入剖析了基于RunnableWithMessageHi…

【PX4-AutoPilot教程-TIPS】PX4系統命令行控制臺ConsolesShells常用命令(持續更新)

PX4系統命令行控制臺 Consoles & Shells 常用命令 查看每個應用程序的堆棧使用情況獲取所有可用命令和APP的列表應用程序啟動、停止和狀態查詢查看本地文件系統查看剩余的可用RAM查看工作隊列中正在運行的內容以及運行速率查看特定的uORB話題調試uORB話題進行模式切換和故障…

國內優秀wordpress主題推薦

在國內,WordPress 主題市場雖然不如國外那樣龐大,但依然有許多優秀且適合中國用戶需求的主題。以下是一些經過評估和推薦的國內優秀WordPress主題,涵蓋不同類型的網站需求,如博客、企業官網、資源站、社區論壇等。 WP漢主題 WP漢…

第 6 章:進階話題

第 6 章:進階話題 過擬合vs欠擬合:模型復雜度和泛化能力的關系 在前面的章節中,我們已經學習了神經網絡的基礎知識、常見架構和基本訓練流程。然而,在實際的深度學習項目中,僅僅掌握這些基礎知識是不夠的。我們還需要…

4.2_1樸素模式匹配算法

知識總覽: 什么是字符串的模式匹配: 主串:想從該串獲取結果的串 模式串:想搜索的內容,不一定在主串中能搜到,子串一定能在主串中搜到 字符串模式匹配:在主串找模式串并返回找到的第一個模式串…

華為云Flexus+DeepSeek征文|華為云ModelArts搭建Dify-LLM應用開發平臺(AI智能選股大模型)

前言 在當今數字化時代,人工智能(AI)技術在金融領域的應用愈發廣泛,其中 AI 智能選股大模型備受關注。為了構建高效且精準的 AI 智能選股大模型,選擇合適的開發平臺和工具至關重要。華為云 ModelArts 作為一款面向 AI …

C4.5算法深度解析:決策樹進化的里程碑

C4.5是機器學習史上最經典的算法之一,由ID3之父Ross Quinlan在1993年提出。作為ID3的革命性升級,它不僅解決了前代的核心缺陷,更開創了連續特征處理和剪枝技術的先河,成為現代決策樹的奠基之作。 本文由「大千AI助手」原創發布&am…

leetcode 65

#include <string> #include <vector> #include <unordered_map> using namespace std;class Solution { public:bool isNumber(string s) {// 定義狀態轉移表vector<unordered_map<char, int>> states {{{ , 0}, {s, 1}, {d, 2}, {., 4}}, // …

微服務(nacos+myibatis)中如何在一個模塊調用多數據庫源的一種方案

#nacos配置默認數據庫 spring.datasource.typecom.alibaba.druid.pool.DruidDataSource spring.datasource.driverNamecom.mysql.jdbc.Driver #默認數據庫名 master spring.datasource.dynamic.primarymaster spring.datasource.dynamic.strictfalse spring.datasource.d…

高標準通信國際接軌,Ethercat與PROFINET網關實現全自動化生產線

在呼和浩特&#xff0c;集成商以其先進的食品飲料行業解決方案&#xff0c;為乳制品行業打造了一個智能化工廠的典范。這個工廠的核心是PROFINET全集成自動化&#xff08;TIA&#xff09;&#xff0c;它通過SIMATIC S7-1200 PLC和ethercat系統&#xff0c;構建了一個強大的PROF…

Netty 引用計數抽象類 AbstractReferenceCountedByteBuf 詳解

核心類圖 ----------------------------- ---------------------------------- | ReferenceCountUpdater | | AbstractReferenceCountedByteBuf | | <T extends ReferenceCounted>| | (extends AbstractByteBuf) | ----------…

用Python做一個手機鏡頭

文章目錄 設置光學參數添加光學器件 設置光學參數 官方文檔&#xff1a;設計手機鏡頭 rayoptics中提供了OpticalModel類&#xff0c;可用于創建光學模型對象。OpticalModel類中的【optical_spec】成員&#xff0c;是一個OpticalSpecs對象&#xff0c;可用于指定光圈、視野、光…

16.1 Python應用容器化終極指南:Dockerfile多階段構建與安全優化實戰

Python應用容器化終極指南:Dockerfile多階段構建與安全優化實戰 #mermaid-svg-6Yor3ONhmPaQAcY6 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-6Yor3ONhmPaQAcY6 .error-icon{fill:#552222;}#mermaid-svg-6Yor3ON…

基于SpringBoot + Vue打造的畫師約稿平臺實現

概述 基于SpringBoot Vue打造的畫師約稿平臺&#xff0c;該平臺設計精美、功能完善&#xff0c;無論是想要搭建類似平臺的開發者&#xff0c;還是對畫師約稿系統感興趣的人士&#xff0c;都能從中獲取有價值的信息。 主要內容 ??用戶端功能??&#xff1a; 如圖所示&…

杰理-耳機-可視化sdk-最大音量提示音-7016G

杰理-耳機-可視化sdk-最大音量提示音 1.音量最大的時候發出消息 2.通過 MSG_FROM_AUDIO 進行發送 3.創建地方接收&#xff0c;并且播放提示音 學習q群:187115320

抖音圖文帶貨權限怎么開通

在這個數字化營銷蓬勃發展的時代&#xff0c;抖音作為一個流量巨大的平臺&#xff0c;為廣大創作者和商家提供了豐富的變現途徑。其中&#xff0c;圖文帶貨權限就是一個有效的拓寬變現能力的一個渠道。 那么&#xff0c;如何才能開通抖音的圖文帶貨功能呢&#xff1f; 開通抖…