婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 詳解MySQL的Seconds_Behind_Master

詳解MySQL的Seconds_Behind_Master

熱門標簽:呂梁外呼系統 html地圖標注并導航 催天下外呼系統 400電話變更申請 武漢電銷機器人電話 大豐地圖標注app 北京金倫外呼系統 400電話辦理服務價格最實惠 南太平洋地圖標注

Seconds_Behind_Master

對于mysql主備實例,seconds_behind_master是衡量master與slave之間延時的一個重要參數。通過在slave上執行"show slave status;"可以獲取seconds_behind_master的值。

原始實現

Definition:The number of seconds that the slave SQL thread is behind processing the master binary log.

Type:time_t(long)

計算方式如下:

rpl_slave.cc::show_slave_status_send_data()
if ((mi->get_master_log_pos() == mi->rli->get_group_master_log_pos()) 
       (!strcmp(mi->get_master_log_name(),
                mi->rli->get_group_master_log_name()))) {
     if (mi->slave_running == MYSQL_SLAVE_RUN_CONNECT)
       protocol->store(0LL);
     else
       protocol->store_null();
   } else {
     long time_diff = ((long)(time(0) - mi->rli->last_master_timestamp) -
                       mi->clock_diff_with_master);
     protocol->store(
         (longlong)(mi->rli->last_master_timestamp ? max(0L, time_diff) : 0));
   }

主要分為以下兩種情況:

  • SQL線程等待IO線程獲取主機binlog,此時seconds_behind_master為0,表示備機與主機之間無延時;
  • SQL線程處理relay log,此時seconds_behind_master通過(long)(time(0) – mi->rli->last_master_timestamp) – mi->clock_diff_with_master計算得到;

last_master_timestamp

定義:

主庫binlog中事件的時間。

type: time_t (long)

計算方式:

last_master_timestamp根據備機是否并行復制有不同的計算方式。

非并行復制:

rpl_slave.cc:exec_relay_log_event()
if ((!rli->is_parallel_exec() || rli->last_master_timestamp == 0) 
    !(ev->is_artificial_event() || ev->is_relay_log_event() ||
     (ev->common_header->when.tv_sec == 0) ||
     ev->get_type_code() == binary_log::FORMAT_DESCRIPTION_EVENT ||
     ev->server_id == 0))
{
 rli->last_master_timestamp= ev->common_header->when.tv_sec +
                             (time_t) ev->exec_time;
 DBUG_ASSERT(rli->last_master_timestamp >= 0);
}

在該模式下,last_master_timestamp表示為每一個event的結束時間,其中when.tv_sec表示event的開始時間,exec_time表示事務的執行時間。該值的計算在apply_event之前,所以event還未執行時,last_master_timestamp已經被更新。由于exec_time僅在Query_log_event中存在,所以last_master_timestamp在應用一個事務的不同event階段變化。以一個包含兩條insert語句的事務為例,在該代碼段的調用時,打印出event的類型、時間戳和執行時間

create table t1(a int PRIMARY KEY AUTO_INCREMENT ,b longblob) engine=innodb;
begin;
insert into t1(b) select repeat('a',104857600);
insert into t1(b) select repeat('a',104857600);
commit;

10T06:41:32.628554Z 11 [Note] [MY-000000] [Repl] event_type: 33 GTID_LOG_EVENT

2020-02-10T06:41:32.628601Z 11 [Note] [MY-000000] [Repl] event_time: 1581316890

2020-02-10T06:41:32.628614Z 11 [Note] [MY-000000] [Repl] event_exec_time: 0

2020-02-10T06:41:32.628692Z 11 [Note] [MY-000000] [Repl] event_type: 2   QUERY_EVENT

2020-02-10T06:41:32.628704Z 11 [Note] [MY-000000] [Repl] event_time: 1581316823

2020-02-10T06:41:32.628713Z 11 [Note] [MY-000000] [Repl] event_exec_time: 35

2020-02-10T06:41:32.629037Z 11 [Note] [MY-000000] [Repl] event_type: 19   TABLE_MAP_EVENT

2020-02-10T06:41:32.629057Z 11 [Note] [MY-000000] [Repl] event_time: 1581316823

2020-02-10T06:41:32.629063Z 11 [Note] [MY-000000] [Repl] event_exec_time: 0

2020-02-10T06:41:33.644111Z 11 [Note] [MY-000000] [Repl] event_type: 30    WRITE_ROWS_EVENT

2020-02-10T06:41:33.644149Z 11 [Note] [MY-000000] [Repl] event_time: 1581316823

2020-02-10T06:41:33.644156Z 11 [Note] [MY-000000] [Repl] event_exec_time: 0

2020-02-10T06:41:43.520272Z 0 [Note] [MY-011953] [InnoDB] Page cleaner took 9185ms to flush 3 and evict 0 pages

2020-02-10T06:42:05.982458Z 11 [Note] [MY-000000] [Repl] event_type: 19   TABLE_MAP_EVENT

2020-02-10T06:42:05.982488Z 11 [Note] [MY-000000] [Repl] event_time: 1581316858

2020-02-10T06:42:05.982495Z 11 [Note] [MY-000000] [Repl] event_exec_time: 0

2020-02-10T06:42:06.569345Z 11 [Note] [MY-000000] [Repl] event_type: 30    WRITE_ROWS_EVENT

2020-02-10T06:42:06.569376Z 11 [Note] [MY-000000] [Repl] event_time: 1581316858

2020-02-10T06:42:06.569384Z 11 [Note] [MY-000000] [Repl] event_exec_time: 0

2020-02-10T06:42:16.506176Z 0 [Note] [MY-011953] [InnoDB] Page cleaner took 9352ms to flush 8 and evict 0 pages

2020-02-10T06:42:37.202507Z 11 [Note] [MY-000000] [Repl] event_type: 16    XID_EVENT

2020-02-10T06:42:37.202539Z 11 [Note] [MY-000000] [Repl] event_time: 1581316890

2020-02-10T06:42:37.202546Z 11 [Note] [MY-000000] [Repl] event_exec_time: 0

并行復制:

rpl_slave.cc   mts_checkpoint_routine
ts = rli->gaq->empty()
          ? 0
          : reinterpret_castSlave_job_group *>(rli->gaq->head_queue())->ts;
 rli->reset_notified_checkpoint(cnt, ts, true);
 /* end-of "Coordinator::"commit_positions" */

在該模式下備機上存在一個分發隊列gaq,如果gaq為空,則設置last_commit_timestamp為0;如果gaq不為空,則此時維護一個checkpoint點lwm,lwm之前的事務全部在備機上執行完成,此時last_commit_timestamp被更新為lwm所在事務執行完成后的時間。該時間類型為time_t類型。

ptr_group->ts = common_header->when.tv_sec +
                   (time_t)exec_time;  // Seconds_behind_master related
rli->rli_checkpoint_seqno++;
if (update_timestamp) {
 mysql_mutex_lock(data_lock);
 last_master_timestamp = new_ts;
 mysql_mutex_unlock(data_lock);
}

在并行復制下,event執行完成之后才會更新last_master_timestamp,所以非并行復制和并行復制下的seconds_behind_master會存在差異。

clock_diff_with_master

定義:

  • The difference in seconds between the clock of the master and the clock of the slave (second - first). It must be signed as it may be 0 or >0. clock_diff_with_master is computed when the I/O thread starts; for this the I/O thread does a SELECT UNIX_TIMESTAMP() on the master.
  • type: long
rpl_slave.cc::get_master_version_and_clock()
if (!mysql_real_query(mysql, STRING_WITH_LEN("SELECT UNIX_TIMESTAMP()")) 
     (master_res= mysql_store_result(mysql)) 
     (master_row= mysql_fetch_row(master_res)))
 {
   mysql_mutex_lock(mi->data_lock);
   mi->clock_diff_with_master=
     (long) (time((time_t*) 0) - strtoul(master_row[0], 0, 10));
   DBUG_EXECUTE_IF("dbug.mts.force_clock_diff_eq_0",
     mi->clock_diff_with_master= 0;);
   mysql_mutex_unlock(mi->data_lock);
 }

該差值僅被計算一次,在master與slave建立聯系時處理。

其他

exec_time

定義:

  • the difference from the statement's original start timestamp and the time at which it completed executing.
  • type: unsigned long
struct timeval end_time;
ulonglong micro_end_time = my_micro_time();
my_micro_time_to_timeval(micro_end_time, end_time);
exec_time = end_time.tv_sec - thd_arg->query_start_in_secs();

時間函數

(1)time_t time(time_t timer) time_t為long類型,返回的數值僅精確到秒;

(2)int gettimeofday (struct timeval *tv, struct timezone *tz) 可以獲得微秒級的當前時間;

(3)timeval結構

#include time.h>
stuct timeval {
   time_t tv_sec; /*seconds*/
   suseconds_t tv_usec; /*microseconds*/
}

總結

使用seconds_behind_master衡量主備延時只能精確到秒級別,且在某些場景下,seconds_behind_master并不能準確反映主備之間的延時。主備異常時,可以結合seconds_behind_master源碼進行具體分析。

以上就是詳解MySQL的Seconds_Behind_Master的詳細內容,更多關于MySQL Seconds_Behind_Master的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • MySQL 發生同步延遲時Seconds_Behind_Master還為0的原因
  • python3文件復制、延遲文件復制任務的實現方法
  • docker實現mysql主從復制的示例代碼
  • MySQL數據庫 Load Data 多種用法
  • MySQL數據庫Shell import_table數據導入
  • Mysql數據庫的主從同步配置
  • Mysql實現簡易版搜索引擎的示例代碼
  • MySQL命令無法輸入中文問題的解決方式
  • 當面試官問mysql中char與varchar的區別
  • MySQL的從庫Seconds_Behind_Master延遲總結

標簽:麗水 西寧 自貢 南充 龍巖 無錫 迪慶 徐州

巨人網絡通訊聲明:本文標題《詳解MySQL的Seconds_Behind_Master》,本文關鍵詞  詳解,MySQL,的,Seconds,Behind,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解MySQL的Seconds_Behind_Master》相關的同類信息!
  • 本頁收集關于詳解MySQL的Seconds_Behind_Master的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    在线观看不卡一区| 欧美成人a∨高清免费观看| 中文字幕成人网| 精品第一国产综合精品aⅴ| 午夜电影一区二区| 欧美视频一区在线| 性感美女久久精品| 欧美精品视频www在线观看| 亚洲第一主播视频| 在线播放中文字幕一区| 日韩va亚洲va欧美va久久| 欧美日韩国产天堂| 青青草国产精品97视觉盛宴| 欧美一卡在线观看| 国产在线视频一区二区| 国产校园另类小说区| 成人av在线一区二区三区| 自拍偷拍欧美激情| 欧美少妇性性性| 久久激情综合网| 中日韩av电影| 在线观看国产精品网站| 精品在线免费视频| 亚洲欧美在线视频| 8x8x8国产精品| 福利一区福利二区| 亚洲午夜一区二区| 精品国产99国产精品| 99精品视频一区| 午夜精品久久久久久久久久 | 日本不卡的三区四区五区| 日韩视频在线永久播放| 国产精品亚洲第一| 玉米视频成人免费看| 日韩一区二区三区视频在线观看 | 久久超碰97人人做人人爱| 中文一区一区三区高中清不卡| 亚洲五月六月丁香激情| 久久久久久久久伊人| 欧美日韩免费一区二区三区视频| 国产伦精品一区二区三区免费迷| 亚洲自拍偷拍网站| 国产精品无码永久免费888| 欧美人妇做爰xxxⅹ性高电影| 国产精品香蕉一区二区三区| 亚洲最快最全在线视频| 国产精品美女久久久久aⅴ| 日韩欧美一卡二卡| 欧美精品1区2区3区| 色天天综合久久久久综合片| 国产高清精品久久久久| 日本特黄久久久高潮| 一卡二卡欧美日韩| 亚洲色图制服诱惑| 国产精品传媒视频| 精品国产免费人成在线观看| 欧美三级日韩在线| av动漫一区二区| 国产成人精品1024| 精品一区二区三区的国产在线播放| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 久久久久国色av免费看影院| 精品美女被调教视频大全网站| 欧洲av在线精品| 欧美性极品少妇| 成人精品视频一区二区三区| 麻豆久久久久久| 日韩精品乱码av一区二区| 亚洲另类在线视频| ...中文天堂在线一区| 久久久精品日韩欧美| 欧美一区二区三区影视| 欧美人成免费网站| 欧美私人免费视频| 欧美放荡的少妇| 日韩女优制服丝袜电影| 久久综合九色综合久久久精品综合| 91丨九色丨蝌蚪富婆spa| 99精品欧美一区二区三区小说| 成人午夜免费电影| 国产精品456| www.久久精品| 色丁香久综合在线久综合在线观看| 色综合色综合色综合| 在线观看成人免费视频| 91精品国产麻豆国产自产在线| 日韩精品一区二区三区视频| 久久久91精品国产一区二区精品| 国产欧美va欧美不卡在线| 亚洲视频一二三| 日韩精品乱码av一区二区| 国产成人午夜精品5599| 99精品视频在线观看| 欧美二区乱c少妇| 国产欧美日韩视频一区二区| 亚洲老妇xxxxxx| 精品在线免费观看| 色综合中文综合网| 国产 欧美在线| 99久久久久免费精品国产| 91免费版在线| 日韩欧美中文字幕一区| 亚洲欧洲成人自拍| 奇米一区二区三区| 国产v日产∨综合v精品视频| 在线视频你懂得一区| xf在线a精品一区二区视频网站| 国产精品无遮挡| 日韩av网站在线观看| 不卡一区中文字幕| 日韩精品资源二区在线| 亚洲欧美日韩中文播放| 日本va欧美va欧美va精品| 99re这里只有精品6| 久久综合国产精品| 亚洲不卡av一区二区三区| 成人激情黄色小说| 欧美一区二区精品在线| 欧美激情一区在线| 精品一二线国产| 欧美另类z0zxhd电影| 中文字幕日韩一区| 国产原创一区二区| 欧美理论电影在线| 亚洲一区免费在线观看| www.一区二区| 国产精品欧美久久久久无广告| 日本va欧美va欧美va精品| 在线免费观看不卡av| 自拍偷拍亚洲欧美日韩| 国产精品18久久久久久久久| 91精品欧美一区二区三区综合在| 最新国产成人在线观看| 国产福利不卡视频| 精品国产乱码久久久久久久久| 亚洲线精品一区二区三区| 99在线精品视频| 国产精品五月天| 处破女av一区二区| 国产精品网站在线| gogo大胆日本视频一区| 国产精品区一区二区三区 | 日韩欧美激情四射| 亚洲电影视频在线| 欧美年轻男男videosbes| 亚洲一区二区av在线| 欧美亚洲一区二区三区四区| 亚洲乱码国产乱码精品精的特点| 丰满白嫩尤物一区二区| 国产欧美一区二区精品性| 懂色av中文字幕一区二区三区| 日本一区二区三区在线不卡| 高清在线成人网| 亚洲人妖av一区二区| 在线精品亚洲一区二区不卡| 午夜精彩视频在线观看不卡| 欧美一区二区女人| 国产精品91一区二区| 综合中文字幕亚洲| 欧美精品视频www在线观看| 久久国产尿小便嘘嘘| 国产精品视频观看| 欧美日韩国产乱码电影| 美女脱光内衣内裤视频久久影院| 日韩精品一区二区三区中文不卡| 国内外成人在线| 国产精品国产馆在线真实露脸 | 欧美视频一区二区三区四区| 午夜精品影院在线观看| 久久久久久久久久久久久久久99| 99国产欧美久久久精品| 午夜日韩在线电影| 国产宾馆实践打屁股91| 中文字幕一区免费在线观看| 欧美伊人久久久久久午夜久久久久| 亚洲第一福利视频在线| 国产日韩欧美精品在线| 欧美影院精品一区| 国产一区二区三区精品视频| 亚洲综合无码一区二区| 欧美精品一区二区在线观看| 色婷婷亚洲精品| 国产一区视频网站| 午夜av一区二区三区| 国产精品美女一区二区在线观看| 欧美精品色综合| 色域天天综合网| 国产91丝袜在线18| 欧美aⅴ一区二区三区视频| 亚洲色图另类专区| 久久综合999| 精品视频一区 二区 三区| 国产成人精品1024| 毛片不卡一区二区| 午夜影视日本亚洲欧洲精品| 国产精品久99| 国产日韩欧美精品电影三级在线| 91精品国产黑色紧身裤美女| 欧美亚洲动漫制服丝袜| 成人国产在线观看|