1. コンセプト 1. ホットバックアップとバックアップの違い ホット バックアップは高可用性 (HA) を指し、バックアップはデータ バックアップの一種であるバックアップを指します。これらは 2 つの異なる概念であり、対応する製品も機能面ではまったく異なる 2 つの製品です。ホットバックアップは主に事業継続性を確保するものであり、その実施方法は障害点を転送することです。バックアップの主な目的は、コピーを作成してデータの損失を防ぐことであるため、バックアップではアプリケーションのフェイルオーバーよりもデータの回復に重点が置かれます。 2. ホットスタンバイとは何ですか? ホットスタンバイとは、広義では、2 台のサーバーを使用して相互にバックアップし、重要なサービスに対して同じサービスを共同で実行することを意味します。サーバーに障害が発生した場合、別のサーバーがサービス タスクを引き継ぐことができるため、システムは自動的に、人間の介入を必要とせずにサービスを継続的に提供できるようになります。 狭義では、ホット スタンバイとは、互いにバックアップし合いながら共同で同じサービスを実行する 2 台のサーバーを使用することです。1 台は稼働サーバー (プライマリ サーバー)、もう 1 台はバックアップ サーバー (スタンバイ サーバー) です。システムが正常な場合、稼働マシンはアプリケーション システムにサービスを提供し、バックアップ マシンは稼働マシンの動作を監視します (通常はハートビート診断を通じて、稼働マシンはバックアップ マシンが正常かどうかも検出します)。稼働マシンが異常になり、アプリケーション システムの動作をサポートできなくなると、バックアップ マシンは稼働マシンの作業を積極的に引き継ぎ、主要なアプリケーション サービスをサポートし続け、システムの中断のない動作を保証します。ホット スタンバイは、IT コア サーバー、ストレージ、ネットワーク ルーティング スイッチの障害に対する高可用性ソリューションです。 さて、Alibaba Cloud Server で MySQL デュアルマシン ホットスタンバイを実装する方法を紹介します。詳細は次のとおりです。 Alibaba Cloud Server はキープアライブ仮想 IP をサポートしていないため、キープアライブを介して MySQL デュアルマシン ホットスタンバイを実装することはできません。 Alibaba Cloud のデュアルマシン ホットスタンバイを実装するには、次の 2 つの方法があります。 1. Alibaba Cloud のクラウド データベースの高度なバージョンを購入します。これにはスレーブ データベースが付属しています。マスター データベースに障害が発生した場合、自動的にスレーブ データベースに切り替わります。 2ここでは主に、MySQL のマスター間同期を実現するために、2 つの Alibaba Cloud サーバーにそれぞれ MySQL をデプロイする 2 番目の方法について説明します。ここではMySQLのマスター間同期については取り上げません。Baiduで自分で検索してください。必要であれば、後で記事を書くかもしれません。 MySQLのマスターマスター同期が実装されていると仮定して、どのように対処するか springboot が使用されているため、yml ファイルを処理し、複数の人へのメール送信を追加する必要があります。ここで、ホストはスケジュールされたタスクを実行し、必要に応じてバックアップ マシンもそれに応じて実行できます。 dockerでデプロイしたmysqlを使用したため、 # コーディング: utf8 サブプロセスのインポート email.mime.text から MIMEText をインポートします smtplibをインポートする インポートOS #ここではJava springbootが使用されているため、スタンバイマシンに切り替える場合は、いくつかのymlファイルを変更する必要がありますYML_PATH = '' NEW_YML = '' msg_from = '' # 送信者のメールアドレス passwd = '' # 送信者のメールアドレス認証コードを入力 msg_to = [] check_mysql() を定義します: res = subprocess.Popen('docker ps |grep mysql', stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) stdout、stderr = res.communicate() stdoutの場合: res_status = subprocess.Popen("docker ps |grep mysql| awk '{print $7}'", stdout=subprocess.PIPE, stderr=サブプロセス.PIPE、シェル=True) 出力、エラー = res_status.communicate() out.strip() == "上"の場合: 「mysql は正常です」と出力します それ以外: 「mysql が壊れています。スタンバイマシンに切り替えてください」と出力します フラグ = judge_mysql_string() フラグの場合: 「すでにスタンバイマシンに接続されているため、切り替える必要はありません」と印刷します それ以外: スイッチ_mysql() それ以外: 「mysql が壊れています。スタンバイマシンに切り替えてください」と出力します フラグ = judge_mysql_string() フラグの場合: 「すでにバックアップマシンに接続されているため、切り替える必要はありません」と印刷します それ以外: スイッチ_mysql() デフ switch_mysql(): '---yml をコピー----' を印刷 サブプロセス.call('cp {} {}'.format(NEW_YML, YML_PATH), shell=True) サブプロセスを呼び出す('docker restart tomcat', shell=True) 件名 = 'mysql ホスト障害' info = 'MySQL ホスト障害のため、バックアップ マシンに切り替えられました。ホストの問題を確認し、時間内に修正してください。切り替える必要がある場合は、'\ コンテンツ = '<html><meta charset="UTF-8"><body><p style="color: red">{}</p> </body></html>'.format(info) send_email(件名、内容) '----スイッチ終了---' を印刷します def send_email(件名、内容): メッセージ = MIMEText(コンテンツ、'html'、'utf-8') msg['件名'] = 件名 msg['送信元'] = msg_from msg['宛先'] = ','.join(msg_to) 試す: s = smtplib.SMTP_SSL("smtp.qq.com", 465) s.login(msg_from, パスワード) s.sendmail(msg_from, msg_to, msg.as_string()) except 例外を e として: 印刷e ついに: s.quit() def judge_mysql_string(): open(os.path.join(YML_PATH, 'application.yml'),'r') を f として実行します: res = f.read() 'your ip' が res: にある場合 Trueを返す それ以外: Falseを返す チェック_mysql() 要約する 上記は、Alibaba Cloud Server で MySQL デュアルマシン ホットスタンバイを手動で実装する 2 つの方法です。お役に立てれば幸いです。ご質問がございましたら、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
<<: Tomcat プロセスの CPU 使用率が高い場合のトラブルシューティング記録を記録する
>>: Vue3におけるキーの役割と動作原理についての簡単な説明
HTML に触れる初心者は、いくつかの HTML タグを学びます。関連記事:初心者が学ぶ HTML...
この記事では、主に、上下固定と中スライドレイアウトを実現するためのフレックスレイアウトのレイアウト方...
1. シェルスクリプトを作成する vim バックアップdb.sh 次のようにスクリプトを作成します。...
1. 並列レプリケーションの背景まず、並列レプリケーションの概念はなぜ存在するのでしょうか? 1. ...
目次問題分析なぜカプセル化なのかパッケージの内容は何ですか?テーブルコンポーネントをカプセル化するデ...
目次1. ミックスイン.scss 2. 単一ファイルの使用3. グローバルマウント3.1 依存関係の...
セキュリティ上の理由から、MySql-Server はローカル マシン (localhost、127...
ハイパーリンク。「リンク」とも呼ばれます。ハイパーリンクは、私たちが閲覧する Web ページのいたる...
序文Docker はコンテナの環境変数を設定できます。設定方法は 2 つあります。イメージを作成する...
マージントップの崩壊とはmargin-top の崩壊は、CSS ボックス モデルで発生する現象です。...
今日、データベース操作はますますアプリケーション全体のパフォーマンスのボトルネックになりつつあり、こ...
目次トリガーについてトリガーの使用トリガーを作成するトリガーを表示トリガーの削除使用上の注意新旧の違...
これは多くの人がやったことがあるはずです。ただうずうずして書きたかったので、時間をかけていじってダー...
目次予備的注釈問題の再現データ削除の原則データの再利用どの操作がデータホールの原因になりますか?表領...
序文バックエンド開発では、一度に大量のデータがロードされ、メモリやディスク IO のオーバーヘッドが...