mysqlのマスター/スレーブ同期の原理、構成、遅延の詳細な説明
この記事では、MySQL のマスターとスレーブの同期の原理、マスターとスレーブの同期の構成、およびマスターとスレーブの同期の遅延について紹介します。まず、名前が示すように、マスターとスレーブの同期とは何であるかを理解しましょう。マスター/スレーブ レプリケーション。マスターとまったく同じデータベース環境を構築するために使用されます。マスター/スレーブ同期により、あるデータベース サーバーから他のサーバーにデータをコピーして、マスター データベース内のデータとスレーブ データベース内のデータの一貫性を確保できます。
クラスターは共有ストレージであり、マスター/スレーブのレプリケーションでは共有がありません。各マシンは独立した完全なシステムであり、何も共有されません。
-
MySQL 5.6 以降では、マスターとスレーブのレプリケーションを実装する主な方法が 3 つあります。
1. 完全同期レプリケーション3. ロードスレーブの同期図 1. メインデータベースの更新イベント (更新、挿入、削除) がバイナリログに書き込まれるとき
3. このスレッドは、ライブラリから SQL スレッドを作成します。スレーブ ライブラリ I/O スレッドによってリレー ログに書き込まれたイベントを更新し、それらを実行します。
マスターとスレーブの同期の実装 (非同期レプリケーション、異なるサーバー上のデータベース)
1. binary-log を開くようにメイン データベースを構成します
vim /etc/my.cnf 在[mysqld]下添加 server-id=1(用来标识不同的数据库)log-bin=master-bin(打开bin-log并配置文件名为master-bin)log-bin-index=master-bin.index(区分不同的log-bin文件)
データベースを再起動します: systemctl restart mariadb.service
2. リレーログを開くようにスレーブデータベースを設定します
vim /etc/my.cnf 在[mysqld]下添加 server-id=2relay-log=slave-relay-bin(打开relay-log并配置文件名为slave-relay-bin) relay-log-index=slave-relay-bin.index
3. メインで 2 つのデータベースを接続しますデータベース: ユーザー repl を作成します。各スレーブ サーバーは、メイン サーバーに接続するためにメイン データベースにアカウント名とパスワードが必要です。
CREATE USER 'repl'@'114.116.77.213' IDENTIFIED BY '12312';GRANT REPLICATION SLAVE ON *.* TO 'repl'@'114.116.77.213' IDENTIFIED BY '12312';
スレーブ データベースで同期を開始します
:change master to master_host='47.106.78.106',master_user='repl',master_password='12312',master_log_file='master-bin.000001',master_log_pos=0;
4. 確認します
マスターデータベースにデータベースを作成し、スレーブデータベースでのマスターとスレーブの同期の役割を確認します
1. データのホットバックアップを実行し、メインデータベースサーバーの後のバックアップデータベースとして機能します。失敗した場合は、データ損失を避けるためにスレーブ データベースに切り替えて作業を続行できます。2. 読み取りと書き込みを分離することで、データベースはより優れた同時実行性をサポートできます。
マスターとスレーブの同期に関する注意事項
マスター ライブラリはデータの読み取りと書き込みができますが、スレーブ ライブラリはデータの読み取りのみが可能です。これは、スレーブ ライブラリがデータを書き込むときは位置が変更されますが、マスター ライブラリが書き込むときはマスター ライブラリの位置が変更されないため、競合が発生する可能性があります。データの位置が変更されたとき
メインライブラリのバイナリログファイルに大量のデータが保存されている場合、つまり位置が非常に大きい場合、新しいバイナリログファイルが分割され、位置が 0 に設定されます。
マスター ライブラリとスレーブ ライブラリの mysql バージョンは異なっていても構いませんが、スレーブ ライブラリの mysql バージョンがマスター ライブラリのバージョンより高い場合、マスター ライブラリのステートメントは到達時に実行されない可能性があります。スレーブ ライブラリです。
- mysql は下位互換性があるため、はい、つまり、下位バージョンのステートメントは上位バージョンでサポートされますが、上位バージョンの一部のステートメントは下位バージョンではサポートされません。関連
(データベースのマスター/スレーブに関する質問がある場合は、以下の質問をする必要があります):
マスター/スレーブの利点は何ですか?
マスタースレーブの原理とは何ですか?
- マスタ・スレーブ同期の遅延の原因
- マスタ・スレーブ同期の遅延の原因
マスタ・スレーブの同期遅延問題
1.マスタースレーブ間の遅延の原因同期
- サーバーはクライアントが接続するために N 個のリンクを開くため、大規模な同時更新操作が行われることがわかっていますが、特定の SQL がスレーブ サーバーで実行されるときにサーバーからバイナリログを読み取るスレッドは 1 つだけです。もう少し時間がかかる場合、または特定の SQL でテーブルをロックする必要がある場合、マスター サーバー上に大量の SQL バックログが存在し、スレーブ サーバーに同期されなくなります。これは、マスターとスレーブの不一致、つまりマスターとスレーブの遅延につながります。
2. マスターとスレーブの同期の遅延に対する解決策 実際、すべての SQL はスレーブ サーバーで実行する必要があるため、マスターとスレーブの同期の遅延に対するワンストップの解決策はありませんが、マスター サーバーが更新操作を続行すると、書き込みが継続されるため、一度遅延が発生すると遅延が悪化する可能性が高くなります。 もちろん、何らかの緩和策を講じることはできます。
a. マスター サーバーは更新操作を担当するため、sync_binlog=1、innodb_flush_log_at_trx_commit = 1 などの一部の設定は変更できますが、スレーブは変更できません。データのセキュリティを高めるために、sync_binlog を 0 に設定するか、binlog、innodb_flushlog、innodb_flush_log_at_trx_commit を 0 に設定して、SQL の実行効率を大幅に向上させることができます。もう 1 つは、メイン ライブラリよりも優れたハードウェア デバイスをスレーブとして使用することです。
b. クエリを提供せずにスレーブサーバーをバックアップとして使用するだけで、負荷が軽減されると、リレーログ内の SQL の実行効率が自然に高くなります。
c. スレーブサーバーを追加する目的は、読み取り圧力を分散し、サーバーの負荷を軽減することです。
関連する推奨事項:
以上がmysqlのマスター/スレーブ同期の原理、構成、遅延の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









この記事では、MySQLのAlter Tableステートメントを使用して、列の追加/ドロップ、テーブル/列の名前の変更、列データ型の変更など、テーブルを変更することについて説明します。

INNODBのフルテキスト検索機能は非常に強力であり、データベースクエリの効率と大量のテキストデータを処理する能力を大幅に改善できます。 1)INNODBは、倒立インデックスを介してフルテキスト検索を実装し、基本的および高度な検索クエリをサポートします。 2)一致を使用してキーワードを使用して、ブールモードとフレーズ検索を検索、サポートします。 3)最適化方法には、単語セグメンテーションテクノロジーの使用、インデックスの定期的な再構築、およびパフォーマンスと精度を改善するためのキャッシュサイズの調整が含まれます。

記事では、証明書の生成と検証を含むMySQL用のSSL/TLS暗号化の構成について説明します。主な問題は、セルフ署名証明書のセキュリティへの影響を使用することです。[文字カウント:159]

記事では、MySQLワークベンチやPHPMyAdminなどの人気のあるMySQL GUIツールについて説明し、初心者と上級ユーザーの機能と適合性を比較します。[159文字]

記事では、MySQLで大規模なデータセットを処理するための戦略について説明します。これには、パーティション化、シャード、インデックス作成、クエリ最適化などがあります。

この記事では、ドロップテーブルステートメントを使用してMySQLのドロップテーブルについて説明し、予防策とリスクを強調しています。これは、バックアップなしでアクションが不可逆的であることを強調し、回復方法と潜在的な生産環境の危険を詳述しています。

MySQLは、Bツリー、ハッシュ、フルテキスト、および空間の4つのインデックスタイプをサポートしています。 1.B-Treeインデックスは、等しい値検索、範囲クエリ、ソートに適しています。 2。ハッシュインデックスは、等しい値検索に適していますが、範囲のクエリとソートをサポートしていません。 3.フルテキストインデックスは、フルテキスト検索に使用され、大量のテキストデータの処理に適しています。 4.空間インデックスは、地理空間データクエリに使用され、GISアプリケーションに適しています。

この記事では、クエリパフォーマンスを強化するために、PostgreSQL、MySQL、MongoDBなどのさまざまなデータベースでJSON列にインデックスの作成について説明します。特定のJSONパスのインデックス作成の構文と利点を説明し、サポートされているデータベースシステムをリストします。
