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 計算プロパティ実装トランスクリプト

推薦する

Docker環境でJenkinsを設定すると、タスクをビルドするときにコンソールログに文字化けした中国語の文字が表示されます

目次1. 問題の説明: 2. Jenkins設定のトラブルシューティング3. コードログのエンコード...

SQL Server データベース エラー 5123 の解決方法

なぜなら、SQL Server 2005 に基づくデータベース チュートリアルがあり、そこで使用され...

JavaScriptオブジェクト指向について学ぼう

目次JavaScript プロトタイプチェーンオブジェクトプロトタイプトップレベルのプロトタイプOb...

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

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

MYSQL スロークエリとログ設定とテスト

1. はじめにスロークエリログを有効にすると、MySQL は指定された時間を超えるクエリステートメン...

HTML thead タグの定義と使用法の詳細な紹介

コードをコピーコードは次のとおりです。 <thead> <!– 最初の 2 行をヘ...

いくつかのMySQL更新操作のケース分析

目次ケーススタディアカウント残高を更新する直接更新楽観的ロック方式ロックフリーソリューションキューイ...

SQL効率を分析する方法を説明する

Explain コマンドは、データベースのパフォーマンス問題を解決するために最初に推奨されるコマンド...

VMware、nmap、burpsuite インストール チュートリアル

目次VMware バープスイート1. 仮想マシンイメージとVMwareのインストールと使用2. 仮想...

ウェブページ作成によく使われる英語フォント

アリアルArial は、多くの Microsoft アプリケーションとともに配布されるサンセリフ T...

XHTML 入門チュートリアル: テキストの書式設定と特殊文字

<br />このセクションでは、XHTML でテキストの書式設定と特殊文字を実装する方法...

MySQLに挿入する前にデータが存在するかどうかを確認する方法

ビジネスシナリオ: 訪問者の訪問状況を記録する必要があるが、繰り返し記録することはできない挿入する前...

localStorageの有効期限を設定するいくつかの方法

目次問題の説明1. 基本的な解決策2. 中間的な解決策3. 高度なソリューション4. ハードコアソリ...

Dockerイメージのエクスポートとインポート操作

基本イメージが以前に構成されていて、これらのイメージが他の場所でも必要な場合はどうなりますか?回答:...

CentOS7でルートパスワードをリセットする方法

レンガを移動するプロセスでは、さまざまな環境および構成の問題があり、毎回異なるエラーが発生します。 ...