検索

MHA 手动故障转移

Jun 07, 2016 pm 04:00 PM
oracleデータベース

MHA提供了3种方式用于实现故障转移,分别自动故障转移,需要启用MHA监控;在无监控的情况下的手动故障转移以及基于在线手动切换。

MHA提供了3种方式用于实现故障转移,分别自动故障转移,,需要启用MHA监控;在无监控的情况下的手动故障转移以及基于在线手动切换。三种方式可以应对MySQL主从故障的任意场景。本文主要描述在无监控的情形是手动实现故障转移。供大家参考。

有关MHA的其他两种切换方式,可以参考:

  • MHA 在线切换过程 
  • MHA 自动故障转移步骤及过程剖析 
  • 1、手动故障转移的特点
        a、在监控节点未启用masterha_manager
        b、master库已经宕机或者转移到高性能服务器
        c、手动故障转移支持交互或非交互两种模式
        d、切换样例:$ masterha_master_switch --master_state=dead --conf=/etc/app1.cnf --dead_master_host=host1

    2、masterha_master_switch切换的几个参数
    --master_state=dead
          强制参数为"dead" 或者 "alive". dead为手动故障转移,alive为在线切换。
     
    --dead_master_host=(hostname)
          强制参数为主机名,另2个--dead_master_ip --dead_master_port(缺省3306)可选。
     
    --new_master_host=(hostname)
          可选参数,用于指定新master,如果未指定则按candidate_master参数设定值。
     
    --interactive=(0|1)
          可选参数,指定是否交互。缺省为1,表明交互。

    3、演示手动故障转移
    ###环境 
    [root@vdbsrv1 ~]# more /etc/hosts
    127.0.0.1    localhost.localdomain localhost
    192.168.1.6  vdbsrv1  #master
    192.168.1.7  vdbsrv2  #slave1
    192.168.1.8  vdbsrv3  #slave2
    192.168.1.12 vdbsrv4  #manager

     

    ###master开启VIP
    [root@vdbsrv4 ~]# ssh vdbsrv1 "/sbin/ifconfig eth0:0 192.168.1.13 netmask 255.255.255.0 up"

    ###检测MHA监控是否运行,如果已启动,可以使用masterha_check_stop先停止
    [root@vdbsrv4 ~]# masterha_check_status --conf=/etc/masterha/app1.cnf
    app1 is stopped(2:NOT_RUNNING).

    ###模拟从库滞后
    [root@vdbsrv4 ~]# ssh vdbsrv2 "mysql -e 'stop slave io_thread'"
    [root@vdbsrv4 ~]# ssh vdbsrv2 "mysql -e 'show slave status\G' | egrep 'Slave_IO|Slave_SQL'"
                  Slave_IO_State:
                Slave_IO_Running: No
                Slave_SQL_Running: Yes
          Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it

    ###主库上插入新记录
    mysql> insert into tb(val,dt) values('john',current_date());
    Query OK, 1 row affected (0.01 sec)

    ###模拟master异常宕机
    [root@vdbsrv4 ~]# ssh vdbsrv1 "killall -r mysqld"

    ###开始手工故障转移
    [root@vdbsrv4 ~]# masterha_master_switch --master_state=dead --conf=/etc/masterha/app1.cnf --dead_master_host=vdbsrv1 \
    >  --dead_master_port=3306 --new_master_host=vdbsrv3 --new_master_port=3306 --ignore_last_failover
    --dead_master_ip= is not set. Using 192.168.1.6.
    Wed Apr 22 11:48:39 2015 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
    Wed Apr 22 11:48:39 2015 - [info] Reading application default configuration from /etc/masterha/app1.cnf..
    Wed Apr 22 11:48:39 2015 - [info] Reading server configuration from /etc/masterha/app1.cnf..
    Wed Apr 22 11:48:39 2015 - [info] MHA::MasterFailover version 0.56.
    Wed Apr 22 11:48:39 2015 - [info] Starting master failover.
    Wed Apr 22 11:48:39 2015 - [info]
    Wed Apr 22 11:48:39 2015 - [info] * Phase 1: Configuration Check Phase..
    Wed Apr 22 11:48:39 2015 - [info]
    Wed Apr 22 11:48:39 2015 - [info] GTID failover mode = 0
    Wed Apr 22 11:48:39 2015 - [info] Dead Servers:
    Wed Apr 22 11:48:39 2015 - [info]  vdbsrv1(192.168.1.6:3306)
    Wed Apr 22 11:48:39 2015 - [info] Checking master reachability via MySQL(double check)...
    Wed Apr 22 11:48:39 2015 - [info]  ok.
    Wed Apr 22 11:48:39 2015 - [info] Alive Servers:
    Wed Apr 22 11:48:39 2015 - [info]  vdbsrv2(192.168.1.7:3306)
    Wed Apr 22 11:48:39 2015 - [info]  vdbsrv3(192.168.1.8:3306)
    Wed Apr 22 11:48:39 2015 - [info] Alive Slaves:
    Wed Apr 22 11:48:39 2015 - [info]  vdbsrv2(192.168.1.7:3306)  Version=5.6.22-log (oldest major version between slaves) log-bin:enabled
    Wed Apr 22 11:48:39 2015 - [info]    Replicating from 192.168.1.6(192.168.1.6:3306)
    Wed Apr 22 11:48:39 2015 - [info]  vdbsrv3(192.168.1.8:3306)  Version=5.6.22-log (oldest major version between slaves) log-bin:enabled
    Wed Apr 22 11:48:39 2015 - [info]    Replicating from 192.168.1.6(192.168.1.6:3306)
    Master vdbsrv1(192.168.1.6:3306) is dead. Proceed? (yes/NO): yes
    Wed Apr 22 11:48:54 2015 - [info] Starting Non-GTID based failover.
    Wed Apr 22 11:48:54 2015 - [info]
    Wed Apr 22 11:48:54 2015 - [info] ** Phase 1: Configuration Check Phase completed.
    Wed Apr 22 11:48:54 2015 - [info]
    Wed Apr 22 11:48:54 2015 - [info] * Phase 2: Dead Master Shutdown Phase..
    Wed Apr 22 11:48:54 2015 - [info]
    Wed Apr 22 11:48:54 2015 - [info] HealthCheck: SSH to vdbsrv1 is reachable.
    Wed Apr 22 11:48:55 2015 - [info] Forcing shutdown so that applications never connect to the current master..
    Wed Apr 22 11:48:55 2015 - [info] Executing master IP deactivation script:
    Wed Apr 22 11:48:55 2015 - [info]  /tmp/master_ip_failover --orig_master_host=vdbsrv1 --orig_master_ip=192.168.1.6
      --orig_master_port=3306 --command=stopssh --ssh_user=root 

    IN SCRIPT TEST====/sbin/ifconfig eth0:0 down==/sbin/ifconfig eth0:0 192.168.1.13/24===

    声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    MySQLにユーザーを追加:完全なチュートリアルMySQLにユーザーを追加:完全なチュートリアルMay 12, 2025 am 12:14 AM

    MySQLユーザーを追加する方法を習得することは、データベース管理者と開発者にとって重要です。これは、データベースのセキュリティとアクセス制御を保証するためです。 1)CreateUserコマンドを使用して新しいユーザーを作成し、2)付与コマンドを介してアクセス許可を割り当て、3)FlushPrivilegesを使用してアクセス許可を有効にすることを確認します。

    MySQL文字列データ型のマスター:Varchar vs. Text vs. CharMySQL文字列データ型のマスター:Varchar vs. Text vs. CharMay 12, 2025 am 12:12 AM

    choosecharforfixed-lengthdata、varcharforvariable-lengthdata、andtextforlargetextfields.1)chariseffienceforconsistent-lengthdatalikecodes.2)varcharsuitsvariaible-lengthdatalikenames、balancingflexibilityandperformance.3)Textisidealforforforforforforforforforforforidex

    MySQL:文字列データ型とインデックス:ベストプラクティスMySQL:文字列データ型とインデックス:ベストプラクティスMay 12, 2025 am 12:11 AM

    MySQLの文字列データ型とインデックスを処理するためのベストプラクティスには、次のものが含まれます。1)固定長のchar、可変長さのvarchar、大規模なテキストのテキストなどの適切な文字列タイプを選択します。 2)インデックス作成に慎重になり、インデックスを避け、一般的なクエリのインデックスを作成します。 3)プレフィックスインデックスとフルテキストインデックスを使用して、長い文字列検索を最適化します。 4)インデックスを定期的に監視および最適化して、インデックスを小さく効率的に保つ。これらの方法により、読み取りと書き込みのパフォーマンスをバランスさせ、データベースの効率を改善できます。

    MySQL:リモートでユーザーを追加する方法MySQL:リモートでユーザーを追加する方法May 12, 2025 am 12:10 AM

    toaddauserremotelytomysql、フォローステープ:1)connecttomysqlasroot、2)createanewuserwithremoteaccess、3)grantniverayprivileges、and4)flushprivileges.

    MySQL文字列データ型の究極のガイド:効率的なデータストレージMySQL文字列データ型の究極のガイド:効率的なデータストレージMay 12, 2025 am 12:05 AM

    tostorestringseffiedlyinmysql、choosetherightdatatypebasedonyourneadss:1)usecharforfixed-lengthstringslikecountrycodes.2)usevarforvariable-lengthstringslikenames.3)usetextfor forlong-formtextcontent.4)useblobforborikedalikeimages

    mysql blob vs.テキスト:大きなオブジェクトに適したデータ型を選択するmysql blob vs.テキスト:大きなオブジェクトに適したデータ型を選択するMay 11, 2025 am 12:13 AM

    MySQLのBLOBおよびテキストデータ型を選択する場合、BLOBはバイナリデータの保存に適しており、テキストはテキストデータの保存に適しています。 1)BLOBは、写真やオーディオなどのバイナリデータに適しています。2)テキストは、記事やコメントなどのテキストデータに適しています。選択するときは、データプロパティとパフォーマンスの最適化を考慮する必要があります。

    MySQL:製品にルートユーザーを使用する必要がありますか?MySQL:製品にルートユーザーを使用する必要がありますか?May 11, 2025 am 12:11 AM

    いいえ、Youは、usotherootuserinmysqlforyourproduct.instead、createpificusers withlimitedprivilegestoenhancesecurityandperformance:1)createanewuserwithastrongpassword、2)grantonlynlyneversearpermissionStothisuser、3)正規環境筋肉筋周辺の環境

    MySQL文字列データ型説明:データに適したタイプを選択するMySQL文字列データ型説明:データに適したタイプを選択するMay 11, 2025 am 12:10 AM

    mysqlstringdatatypesshouldbechosenbadedatacharacteristicsandusecases:1)usecharforfixed-lengthstringslikecountrycodes.2)usevarforvariable-lengthstringslikenames.3)usebinaryorvarniaryforbinarydatalikecryptograpograpogrationckeys.4)使用

    See all articles

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    Video Face Swap

    Video Face Swap

    完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

    ホットツール

    SublimeText3 英語版

    SublimeText3 英語版

    推奨: Win バージョン、コードプロンプトをサポート!

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    SecLists

    SecLists

    SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

    MantisBT

    MantisBT

    Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

    VSCode Windows 64 ビットのダウンロード

    VSCode Windows 64 ビットのダウンロード

    Microsoft によって発売された無料で強力な IDE エディター