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メソッドに基づくシンプルなタイマーの実装

推薦する

Jenkins の紹介と Docker で Jenkins をデプロイする方法

1. 関連概念1.1 Jenkins の概念: Jenkins は、使用されるプラットフォームに関係...

JavaScript axiosのインストールとパッケージ化のケースの詳細な説明

1. axiosプラグインをダウンロードする cnpm インストール axios -S 2. mai...

Baotaパネルを再起動すると、「-ModuleNotFoundError: No module named 'geventwebsocket'」というメッセージが表示されます。

背景:サーバーがFlaskプロジェクトをデプロイし、python3をインストールしたため、再起動時に...

TypeScript におけるインターフェースと型メソッドの正しい使用例

目次序文インタフェースタイプ付録: インターフェースとタイプの違い要約する序文インターフェースとタイ...

Docker 起動時の ES メモリ オーバーフローの解決方法

jvm.options ファイルを elasticsearch 構成に追加し、スタック サイズを変更...

MySQL CHARとVARCHARの保存と読み取りの違い

導入保存時と読み取り時に CHAR 型と VARCHAR 型の違いを本当にご存知ですか?まずいくつか...

1つの記事でJavaScript DOM操作の基本を学ぶ

DOM の概念DOM: ドキュメント オブジェクト モデル: ドキュメント オブジェクト モデルは、...

antd ツリーと親子コンポーネント間の値転送問題について (React のまとめ)

プロジェクト要件: 製品ツリー ノードをクリックすると、そのノードのすべての親ノードが取得され、表に...

CentOS7 から CentOS8 にアップグレードする方法 (詳細な手順)

この記事では、具体的な例を使用して、CentOS 7 から CentOS 8 にアップグレードする方...

VMware 仮想マシンでの CentOS7 ネットワーク構成 (ホストのワイヤレス インターネット アクセス)

CentOS7 システムを使用するのは今回が初めてで、ネットワーク構成を行う際に多くの問題が発生し...

MYSQL の 3 つのツリー構造テーブル設計の長所と短所の簡単な分析と共有

目次導入質問設計 1: 隣接リストテーブルデザインSQL の例デザイン 2: パスの列挙テーブルデザ...

外部ネットワークアクセスを許可するためのMysql5.6の設定手順の詳細を共有する

最近、MySQL 5.6 を導入しましたが、デフォルトでは MySQL はローカル サービスのみを許...

MySQLインスタンスが起動できない問題の分析と解決

目次序文シナリオ分析要約する序文数日前、友人がWeChatで私に連絡してきて、マシンがダウンタイムか...

MySQL シリーズ 4 SQL 構文

目次チュートリアルシリーズ1. SQL言語の紹介と仕様2. データベース操作1. ライブラリを作成す...

誰もが登録できるようにJiedaibaoを宣伝するにはどうすればよいでしょうか? ジエダイバオのプロモーション方法とスキル

借財宝は最近人気が出ている携帯電話ローンソフトウェアプラットフォームです。知人同士の貸し借りが特徴で...