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

推薦する

MySQL 8.0 パスワード有効期限ポリシーの詳細な説明

MySQL 8.0.16 以降では、パスワードの有効期限ポリシーを設定できます。今日は、この小さな知...

シーケンス関数を実装する MySQL コード

MySQLはシーケンス関数を実装する1. シーケンスレコードテーブルを作成する テーブル `sys_...

HTML リスト タグ dl、ul、ol の使用例

コードをコピーコードは次のとおりです。 <!--リストタグ: <dl>: 階層リス...

CocosCreator Typescriptでテトリスゲームを作る

目次1. はじめに2. 解決すべきいくつかの重要な問題3.最後に書く1. はじめに最近、Cocos ...

ウェブページを最適化してメモリとCPUの使用率を削減

一部の Web ページは大きく見えなくても開くのに非常に時間がかかる場合があります。一方、他の We...

Vueは動的に生成されたコンポーネントをドラッグアンドドロップする要件を実装します

目次製品要件アイデア問題ライブラリ選択をドラッグコンポーネントを生成する方法コンポーネントを生成する...

バックエンドの権限に基づいてナビゲーション メニューを動的に生成する Vue-router のサンプル コード

目次js の1. グローバルガードを登録する2. Vuex 状態管理グローバルキャッシュルート3. ...

Reactドラッグフックを実装するための100行以上のコード

序文ソースコードは合計で 100 行強しかありません。これを読めば、react-dnd などの成熟し...

DockerでSpring Bootアプリケーションを実行する方法

ここ数日、dockerでSpring Bootアプリケーションを実行する方法を勉強してきました。以前...

MySQL EXPLAIN出力列の詳細な説明

1. はじめにEXPLAIN ステートメントは、MySQL がステートメントを実行する方法に関する情...

Centos での TCPWrappers アクセス制御の実装

1. TCP ラッパーの概要TCP Wrappers は TCP サービス プログラムを「ラップ」し...

Vue3.0 エラーの解決策: モジュール 'worker_threads' が見つかりません

vue3.0 への最初の試みを記録します。プロジェクトを開始したときに、「モジュール 'wo...

HTML ウェブページハイパーリンクタグ

HTML ウェブ ページのハイパーリンク タグの学習チュートリアル リンク タグの属性 リンクは、ウ...

MySQL パーティション テーブルに関するパフォーマンス バグ

目次2. pt-pmapを使用したスタック分析3. このコラムのボトルネックポイントの分析4. パー...

Windows で mysql-8.0.18-winx64 をインストールするチュートリアル (画像とテキスト付き)

1. インストールパッケージをダウンロードするインストール パッケージは次の場所にあります:参考:...