リレーショナル データベースとして、MySQL には組み込みのデータ レプリケーション メカニズムが用意されており、そのレプリケーション メカニズムに基づいて高可用性アーキテクチャなどの高度な機能を実装できるため、追加のプラグインやその他のツールを必要とせずに、MySQL を実稼働環境に適したものにすることができます。これは、MySQL が実際に広く使用されるための条件の 1 つです。 MySQL ベースのレプリケーション メカニズムは、データベースの高可用性を実現するだけでなく、パフォーマンス拡張、オフサイト災害復旧、ホットとコールドの分離などの高度な機能も実現します。
上記の機能を利用するには、基本的な MySQL レプリケーション メカニズムを理解し、実際のアプリケーション シナリオに基づいて適切な構成を選択する必要があります。 マスタースレーブレプリケーションメカニズムMySQL は、binlog に基づいてマスター スレーブ レプリケーションを実装します。スレーブ ノードは、マスター ノードの binlog 内の最新の更新を追跡して取得し、それを自身で再生することで、マスター ノードのデータを複製します。 次の図は、MySQL マスター スレーブ レプリケーション プロセスの概略図です。プロセス全体には 3 つのスレッドが関与しており、それぞれの役割は次のとおりです。
非同期レプリケーションデフォルトでは、MySQL のマスター スレーブ レプリケーションは非同期レプリケーションです。このメカニズムでは、マスター ノードはローカル ログの書き込みを完了するとすぐにクライアントの要求に応答し、スレーブ ノードのデータ レプリケーション プロセスは非同期で実行されます。 当然のことながら、このメカニズムでは、レプリケーション プロセスはクライアント要求に対するプライマリ ノードの応答に影響を与えないため、単一ノードと比較して全体的なパフォーマンスに大きな損失はありません。 ただし、このメカニズムでは、データがコミットされたがスレーブノードに同期されていないときにマスターノードがクラッシュし、マスターとスレーブの切り替えが発生して新しいデータが書き込まれると、データの損失や不整合が発生する可能性があります。 準同期レプリケーションMySQL バージョン 5.6 以降では、非同期レプリケーションと比較して次の違いがある半同期レプリケーションをサポートしています。
非同期レプリケーションと比較すると、半同期レプリケーションではデータの可用性がある程度向上していることがわかります。非同期レプリケーションに退化していない場合は、マスターノードがダウンしても、データは少なくとも 1 つのスレーブノードにコピーされています。 同時に、スレーブノードはクライアントへの応答を完了する必要があるため、非同期レプリケーションと比較して、マスターノードとスレーブノード間のネットワーク相互作用に多くの時間がかかり、スレーブノードがファイルを書き込んでディスクにフラッシュするのにも時間がかかります。そのため、クラスター全体のクライアントへの応答パフォーマンスは低下することになります。 マスタースレーブレプリケーション形式MySQL のレプリケーション メカニズムは binlog に基づいているため、binlog の形式によってマスター スレーブ レプリケーションの形式が決まります。 binlog には行ベースとステートメント ベースの 2 種類があるため、レプリケーションにも対応する 2 つの形式があります。 ステートメントベースのレプリケーション (SBR)ステートメントベースのレプリケーションの場合、バイナリログには実行されたステートメントのみが記録されます。この方法には次の利点があります。
次のような欠点があります。
行ベースのレプリケーション (RBR)行ベースのレプリケーション メカニズムでは、対応する binlog も行ベースになります。この場合、データが更新されて binlog に書き込まれるたびに、影響を受けるすべての行の変更が変換されます。 このレプリケーション方法には次の利点があります。
次のような欠点があります。
実際のアーキテクチャアプリケーションでは、システムのビジネス特性に応じてマスタースレーブレプリケーションメカニズムを合理的に使用し、適切なマスタースレーブレプリケーション形式を選択する必要があります。 上記は、MySql マスタースレーブレプリケーションメカニズムの包括的な分析の詳細な内容です。MySql マスタースレーブレプリケーションメカニズムの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: JavaScript の isPrototypeOf 関数
>>: 基本的なウェブページパフォーマンス最適化ルールの簡単な概要
目次CURRENT_TIMESTAMPの使用CURRENT_TIMESTAMPを使用したタイムスタン...
Vue3.0 がリリースされてからしばらく経ちましたが、勉強を始める必要があります。まず、達成したい...
目次1. 最も単純な例2. 音声の速度とピッチをカスタマイズする3. 音量の調整方法4. よく使われ...
序文クエリ ステートメントを使用する場合、多くの場合、データの最初の数行または中間行を返す必要があり...
コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...
アプリケーションや Web サイトのパフォーマンスが成功の重要な要素であることは誰もが知っています。...
デフォルトでは、 /etc/default/docker 設定は有効になりません。docker 環境...
ビジネスシナリオの要件と実装ロジックの分析ビジネスでは、HTTP GET を使用してデータを要求する...
この記事では、Excelテーブルプラグインを導入するVueの具体的なコードを参考までに共有します。具...
HTMLは2列レイアウトを実装し、左側は固定幅、右側は適応幅です。実装1: <スタイル>...
序文MRR は Multi-Range Read の略で、ランダム ディスク アクセスを削減し、ラン...
<br />ウェブサイトのアクセス速度はウェブサイトのトラフィックに直接影響を及ぼし、ウ...
MySql バッチ挿入の最適化 SQL 実行効率の例の詳細な説明itemcontractprice ...
1. mysql/mysql-server:latestイメージを使用してMySQLインスタンスを素...
目次導入子プロセスプロセスを非同期的に作成する同期作成プロセス導入Node.js のメイン イベント...