単一の MYSQL サーバーが現在の Web サイトのトラフィックに対応できない場合の最適化ソリューション。 MySQL クラスタ テクノロジーを構築する必要があります。 1. 機能: マスター サーバーでデータを挿入、変更、または削除すると、データは自動的にスレーブ サーバーに同期されます。 注意: マスタースレーブレプリケーションは一方向で、マスターからスレーブへのみ 2 つのタイプがあります: 送信タイプ (マスター 1 台とスレーブ複数台): 一般的に、バックアップや読み取り/書き込み分離に使用されます。 リング(マルチマスターとマルチスレーブ):一般的な用途:メインサーバーに大きな負荷がかかっている場合、地域をまたいだウェブサイトでデータの同期を実現できます。 リング構造では、3 つのサーバー上の同じテーブルに同時にレコードが挿入されると、「ID 競合問題」が発生します。 解決策: 3 つのサーバーで異なる ID を生成できるようにします。 最初のもの: 1、4、7... 2 番目のチャネル: 2、5、8... チャンネル3: 3、6、9... これは MYSQL 構成ファイルで設定できます: 2. マスタースレーブの原理(bin logを使用) MySQLにはbin log(バイナリログ)と呼ばれるログがあります。このログには、データベースを変更するすべての SQL ステートメント (挿入、更新、削除、ALTER TABLE、許可など) が記録されます。マスタースレーブレプリケーションの原理は、実際にはマスターサーバー上の BIN ログをスレーブサーバーにコピーして再度実行し、スレーブサーバーのデータがマスターサーバーのデータと同じになるようにすることです。 拡張子: mysql のログ: クエリログ エラーログ Binログ スロー ログ: 0.5 秒などの時間しきい値を設定すると、実行時間がこの値を超えるすべての SQL ステートメントが将来記録されます。このようにして、遅い SQL ステートメントを記録し、それらを個別に最適化することができます。 目的: ウェブサイトのパフォーマンスを低下させている SQL をすばやく見つけ、インデックスを作成してこの SQL の結果をキャッシュすることで最適化できます。 3. 実際の構成 Windows システムの MYSQL をマスター サーバーとして使用し、LINUX の MYSQL をスレーブ サーバーとして使用します。 プライマリサーバー: 1. ビンログを有効にする mysql 構成ファイル my.ini を変更します: サーバーにサーバーIDを割り当てます(マスターサーバーとスレーブサーバーのID値は重複できません) リングサーバーの場合は、次の項目を追加する必要があります。 log-slave-updates = on // リングマルチサーバーの場合はこの項目を設定する必要があります。 スレーブサーバーがデータを同期するためのアカウントをマスターサーバー上に作成する MYSQLにログイン SQL を実行します。 REPLICATION SLAVE 権限のみを持つアカウントを作成しました: ユーザー名: slave パスワード: 1234 プライマリサーバーでSQLを実行して、プライマリサーバーの現在のbinログのステータスを表示します。 注意:これら 2 つの値はデータを変更するたびに変更されるため、これら 2 つの値を確認した後は、マスター サーバーを操作せず、スレーブ サーバーの構成に直接進んでください。そうしないと、値が一致せず、同期が失敗します。 サーバーから (Linux): ビンログを有効にする 設定ファイル /etc/my.cnf を変更します。 サーバー ID を設定します: 3. リングサーバーの場合は、次の項目を追加する必要があります。 log-slave-updates = on // リングマルチサーバーの場合はこの項目を設定する必要があります。 4. スレーブ サーバーで SQL ステートメントを実行して、マスター サーバーのアドレスを構成します。 MYSQLにログインします: スレーブサーバーをセットアップしてレプリケーションを開始する 5. スレーブ サーバーのステータスが正常に構成されているかどうかを照会する SQL を実行します。 2 つの「はい」の場合、コードは成功です。仕上げる! 注意: 構成が成功するまで、マスター サーバー上のデータはスレーブ サーバーに自動的に転送されません。そのため、設定前にマスター サーバー上のすべてのデータをスレーブ サーバーに手動でインポートし、マスターとスレーブを設定した後にデータを同期する必要があります。 用途: スレーブ サーバーはデータのバックアップ サーバーとして機能します。サーバーに大きな負荷がかかっている場合は、マスター/スレーブ サーバーを使用して読み取りトラフィックと書き込みトラフィックを分離し、サーバーの負荷を軽減できます。地域をまたいだウェブサイトの最適化 さまざまな地域に最適化された建築のアイデアを考慮して、メッセージボード機能を作成するにはどうすればよいでしょうか? 以上がMYSQLマスタースレーブレプリケーションの原理に関する知識ポイントのすべてです。123WORDPRESS.COMを学習してサポートしていただき、ありがとうございます。 以下もご興味があるかもしれません:
|
<<: Linux jdk のインストールと環境変数の設定チュートリアル (jdk-8u144-linux-x64.tar.gz)
>>: シンプルなフロントエンドのページング効果を実現する js
tomcat 設定ファイルから、tomcat の起動時にデフォルトで 8080 (8443)、800...
Dockerfile は、イメージをビルドするために使用されるテキスト ファイルです。テキスト コン...
MySQL 高度な SQL ステートメント kgc を使用します。 テーブルlocation(Reg...
今日 Docker コンテナを作成したとき、誤ってイメージの名前を間違って入力しました。その結果、コ...
アプリケーションシナリオデータ テーブルでは、アプリケーションは各データがいつ作成されたかを記録する...
1. Logrotateツールの紹介Logrotate はログファイル管理ツールです。Linux に...
1. デッドロックとは何ですか?正式な定義は次のとおりです: 2 つのトランザクションが相手側で必要...
移動を実現するためにtranslateパラメータを使用しますtranslateX: X 軸に沿って移...
0. システム要件CPU I5-10400F以上メモリ 16 GB、32 GBのメモリが最適ハードド...
CSSを使用してスクロールバーを変更する1.コンテンツがオーバーフローした場合のオーバーフロー設定水...
この記事の例では、スライディングブロック効果を実現するための小さなプログラムの具体的なコードを参考ま...
1. 改行を強制せず、省略記号で終了します。コードをコピーコードは次のとおりです。 <div ...
目次目的実験環境実験原理実験手順1. 独立したCAを生成する2. サーバーの秘密鍵と署名要求ファイル...
rpmインストールパッケージをダウンロードするMySQL公式サイト: https://dev.mys...
コンパイル後にAngularプロジェクトをNginxにデプロイする方法をオンラインで検索すると、ほと...