1. 程式人生 > >MariaDB高可用架構之MHA--VIP切換

MariaDB高可用架構之MHA--VIP切換

#!/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.166.39/24';
my $key = '1';
my $ssh_start_vip = "/sbin/ifconfig eth1:$key $vip";
my $ssh_stop_vip = "/sbin/ifconfig eth1:$key down";


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 (
[email protected]
) {
            warn "Got Error: [email protected]\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 (
[email protected]
) {
            warn [email protected];
            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 \"`;
}
sub stop_vip() {
    return 0  unless  ($ssh_user);
    `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";

相關推薦

MariaDB可用架構MHA--VIP切換

#!/usr/bin/env perl use strict; use warnings FATAL => 'all'; use Getopt::Long; my (     $command,          $ssh_user,        $orig_master_host, $orig_ma

互聯網金融MySQL可用架構-MHA故障切換

文件 ads erro osi ddr app1 bind enabled ive 互聯網金融MySQL高可用架構之-MHA 在線平滑切換過程 --切換命令如下: [root@MHA bin]# masterha_master_switch --conf=/etc/app1

MySQL/MariaDB可用架構MHA

宣告:本次實驗使用的是MariaDB資料庫,所以本文中所出現的MariaDB與MySQL都是指的是MariaDB!!! MHA(Master HA)是一款開源的 MySQL 的高可用程式,它為 MySQL主從複製架構提供 了 automating master

MariaDB可用架構MHA

rep tom each edi ror state ant mman status MHA(Master High Availability) 該軟件由兩部分組成:MHA Manager(管理節點)和MHA Node(數據節點)。MHA Manager可以單獨部署在一臺獨

MySQL可用架構MHA

mysql1、關於MHAMHA(Master HA)是一款開源的MySQL的高可用程序,它為MySQL主從復制架構提供了automating master failover功能。MHA在監控到master節點故障時,會提升其中擁有的最新數據的slave節點成為新的master節點,在此期間,MHA會通過其它從

mysql實現可用架構MHA

行數據 reading glob restart 比較 實驗 是否 其余 one 一、簡介   MHA(Master HA)是一款開源的 MySQL 的高可用程序,它為 MySQL 主從復制架構提供了 automating master failover 功能。MHA 在監

mysql可用架構MHA和mysql日誌優化

一、MHA簡介: MHA(Master High Availability)目前在MySQL高可用方面是一個相對成熟的解決方案,它由日本DeNA公司youshimaton(現就職於 Facebook公司)開發,是一套優秀的作為MySQL高可用性環境下故障切換和主從提升的高可用軟體。在M

MySQL可用架構MHA搭建以及測試(二)

一、MHA特點 MHA監控複製架構的主伺服器,一旦檢測到主伺服器故障,就會自動進行故障轉移。 即使有些從伺服器沒有收到最新的relay log,MHA自動從最新的從伺服器上識別差異的relay log並把這些日誌應用到其他從伺服器上,因此所有的從伺服器保持一致性了。MHA通

MySQL可用架構基於MHA的搭建

MySQL高可用架構之基於MHA的搭建  一、MySQL MHA架構介紹: MHA(Master High Availability)目前在MySQL高可用方面是一個相對成熟的解決方案,它由日本DeNA公司youshimaton(現就職於Facebook公司)開發,是一套

京東618:商城交易平臺的可用架構

資源 系統 定位問題 修復 tle 峰值 網絡 寫入 差異 據騰訊科技報道,6月18日零點,京東全民年中購物節拉開了高潮的序幕。第一個小時的銷售額超過去年同期的250%。從淩晨開始的海量訂單讓6月1日就拉開序幕的京東年中購物節奏出最強音,大量用戶瞬間湧入,峰值訂單被不斷刷新

MySQL可用架構MySQL5.7.19 PXC

mysql高可用 5.7 sta var show mysql clu -- ike mysql> show global status like ‘wsrep_cluster_size‘;+--------------------+-------+| Variabl

可用架構可用的應用和服務

高可用的網站架構需要網站應用每個層面的支援,本文著重介紹應用層和服務層的高可用的解決方案。 1、高可用的應用 應用層主要處理網站應用的業務邏輯,因此有時也被稱作業務邏輯層,應用的一個顯著特點是應用的無狀態性。 所謂無狀態的應用是指應用伺服器不儲存業務的上下文資訊,而僅根據

京東商城交易平臺的可用架構

作者:王曉鍾 編輯:木環、郭蕾 據騰訊科技報道,6 月 18 日零點,京東全民年中購物節拉開了高潮的序幕。第一個小時的銷售額超過去年同期的 250%。從凌晨開始的海量訂單讓 6 月 1 日就拉開序幕的京東年中購物節奏出最強音,大量使用者瞬間湧入,峰值訂單被不斷重新整理。為了應對如此大規模的流量增長

MySQL 可用架構MMM

簡介 MMM(Master-Master replication manager for MySQL)是一套支援雙主故障切換和雙主日常管理的指令碼程式。MMM使用Perl語言開發,主要用來監控和管理MySQL Master-Master(雙主)複製,雖然叫做雙主複製,但是業務上同一時刻只允許對一個主進行寫入

nfs可用架構DRBD+heartbeat

一:軟體簡介 Heartbeat介紹 官方站點:http://linux-ha.org/wiki/Main_Pageheartbeat可以資源(VIP地址及程式服務)從一臺有故障的伺服器快速的轉移到另一臺正常的伺服器提供服務,heartbeat和keepalived相似,h

可用架構分散式快取

為什麼需要快取?加速請求響應時間,響應延遲小減少對固化儲存的讀壓力 快取適用場合靜態資源的快取較少更改資源的快取讀多寫少場景不適合場景頻繁更新讀少寫多 高可用架構使用的快取型別有哪些?各自作用是什麼?本地快取靜態不變的資料減少網路I/O互動程序內快取和程序相關的動態資料動態

MySQL雙主可用架構MMM實戰

MMM簡介: MMM即Master-Master Replication Manager for MySQL(mysql主主複製管理器),是關於mysql主主複製配置的監控、故障轉移和管理的一套可伸縮的指令碼套件(在任何時候只有一個節點可以被寫入),這個套件也能基於標準

京東京麥開放平臺的可用架構

京麥是京東商家的多端開放式工作平臺,是京東十萬商家唯一的店鋪運營管理平臺,為京東商家提供在移動和桌面端的操作業務,京麥本身是一個開放的端體系架構,由京東官方和 ISV 為商家提供多樣的應用服務。 京麥開發平臺是京東系統與外部系統通訊的重要平臺,技術架構從早期的單一 Ng

可用架構限流降級

 一、服務等級協議  我們常說的N個9,就是對SLA的一個描述。 SLA全稱是ServiceLevel Agreement,翻譯為服務水平協議,也稱服務等級協議,它表明了公有云提供服務的等級以及質量。 例如阿里雲對外承諾的就是一個服務週期內叢集服務可用性不低於99.99%,如

三分鐘帶你入門 redis 可用架構哨兵

什麼是哨兵? 哨兵(Sentinel)是 redis 的高可用性解決方案,前面我們講的主從複製它是高可用的基礎,需要人工介入才能完成故障轉移,哨兵可以解決這個問題,在主從複製情況下,當主節點發生故障時,哨兵可以自動的發現故障並且完成故障轉移,實現真正的 redis 高可用。在哨兵叢集中,哨兵會監視所有的 re