MySQL slave状态之Seconds_Behind_Master_MySQL
bitsCN.com
在MySQL的主从环境中,我们可以通过在slave上执行show slave status来查看slave的一些状态信息,其中有一个比较重要的参数Seconds_Behind_Master。那么你是否明白它的真正含义以及它是怎么计算的呢?
在之前我一直误以为Seconds_Behind_Master是表示slave比master落后多少,如果这个值为0的表示主从已经处于一致了(在非同步模式下,现在官方最多也只在5.5中增加了半同步复制)。但是最近我终于认识到之前的错误理解。首先我们需要明白的一点:Seconds_Behind_Master表示slave上SQL thread与IO thread之间的延迟,我们都知道在MySQL的复制环境中,slave先从master上将binlog拉取到本地(通过IO thread),然后通过SQL thread将binlog重放,而Seconds_Behind_Master表示本地relaylog中未被执行完的那部分的差值。
手册上的定义:
In essence, this field measures the time difference in seconds between the slave SQL thread and the slave I/O thread.
所以如果slave拉取到本地的relaylog(实际上就是binlog,只是在slave上习惯称呼relaylog而已)都执行完,此时通过show slave status看到的会是0,那么Seconds_Behind_Master的值为0是否表示主从已经处于一致了呢?答案几乎是否定的!为什么几乎是否定的?因为绝大部分的情况下复制都是异步的,异步就意味着master上的binlog不是实时的发送到slave上,所以即使Seconds_Behind_Master的值为0依然不能肯定主从处于一致,这也是我之前强调非同步复制的原因(现在已经有公司在做同步复制了,比如网易自己实现了VSR,VirtualSynchronized Replication,由于同步复制性能较差,所以网易再实现同步复制的同时还打了group commit的补丁)。所以如果我们要以这个参数来估计主从延迟多久的话至少得在一个比较好的网络环境中,这样才能保证几乎master上的binlog都已经发送到slave上。
上面解释了Seconds_Behind_Master这个值的真正含义,那么它的值到底是怎么计算出来的呢?实际上在binlog中每个binlog events都会附上执行时的timestamp,所以在在确定Seconds_Behind_Master的值时MySQL是通过比较当前系统的时间戳与当前SQL thread正在执行的binlog event的上的时间戳做比较,这个差值就是Seconds_Behind_Master的值。也许你会有疑问那要是两台服务器之间的时钟不一致怎么办?确实会存在这种情况,那么此时这个值的可靠性就不大了,手册上对此也进行了说明:
This time difference computation works even if the master and slave do not have identical clock times, provided that the difference,
computed when the slave I/O thread starts, remains constant from then on. Any changes—including NTP updates—can lead to clock
skews that can make calculation of Seconds_Behind_Master less reliable
Seconds_Behind_Master的值除了是非负数之外还可能是NULL,它是由如下几种情况导致的:SQL thread没运行/IO thread没运行/slave没有连接到master。
接下来再简单介绍一下异步复制/半同步复制之间的区别。
异步复制,master上的操作记录binlog的同时不关心binlog是否已经被slave接收。
半同步复制,master上的操作记录binlog的同时会关心binlog是否被slave接受。但是由于它的处理逻辑问题可能丢一个事务,如下图所示:
这样的处理流程存在一个问题,当存储引擎提交(storage commit)后,此时如果master挂了那么会存在主从不一致,对于这个问题orczhou好像自己对源码进行了修改更改storage commit的顺序来达到一个增强的半同步复制。
对Seconds_Behind_Master就解释到这里,希望对你也能有点帮助。

ホット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)

ホットトピック











Microsoft Word ドキュメントには、保存時にいくつかのメタデータが含まれます。これらの詳細は、作成日、作成者、変更日など、ドキュメントの識別に使用されます。文字数、単語数、段落数などの他の情報もあります。他の人に値が知られないよう、作成者や最終更新情報、その他の情報を削除したい場合は、方法があります。この記事では、ドキュメントの作成者と最終変更情報を削除する方法を見てみましょう。 Microsoft Word 文書から作成者と最終変更情報を削除する ステップ 1 – 次のページに移動します。

iOS 17には、2台のiPhoneをタッチすることで誰かと連絡先情報を交換できる新しいAirDrop機能があります。これは NameDrop と呼ばれるもので、その仕組みは次のとおりです。 NameDrop を使用すると、新しい相手の電話番号を入力して電話したりテキストメッセージを送信したりする代わりに、iPhone を相手の iPhone の近くに置くだけで連絡先の詳細を交換できるため、相手はあなたの番号を知ることができます。 2 つのデバイスを組み合わせると、連絡先共有インターフェイスが自動的にポップアップ表示されます。ポップアップをクリックすると、個人の連絡先情報と連絡先ポスターが表示されます(自分の写真をカスタマイズして編集できます。これも iOS17 の新機能です)。この画面には、「受信のみ」するか、応答として自分の連絡先情報を共有するかのオプションも含まれています。

システム情報の使用 [スタート] をクリックし、システム情報を入力します。下の画像に示すようにプログラムをクリックするだけです。ここではほとんどのシステム情報が見つかりますが、グラフィック カード情報も見つかります。システム情報プログラムで、「コンポーネント」を展開し、「表示」をクリックします。プログラムに必要な情報をすべて収集させ、準備が完了すると、システム上でグラフィックス カード固有の名前やその他の情報を見つけることができます。複数のグラフィックス カードをお持ちの場合でも、コンピュータに接続されている専用および統合グラフィックス カードに関連するほとんどのコンテンツをここから見つけることができます。デバイス マネージャーの使用 Windows 11 他のほとんどのバージョンの Windows と同様に、デバイス マネージャーからコンピューター上のグラフィック カードを見つけることもできます。 「開始」をクリックしてから、

現在の画像 3D 再構成作業では、通常、一定の自然光条件下で複数の視点 (マルチビュー) からターゲット シーンをキャプチャする多視点ステレオ再構成手法 (マルチビュー ステレオ) が使用されます。ただし、これらの方法は通常、ランバート曲面を前提としており、高周波の詳細を復元するのが困難です。シーン再構築のもう 1 つのアプローチは、固定視点から異なる点光源でキャプチャされた画像を利用することです。たとえば、フォトメトリック ステレオ法では、この設定を採用し、そのシェーディング情報を使用して、非ランバーシアン オブジェクトの表面の詳細を再構成します。ただし、既存のシングルビュー手法は通常、可視領域を表現するために法線マップまたは深度マップを使用します。

iOS17では、2台のiPhoneを同時にタッチすることで連絡先を交換できるAirDrop機能が新たに搭載されました。これは NameDrop と呼ばれるもので、実際にどのように機能するかは次のとおりです。 NameDrop を使用すると、新しい相手に電話をかけたりテキストメッセージを送信したりする際に相手の番号を入力する必要がなく、相手があなたの番号を知ることができるので、iPhone を相手の iPhone に近づけるだけで連絡先情報を交換できます。 2 つのデバイスを組み合わせると、連絡先共有インターフェイスが自動的にポップアップ表示されます。ポップアップをクリックすると、個人の連絡先情報と連絡先ポスター (カスタマイズおよび編集できる自分の写真、これも iOS 17 の新機能) が表示されます。この画面には、「受信のみ」または応答として自分の連絡先情報を共有することも含まれます

WeChat の情報受信が遅れる理由には、ネットワークの問題、サーバーの負荷、バージョンの問題、デバイスの問題、メッセージ送信の問題、またはその他の要因が考えられます。詳細な紹介: 1. ネットワークの問題。WeChat での情報受信の遅延は、ネットワーク接続に関連している可能性があります。ネットワーク接続が不安定または信号が弱い場合、情報送信に遅延が発生する可能性があります。携帯電話が正常に動作していることを確認してください。安定したネットワークに接続されており、ネットワーク信号強度が良好であること; 2. サーバー負荷 WeChat サーバーの負荷が高い場合、特に繁忙期や多数のユーザーが WeChat を使用している場合、情報送信に遅延が発生する可能性があります。同じ時間など。

コンピュータネットワークにおける情報の伝達は「言葉」に基づいており、言葉はデータ伝達の基本単位です。コンピュータネットワークには、データ通信とリソース共有という2つの主要な機能があり、データ通信で送信される情報はバイナリデータの形式で表現されます。データ通信とは、データ伝送技術を利用し、一定の通信プロトコルに従って2つの端末間でデータ情報を転送する通信方法および通信サービスです。

Apple は、NameDrop を介して別の iPhone と連絡先情報を共有する非常に高速な (最速ではないにしても) 方法を導入しました。知っておくべきことはすべてここにあります。ネームドロップとは何ですか? iOS 17 では、連絡先ポスターを活用する革新的な機能である NameDrop が導入されています。これらのパーソナライズされたカードは、自分自身や他の連絡先用に作成でき、電話をかけるたびに表示されます。写真、ミー文字、モノグラムなどの複数のカスタマイズ可能なオプションを使用して、好みの配色とフォントを使用して連絡先ポスターを自分の個性に合わせてカスタマイズできます。 iPhone が他のユーザーに近づくと、NameDrop が自動的にポスターを共有し、双方が簡単に共有できるようになります。
