検索
ホームページシステムチュートリアルLinuxmysqlのマスタースレーブ遅延を解決する方法

mysqlのマスタースレーブ遅延を解決する方法

Mar 19, 2024 am 09:28 AM
linuxLinuxチュートリアルレッドハットLinuxシステムLinuxコマンドネット障害Linux 認定レッドハットリナックスLinuxビデオ

mysqlのマスタースレーブ遅延を解決する方法

MySQL の組み込みレプリケーション機能は、大規模で高性能なアプリケーションを構築するための基盤です。 MySQL データを複数のシステムに分散するこの分散メカニズムは、特定の MySQL ホストのデータを他のホスト スレーブにコピーし、再実行することで実現されます。
レプリケーション中、1 つのサーバーがマスターとして機能し、1 つ以上の他のサーバーがスレーブとして機能します。マスターはバイナリ ログ ファイルに更新を書き込み、ログ ローテーションを追跡するためにファイルのインデックスを維持します。これらのログは、スレーブ サーバーに送信された更新を記録します。スレーブはマスターに接続すると、スレーブがログから読み取った最後に成功した更新の場所をマスターに通知します。スレーブ サーバーは、それ以降に発生した更新を受信し、ブロックしてマスター サーバーから更新が通知されるのを待ちます。
Mysql マスター/スレーブ レプリケーションの問題:

  • メインデータベースがダウンすると、データが失われる可能性があります
  • スレーブ ライブラリには SQL スレッドが 1 つしかなく、メイン ライブラリには大きな書き込みプレッシャーがかかっているため、レプリケーションが遅れる可能性があります。
以下は、mysql のマスター/スレーブ遅延を 4 つの側面から解決する方法についての説明です。
1. MySQL データベースのマスター/スレーブ同期の遅延原理。
回答: MySQL データベースのマスター/スレーブ同期遅延の原理について話すときは、mysql データベースのマスター/スレーブ レプリケーションの原理から始める必要があります。mysql のマスター/スレーブ レプリケーションはシングルスレッド操作です。メイン データベースは、すべての DDL と DML の binlog と binlog を生成します。これはシーケンシャルに書き込まれるため、効率が非常に高くなります。スレーブの Slave_IO_Running スレッドはログを取得するためにメイン ライブラリに移動し、効率は比較的高くなります。スレーブの Slave_SQL_Runningスレッドは、メイン ライブラリのすべての DDL および DML 操作をスレーブ上に実装します。 DML と DDL の IO 操作はランダムであり、シーケンシャルではないため、コストが非常に高くなります。スレーブ上の他のクエリもロック競合を引き起こす可能性があります。Slave_SQL_Running もシングルスレッドであるため、DDL カード マスターは 10 回実行する必要があります。分が経過すると、後続のすべての DDL は、この DDL の実行が完了するまで待機してから続行するため、遅延が発生します。 「メイン ライブラリの同じ DDL も 10 分間実行する必要があります。なぜスレーブが遅れるのですか?」と尋ねる友人もいます。その答えは、マスターは同時に実行できますが、Slave_SQL_Running スレッドは実行できないからです。

2. MySQL データベースにおけるマスターとスレーブの同期の遅延はどのようにして発生しますか?
回答: メイン ライブラリの TPS 同時実行性が高い場合、生成される DDL 数がスレーブの 1 つの SQL スレッドが耐えられる範囲を超えて遅延が発生します。スレーブの大きなクエリ ステートメントです。お待​​ちください。

3.MySQL データベースのマスター/スレーブ同期遅延ソリューション

回答: スレーブ同期遅延を軽減する最も簡単な解決策は、アーキテクチャを最適化し、メイン ライブラリの DDL を高速に実行するように努めることです。メイン ライブラリが sync_binlog=1、innodb_flush_log_at_trx_commit = 1 などの高いデータ セキュリティを備えて記述されているという事実もありますが、スレーブにはそのような高いデータ セキュリティは必要ありません。sync_binlog を 0 またはSQL の実行効率を向上させるために、innodb_flushlog を 0 に設定することもできます。もう 1 つは、メイン ライブラリよりも優れたハードウェア デバイスをスレーブとして使用することです。

4. MySQL データベースのマスター/スレーブ同期の遅延要因。

1.ネットワーク遅延
2.マスターロード
3. スレーブロード
一般的なアプローチは、複数のスレーブを使用して読み取りリクエストを分散し、これらのスレーブの専用サーバーをバックアップのみに使用し、他の操作は行わないことで、「リアルタイム」要件を最大限に達成できます。

さらに、遅延を軽減できるパラメータをさらに 2 つ導入します


–slave-net-timeout=秒 パラメータの意味: スレーブがメイン データベースからのログ データの読み取りに失敗した場合、接続を再確立してデータを取得するまでの待ち時間
smile_net_timeout の単位は秒で、デフォルト設定は 3600 秒です。
| スレーブネットタイムアウト | 3600
–マスター接続再試行=秒
パラメータの意味: マスターとスレーブの接続を再確立するときに、接続の確立に失敗した場合、再試行にかかる時間。 master-connect-retry の単位は秒で、デフォルト設定は 60 秒です。 通常、上記の 2 つのパラメータを設定すると、ネットワークの問題によるマスターとスレーブのデータ同期の遅延を軽減できます

以上がmysqlのマスタースレーブ遅延を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はLinux就该这么学で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
LinuxとWindowsの間のユーザーアカウント管理の違いは何ですか?LinuxとWindowsの間のユーザーアカウント管理の違いは何ですか?May 02, 2025 am 12:02 AM

ユーザーアカウント管理のLinuxとWindowsの主な違いは、許可モデルと管理ツールです。 Linuxは、UNIXベースの権限モデルとコマンドラインツール(useradd、usermod、userdelなど)を使用し、Windowsは独自のセキュリティモデルとグラフィカルユーザーインターフェイス(GUI)管理ツールを使用します。

Linuxのコマンドライン環境により、Windowsよりも安全かつ安全性が低くなりますか?Linuxのコマンドライン環境により、Windowsよりも安全かつ安全性が低くなりますか?May 01, 2025 am 12:03 AM

linux'scommandlinecanbemoresecurethanwindowsifmanaged correctly、butrequiresmoreuserknowledge.1)linux'sourcenatureallowsforquicksecurityupdates.2)MissuturaturecurationCanleadtovulnerabilities.windows'commandlinism command-contontontrollededblessed-blessedlestlessed

LinuxでUSBドライブを自動的にマウントする方法LinuxでUSBドライブを自動的にマウントする方法Apr 30, 2025 am 10:04 AM

このガイドでは、LinuxのブーツにUSBドライブを自動的に取り付け、時間と労力を節約する方法について説明します。 ステップ1:USBドライブを特定します LSBLKコマンドを使用して、すべてのブロックデバイスをリストします。 USBドライブにはラベルが付いている可能性があります /dev /sdb1、 /dev /sdc1など

2025年にLinux、Windows、Mac用の最高のクロスプラットフォームアプリ2025年にLinux、Windows、Mac用の最高のクロスプラットフォームアプリApr 30, 2025 am 09:57 AM

クロスプラットフォームアプリケーションは、ソフトウェア開発に革命をもたらし、Linux、Windows、MacOなどのオペレーティングシステム間でシームレスな機能を可能にします。 これにより、デバイスに基づいてアプリを切り替える必要性がなくなり、一貫した体験を提供します

2025年のAIおよび機械学習に最適なLinuxツール2025年のAIおよび機械学習に最適なLinuxツールApr 30, 2025 am 09:44 AM

人工知能(AI)は、ヘルスケアや金融から芸術や音楽などの創造的な分野に至るまで、多くのセクターを急速に変革しています。 Linuxは、オープンソースの性質、適応性、パフォーマンス機能を備えており、最高のPlatfoとして浮上しています

5 GUIのない​​最高の軽量Linuxディストリビューション5 GUIのない​​最高の軽量LinuxディストリビューションApr 30, 2025 am 09:38 AM

グラフィカルユーザーインターフェイス(GUI)なしで、高速で最小限で効率的なLinuxディストリビューションをお探しですか? 軽量のガイレスLinuxディストリビューションは、古いハードウェアやサーバーや組み込みシステムなどの特殊なタスクに最適です。彼らはより少ないresを消費します

Redhatディストリビューションにワイン10.0を設置する方法Redhatディストリビューションにワイン10.0を設置する方法Apr 30, 2025 am 09:32 AM

ワイン10.0安定バージョンリリース:LinuxでWindowsアプリケーションをより高いレベルに実行する このオープンソースと無料アプリケーションであるWineは、LinuxユーザーがUNIX/LinuxオペレーティングシステムでWindowsソフトウェアとゲームを実行できるようにし、10.0 Stableバージョンのリリースを紹介します。このバージョンには、ソースコードとバイナリパッケージのダウンロードが提供されており、Linux、Windows、Macなどのさまざまな分布をサポートしています。 このエディションは、1年の努力と8,600を超える改善を具体化し、多くのエキサイティングな改善をもたらします。重要なハイライトは次のとおりです。 Bluetoothデバイスの強化されたサポート。 HID入力デバイスのサポートを改善します。 32ビットおよび64ビットアプリケーションの最適化されたパフォーマンス。

RHELでSQL Serverをインストールして構成する方法RHELでSQL Serverをインストールして構成する方法Apr 30, 2025 am 09:27 AM

このチュートリアルは、rhel 8.xまたは9.xにSQL Server 2022をインストールし、SQLCMDコマンドラインツール、データベース作成、および基本クエリを介して接続することをガイドします。 前提条件 始める前に、次のことを確認してください サポートされているRHELバージョン(RHEL 8または9)。 sudo

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 中国語版

SublimeText3 中国語版

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

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。