MySQL デュアルマシン ホットスタンバイ実装ソリューション [テスト可能]

MySQL デュアルマシン ホットスタンバイ実装ソリューション [テスト可能]

1. コンセプト

1. ホットバックアップとバックアップの違い

ホット バックアップは高可用性 (HA) を指し、バックアップはデータ バックアップの一種であるバックアップを指します。これらは 2 つの異なる概念であり、対応する製品も機能面ではまったく異なる 2 つの製品です。ホットバックアップは主に事業継続性を確保するものであり、その実施方法は障害点を転送することです。バックアップの主な目的は、コピーを作成してデータの損失を防ぐことであるため、バックアップではアプリケーションのフェイルオーバーよりもデータの回復に重点が置かれます。

2. ホットスタンバイとは何ですか?

ホットスタンバイとは、広義では、2 台のサーバーを使用して相互にバックアップし、重要なサービスに対して同じサービスを共同で実行することを意味します。サーバーに障害が発生した場合、別のサーバーがサービス タスクを引き継ぐことができるため、システムは自動的に、人間の介入を必要とせずにサービスを継続的に提供できるようになります。

狭義では、ホット スタンバイとは、互いにバックアップし合いながら共同で同じサービスを実行する 2 台のサーバーを使用することです。1 台は稼働サーバー (プライマリ サーバー)、もう 1 台はバックアップ サーバー (スタンバイ サーバー) です。システムが正常な場合、稼働マシンはアプリケーション システムにサービスを提供し、バックアップ マシンは稼働マシンの動作を監視します (通常はハートビート診断を通じて、稼働マシンはバックアップ マシンが正常かどうかも検出します)。稼働マシンが異常になり、アプリケーション システムの動作をサポートできなくなると、バックアップ マシンは稼働マシンの作業を積極的に引き継ぎ、主要なアプリケーション サービスをサポートし続け、システムの中断のない動作を保証します。ホット スタンバイは、IT コア サーバー、ストレージ、ネットワーク ルーティング スイッチの障害に対する高可用性ソリューションです。

2. 環境の説明

1. マスター

システム: Windows 7

データベース: mysql5.5

IPアドレス:192.168.0.123

2. 奴隷

システム: Windows 7

データベース: mysql5.5

IPアドレス:192.168.0.105

(注意: マスター サーバーのバージョンはスレーブ サーバーのバージョンより高くすることはできません。また、2 つのサーバーは同じ LAN 内にある必要があります)

3. マスタースレーブホットスタンバイ実装

1. アカウントの準備

① マスターサーバーで、スレーブサーバーの接続アカウントを作成します。アカウントには、REPLICATION SLAVE 権限を付与する必要があります。 MySQL 操作インターフェイスに入り、次の SQL を入力します。

*.* 上のレプリケーションスレーブに、'123456' で識別される 'replicate'@'192.168.0.105' を許可します。
権限をフラッシュします。

操作は図の通りです。

②接続アカウントを確認する

スレーブ サーバーの replicat アカウントを使用してマスター サーバーのデータベースにアクセスし、接続が成功したかどうかを確認します。

サーバーからコマンドプロンプトを開き、次のコマンドを入力します。

mysql -h192.168.0.123 -ureplicate -p123456

以下の結果が表示されればログイン成功となり、2 台のサーバーをデュアルマシン ホット スタンバイで運用できる状態となります。

2. マスター構成

①mysql設定ファイルを変更します。 my.ini 設定ファイルを見つけて開いたら、[mysqld] の下で変更します。

[mysqld]

server-id = 123 #マスターID、スレーブIDと同じにすることはできません

log-bin=mysql-bin#生成されるログファイル名を設定します

binlog-do-db = test_db #同期データベース名を設定する

replicate-do-db=test_db # サーバーからデータベース名を同期する

binlog-ignore-db = mysql#mysql ユーザー設定の同期を避ける

②mysqlサービスを再起動する

コマンド プロンプトを開き、次の 2 つのコマンドを入力して再起動を完了します。

ネットストップmysql
ネットスタートMySQL

③マスターサーバーの状態を確認する

マスターステータスを表示します。

④ ロックテーブル

目的は、スレーブサーバーが同期位置を見つけられるように、新しいデータが環境に入るのを防ぐことです。最初の同期が完了したら、ロックを解除することを忘れないでください。

読み取りロック付きのテーブルをフラッシュします。

手順③④は以下の通りです。

3. スレーブ構成

①my.ini設定ファイルを変更する

log-bin=mysql-bin #生成されるログファイル名を設定します
server-id=105# スレーブID。マスターIDと同じにすることはできません
binlog-do-db=test_db #同期データベース名を設定します
binlog-ignore-db=mysql #mysqlユーザー設定の同期を避ける
replicate-do-db=test_db# サーバーからデータベース名を同期する
レプリケート無視DB = mysql、情報スキーマ、パフォーマンススキーマ

②mysqlサービスを再起動する

③change master文を使用して同期位置を指定する

MySQL 操作インターフェイスに入ったら、次のコマンドを入力します。

奴隷を停止します。
スレーブをリセットします。
マスターをmaster_host='192.168.0.123'、master_user='replicate'、master_password='123456'、master_log_file='mysql-bin.000124'、master_log_pos=107に変更します。
スレーブを起動します。

注: ここでのmaster_log_fileとmaster_log_posは、以前のshow master statusクエリの結果と一致している必要があります。

操作は図の通りです。

4. マスターテーブルのロックを解除する

unlock tables;

この時点で、マスター/スレーブ ホット スタンバイが完了し、テストできるようになります。

要約する

上記は、編集者が紹介したMySQLデュアルマシンホットスタンバイ実装ソリューションです。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • Alibaba Cloud Server で MySQL デュアルマシン ホットスタンバイを手動で実装する 2 つの方法
  • MySQL データベースのホットスタンバイにおける問題点の分析
  • Mysqlデータベースデュアルマシンホットスタンバイの構成方法
  • MySQLデュアルマシンホットバックアップの実装手順

<<:  Linux trコマンドの使い方

>>:  Vueメソッドに基づくシンプルなタイマーの実装

ブログ    

推薦する

Nginx ソースコードのコンパイルとインストールのプロセス記録

rpm パッケージのインストールは比較的簡単なので、ここでは説明しません。ほとんどのオープンソース ...

MySQLサービスが起動しても接続されない問題の解決策

mysql サービスは開始されていますが、接続できません。この問題を解決するにはどうすればよいでしょ...

純粋な CSS を使用してユーザーが Web ページのコンテンツをコピーするのを防ぐ方法

序文私自身の個人ブログを入力しているときに、ブログの詳細ページでさまざまなコンテンツをコピーするさま...

Vue が値を返してフォームを動的に生成し、データを送信する仕組みの詳細な説明

目次解決された主な問題1. バックエンドから返され、バックエンドに送信されるデータは、次の形式になり...

CSS のフローティング サンプル コードをクリアする方法

概要この記事のフレームワーク図は次のとおりです。 1. フローティングとは一体何でしょうか? W3s...

Dockerリポジトリの一般的なコマンドの詳細な説明

ログイン dockerログインdocker login コマンドを実行し、ユーザー名、パスワード、メ...

Vue プロジェクトのパッケージ化と最適化の実装手順

目次Vueプロジェクトのパッケージ化、起動、最適化Vueプロジェクトのパッケージ化プロジェクトホステ...

UbuntuでOpenCVをコンパイルしてインストールする方法

opencv2 の簡単なインストール: conda インストール --channel https:/...

Linux でのルーティングと仮想マシン ネットワークの設定に関する詳細なグラフィック説明

ルーティングとは何ですか?ルーティングとは、相互接続されたネットワークを介して送信元ステーションから...

WeChatミニプログラムのすべてのページがログインされていることを確認する方法

目次現状解決さらなる解決策やっと現状WeChat ミニプログラムには、ホームページ、個人ページ、いく...

Ubuntu で VIM を C++ 開発エディタとして設定する

1. 設定ファイルをユーザー環境にコピーし、新しい.vimフォルダを作成し、バンドルサブフォルダを作...

IE 環境での css-vars-ponyfill の使用に関する詳細な説明 (nextjs ビルド)

css-vars-ポニーフィルCSS 変数を使用して Web ページのスキニングを実現すると、互換...

nginxとIISで使用できるSSL証明書を作成する

目次SSL証明書の作成1. 秘密鍵を生成する2. 証明書要求ファイルを生成する3. CRT証明書ファ...

トラフィックの多いウェブサイト向けのソリューション

まず、サーバーのハードウェアが現在のトラフィックをサポートするのに十分かどうかを確認します。通常の ...

星のフラッシュ効果を実現するjs

この記事の例では、スターフラッシュ効果を実現するためのjsの具体的なコードを参考までに共有しています...