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

推薦する

Node.js を使用してパスワード ジェネレータを作成するための完全な手順

目次1. 準備2. コマンドラインの記述2.1 バージョンと説明を追加する2.2 パスワードの長さを...

Prometheusコンテナのデプロイメントのための実用的なソリューション

環境ホスト名IPアドレス仕えるプロメテウス192.168.237.137プロメテウス、グラファナノー...

JavaScript ベースのランダム点呼システムの実装

この記事では、ランダムロールコーラーを実装するためのJavaScriptの具体的なコードを参考までに...

CentOS8.0ネットワーク設定の実装

1. CentOS 7 と CentOS 8 のネットワーク構成の違い: VMware Workst...

ウェブデザインにおけるポップアップウィンドウとフローティングレイヤーのデザイン

従来のソフトウェアから Web ウェアへの段階的な移行の傾向の中で、デザイン パターンとテクノロジは...

Facebook 出会い系サイトデザインのユーザー エクスペリエンス分析

<br />関連記事: Facebookの情報アーキテクチャの分析 元記事: http:...

LinuxカーネルマクロContainer_Ofの詳細な説明

目次1. 構造体はメモリにどのように保存されますか? 2. container_ofマクロ3. 型4...

WeChatミニプログラムをTencent Mapsに接続する2つの方法

最近、WeChat アプレットを作成しているのですが、いくつか問題が発生しました。インターネットでい...

XHTML の一般的な構造タグ

構造本文、見出し、HTML、タイトル文章abbr、頭字語、アドレス、引用ブロック、br、引用、コード...

Ubuntu 18.04 が VMware 仮想マシンでネットワークに接続できない問題の解決策

仮想マシン内のUbuntu 18.04がネットワークに接続できない問題の解決策は次のとおりですVMw...

Vue の親子コンポーネントの値転送と一方向データフローの問題の詳細な説明

目次序文1. 親コンポーネントが子コンポーネントに値を渡す2. サブコンポーネントのprops型制約...

MySql8.0 のトランザクション分離レベルエラーの問題を解決する

目次MySql8.0 トランザクション分離レベルエラーの表示質問コマンドは次のように変更されますMy...

Vue3の一般的なAPIの使用方法の紹介

目次ライフサイクルの変化反応的な参照vue2.x では ref を使用して要素タグを取得します。vu...

JavaScript 組み込みオブジェクトの概要

目次1. 組み込みオブジェクト2. 数学オブジェクト1. Mathオブジェクトの使用2. 指定された...

ウィンドウ環境で VScode を使用して仮想マシン MySQL に接続する方法

1. 仮想マシン側1. MySQLの設定ファイルを見つける:sudo vim /etc/mysql/...