MySQLデュアルマシンホットスタンバイと負荷分散の実装手順の詳細説明

MySQLデュアルマシンホットスタンバイと負荷分散の実装手順の詳細説明

MySQL データベースには増分バックアップ メカニズムはありませんが、マスター データベース内のすべてのデータをバックアップ データベースに同時に書き込むマスター スレーブ バックアップ メカニズムが提供されています。 MySQL データベースのホット バックアップを実装します。

マスタースレーブホットバックアップの具体的な手順は次のとおりです。

マスターサーバーをA(マスター)、スレーブサーバーをB(スレーブ)と仮定します。

答え: 192.168.0.104

B: 192.168.0.169

1. マスターサーバーの認証

承認されたセカンダリ サーバーはプライマリ サーバーに接続して更新を実行できます。これはプライマリ サーバーで実行され、セカンダリ サーバーにアクセスするときに使用するユーザー名とパスワードが作成されます。プライマリ サーバーのデフォルトのアカウントとパスワードを使用することもできます。

2. データの複製

マスター/スレーブ データベースが確立されたときに 2 つのデータベースのデータの一貫性が維持されるように、マスター上の既存のデータをスレーブにコピーします。データベースのエクスポートとインポートについては詳しく説明しません。

3. マスターサーバーを構成する

マスターのmysqlのルートディレクトリにあるmy.ini設定ファイルを変更します。

オプション設定ファイルでマスター サーバーにサーバー ID を割り当てます。ID は 1 から 2^23-1 の範囲の一意の値である必要があります。プライマリ サーバーとセカンダリ サーバーのサーバー ID は同じにすることはできません。さらに、バイナリ ログを有効にするようにマスター サーバーを構成する必要があります。つまり、オプション構成ファイルに log-bin 起動オプションを追加します。

注意: マスター サーバーのバイナリ ログが有効になっている場合は、シャットダウンして再起動する前に、以前のバイナリ ログをバックアップする必要があります。再起動後、RESET MASTER ステートメントを使用して以前のログをクリアする必要があります。

理由: マスター上の cartrader データベースに対するすべての操作はログ ファイルに記録され、その後、ログがスレーブに送信されます。マスターからログ ファイルを受け取った後、スレーブは対応する操作を実行し、スレーブ内のデータベースはマスター データベースと同じ操作を実行します。したがって、データの一貫性を維持するために、ログ ファイルにダーティ データが含まれていないことを確認する必要があります。

4. マスターを再起動する

上記のオプションを設定した後、MySQL サービスを再起動すると、新しいオプションが有効になります。これで、データベース内の情報に対するすべての更新がログに書き込まれるようになります。

5.スレーブの設定

スレーブ サーバーの MySQL オプション構成ファイルに次のパラメータを追加します。

[mysqld]
#プライマリ サーバーの server-id とは異なる一意の ID です。
サーバーID=2
#プライマリサーバーのホスト名またはIPアドレス
マスターホスト = 192.168.0.104
#マスターサーバーがデフォルトポートでリッスンしていない場合は、マスターポートオプションを決定する必要があります
マスターポート=3306
#ステップ2.1で作成したユーザー名とパスワード
マスターユーザー=root
マスターパスワード=123456
#コピー操作を適用するデータベース(オプション、デフォルトはすべて)
複製するDB = cartrader
#プライマリサーバーとセカンダリサーバー間の接続が頻繁に失敗する場合は、master-retry-countとmaster-connect-retryを増やす必要があります。
#master-retry-count 接続が再試行される回数
#master-connect-retry 接続失敗後に待機する秒数
マスター再試行回数 = 999
マスター接続再試行 = 60

5.スレーブを再起動する

セカンダリサーバーでMySQLサービスが再起動されると、データディレクトリにmaster.infoファイルが作成され、その中に次の内容が含まれます。

レプリケーション プロセスに関するすべての情報 (マスター サーバーへの接続およびマスター サーバーとのデータ交換に関する情報)。最初の起動後、スレーブ サーバーは master.info ファイルをチェックして関連情報を取得します。

レプリケーション オプションを変更する場合は、master.info を削除して MySQL サービスを再起動します。master.info ファイルは、オプション構成ファイルの新しいオプションを使用して、起動プロセス中に再作成されます。

プライマリサーバーにバックアップされたデータベーススクリプトファイル(cartrader.sql)をセカンダリサーバーのデータベースにインポートして保存します。

プライマリ サーバーとセカンダリ サーバーのレプリケーション操作の開始点が同じであることを確認します。

6. マスターのステータスが設定と一致しているかどうかを確認します

7.スレーブを表示

通常、スレーブを再起動すると、レプリケーション機能が自動的に有効になり、次のステートメントで確認できます。

奴隷について

mysql>show slave status

「マスターがイベントを送信するのを待機中」と表示されている場合、開始されていることを意味します。それ以外の場合は、実行中です。

mysql>start slave

スレーブを起動するには

SHOW SLAVE STATUS コマンドの出力後、Slave_IO_Running に対応する値は YES になるはずです。

Slave_SQL_Running の対応する値は YES です。この方法でのみ、マスター機能とスレーブ機能を正常にバックアップできます。

マスタースレーブホットバックアップを一時的に停止するコマンドは次のとおりです。

mysql>stop slave

要約する

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

以下もご興味があるかもしれません:
  • パフォーマンス負荷診断にMySQLシステムデータベースを使用する方法
  • MySQLで負荷分散を実装する方法
  • MySQL のロードバランサーとして nginx を使用する方法
  • OneProxy に基づいて MySQL の読み取り/書き込み分離と負荷分散を実装する
  • mysql+mycat、負荷分散、マスタースレーブレプリケーション、読み取り/書き込み分離操作に基づく安定した高可用性クラスタを構築します。
  • PythonはMySQLの読み書き分離と負荷分散を実装します
  • MySQLの高可用性負荷分散構成を実装するためのKeepalived+HAProxy
  • MySQLのインデックスによって引き起こされるCPU負荷の急増を分析する
  • MYSQLデータベース接続の負荷容量を迅速に増やす方法
  • 負荷分散機能を備えたMySQLサーバクラスタの導入と実装
  • MySQL の CPU 負荷が高い問題のトラブルシューティング

<<:  Linux運用保守ツールSupervisor(プロセス管理ツール)のインストールと使用

>>:  Vue 計算プロパティ実装トランスクリプト

推薦する

AIX マウント NFS の書き込み効率が低い場合の解決策

NFSが提供するサービスマウント: サーバー上で /usr/sbin/rpc.mountd サーボ ...

シンプルなドラッグ効果を実現するJavaScript

この記事では、簡単なドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...

CentOS に Memcached と PHP Memcached 拡張機能をインストールする

高性能分散メモリオブジェクトキャッシュシステムMemcachedについては、別の記事「Windows...

MySQL でよく使われる型変換関数の概要 (推奨)

1. Concat関数。よく使用される接続文字列: concat 関数。たとえば、SQLクエリ条件...

vue data が関数である理由をご存知ですか?

公式サイトの説明: コンポーネントを定義する場合、コンポーネントは複数のインスタンスを作成するために...

Dockerでmongodbデータベースを使用するための実装コード

mongoイメージを取得する sudo docker pull mongo mongodbサービスを...

Virtualbox で Ubuntu 16.04 の起動時に共有ディレクトリを自動的にマウントする最良の方法

仮想マシンを使用する人は通常、操作と使用を容易にするために仮想マシン用の共有ディレクトリを設定します...

Windows 10 で Hyper-V サービスをシャットダウンするいくつかの方法

VMware Workstation を使用して Windows 10 で仮想マシンを開くと、VMw...

Vueは動的クエリルール生成コンポーネントを実装します

1. 動的クエリルール動的クエリルールは、おおよそ次の図のようになります。ユーザのカスタマイズに応じ...

MySQL から Excel にテーブルデータをエクスポートする際の日時形式に関する簡単な説明

最近、MySQL を使用してテーブル データを Excel ファイルにエクスポートしました。MySQ...

HTML で相対パスを使用してディレクトリのすべてのレベルのファイルを取得する方法の詳細な説明

相対パスの概念現在のファイルの場所を参照ポイントとして使用して、ターゲット ファイルへのパスを確立し...

Bootstrap3.0 学習ノートテーブル関連

この記事では、Webサイトを作ったことがある人にとっては馴染みのあるテーブルについて主に説明します。...

MySQL 8.0 バージョンで getTables がすべてのデータベース テーブルを返す問題の簡単な分析

序文この記事では、主にライブラリ内のすべてのテーブルを返すMysql8.0ドライバgetTables...

CentOS 7 で Apache (httpd) サービスをインストールおよびアンインストールする詳細な手順

アンインストールまず、次のコマンドを使用して、httpd サービスがインストールされているかどうか、...

MySQL データベースにおける高同時実行性の問題を解決する方法

序文スタートアップ企業が最初はモノリシック アプリケーションを主要なアーキテクチャとして使用し、通常...