MySQL 延遲從庫介紹

前言:

我們都知道窘游,MySQL 主從延遲是一件很難避免的情況,從庫難免會(huì)偶爾追不上主庫,特別是主庫有大事務(wù)或者執(zhí)行 DDL 的時(shí)候舅巷。MySQL 除了這種正常從庫外,還可以設(shè)置延遲從庫河咽,顧名思義就是故意讓從庫落后于主庫多長(zhǎng)時(shí)間钠右,本篇文章我們一起來了解下 MySQL 中的延遲從庫。

延遲從庫介紹

延遲復(fù)制是一種特殊的復(fù)制策略忘蟹,它允許從庫在主庫執(zhí)行完數(shù)據(jù)變更后延遲一段時(shí)間再將這些變更同步到從庫飒房。這項(xiàng)功能從 MySQL 5.6 版本開始得到支持,區(qū)別于傳統(tǒng)的異步復(fù)制(接近實(shí)時(shí))媚值,比如用戶誤刪除了重要的表狠毯,延遲復(fù)制特性保證了用戶有機(jī)會(huì)從延遲的 slave 中恢復(fù)誤刪除的表。延遲特性是在 slave 中實(shí)現(xiàn)的褥芒,不會(huì)影響 master嚼松,relay log 的接收等,只是 sql_thread 執(zhí)行更新的過程延遲了指定的時(shí)間喂很。

配置延遲從庫的方法是惜颇,在從庫上執(zhí)行 STOP SLAVE; 命令暫停復(fù)制過程,然后使用 CHANGE MASTER TO MASTER_DELAY = N; 設(shè)置延遲時(shí)間(單位為秒)少辣,之后再執(zhí)行 START SLAVE; 命令重新啟動(dòng)復(fù)制過程
凌摄。在監(jiān)控延遲從庫狀態(tài)時(shí),可以通過 SHOW SLAVE STATUS \G 命令查看 SQL_Delay 和 Seconds_Behind_Master 參數(shù)漓帅,其中 SQL_Delay 表示設(shè)置的延遲時(shí)間锨亏,Seconds_Behind_Master 表示當(dāng)前從庫真正延遲的時(shí)間,正常情況下 Seconds_Behind_Master = SQL_Delay忙干。

延遲從庫使用場(chǎng)景

對(duì)比正常從庫器予,延遲從庫會(huì)落后于主庫固定的時(shí)間,比如設(shè)置 3 小時(shí)或 6 小時(shí)捐迫,這樣主庫的更新操作會(huì)在 3 小時(shí)或 6 小時(shí)后在延遲從庫執(zhí)行乾翔。想象一下,若人為或程序 bug 誤操作了數(shù)據(jù)施戴,那我們是不是可以利用延遲從庫來進(jìn)行快速恢復(fù)反浓,因?yàn)榇藭r(shí)延遲從庫還未執(zhí)行到這個(gè)誤操作的 SQL 。顯而易見赞哗,延遲從庫最大的應(yīng)用場(chǎng)景就是用于快速恢復(fù)數(shù)據(jù)雷则,對(duì)比篩選 binlog 或從備份中恢復(fù)這兩種方式,延遲從庫恢復(fù)都要簡(jiǎn)單便捷許多肪笋,特別是對(duì)于數(shù)據(jù)量比較大的實(shí)例月劈。延遲從庫恢復(fù)也有兩種情況度迂,一種是誤操作的這個(gè)表變動(dòng)很少,那么我們直接就可以在延遲從庫上備份此表猜揪,然后導(dǎo)入主庫即可惭墓。另一種情況是按時(shí)間點(diǎn)恢復(fù),首先找到誤操作語句的 GTID 或 position 點(diǎn)位而姐,然后停止延遲從庫同步進(jìn)程诅妹,取消延遲,使用 START SLAVE UNTIL 語法指定條件毅人,讓同步進(jìn)程在指定 gtid 點(diǎn)停下,這樣這個(gè)延遲從庫整體就回放到主庫誤操作前的時(shí)間點(diǎn)了尖殃,具體示例操作如下:

#在主庫找到誤操作的gtid丈莺,再往上一條gtid,設(shè)置同步截止點(diǎn)
mysql> STOP SLAVE;
mysql> change master to master_delay=0;
mysql> START SLAVE UNTIL SQL_AFTER_GTIDS='0a9a0b8b-4df3-11ed-a592-fa76892aa300:21741053';
 
#同步到對(duì)應(yīng)截止點(diǎn)后送丰,SQL線程會(huì)自動(dòng)停止缔俄。
mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.10.97
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: bin-log.000151
          Read_Master_Log_Pos: 39510957
               Relay_Log_File: relay-log.000004
                Relay_Log_Pos: 35271037
        Relay_Master_Log_File: bin-log.000151
             Slave_IO_Running: Yes
            Slave_SQL_Running: No -> 到達(dá)設(shè)定的GTID值后,SQL線程會(huì)中斷
...
              Until_Condition: SQL_AFTER_GTIDS -> 設(shè)置后這里會(huì)出現(xiàn)同步截止的關(guān)鍵信息
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 60859881
                  Master_UUID: 0a9a0b8b-4df3-11ed-a592-fa76892aa300
             Master_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
...
           Retrieved_Gtid_Set: 0a9a0b8b-4df3-11ed-a592-fa76892aa300:21562347-21747364
            Executed_Gtid_Set: 0a9a0b8b-4df3-11ed-a592-fa76892aa300:1-21741053 -> 同步截止點(diǎn)
                Auto_Position: 1
         Replicate_Rewrite_DB:
                 Channel_Name:
           Master_TLS_Version:
# sql線程停止代表此從庫已經(jīng)回放至誤操作前的時(shí)間點(diǎn)器躏,之后我們就能備份誤操作的表然后到主庫進(jìn)行恢復(fù)了

除了用于快速恢復(fù)外俐载,延遲從庫還有以下應(yīng)用場(chǎng)景:

  • 備份和容錯(cuò):延遲從庫保留的也是一份完整的副本,可用于備份或故障切換登失。
  • 離線查詢:延遲從庫可以用于離線數(shù)據(jù)處理或批量分析任務(wù)遏佣,而不影響在線服務(wù)。
  • 審計(jì)和合規(guī)性:某些合規(guī)性要求可能需要保留數(shù)據(jù)的歷史版本揽浙,延遲從庫可以作為滿足這些要求的一種手段状婶。

總結(jié):

通過以上介紹可以看出,延遲從庫主要適用于需要增強(qiáng)數(shù)據(jù)安全性和提高系統(tǒng)可用性的場(chǎng)合馅巷。通過合理配置和監(jiān)控膛虫,可以有效利用延遲從庫的優(yōu)勢(shì)來增強(qiáng)數(shù)據(jù)庫系統(tǒng)的穩(wěn)定性、可靠性和性能钓猬。如果你的數(shù)據(jù)庫實(shí)例有多個(gè)從庫稍刀,不妨將其中一個(gè)設(shè)置為延遲從庫,對(duì)于快速恢復(fù)數(shù)據(jù)還是很有作用的敞曹。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末账月,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子异雁,更是在濱河造成了極大的恐慌捶障,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纲刀,死亡現(xiàn)場(chǎng)離奇詭異项炼,居然都是意外死亡担平,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門锭部,熙熙樓的掌柜王于貴愁眉苦臉地迎上來暂论,“玉大人,你說我怎么就攤上這事拌禾∪√ィ” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵湃窍,是天一觀的道長(zhǎng)闻蛀。 經(jīng)常有香客問我,道長(zhǎng)您市,這世上最難降的妖魔是什么觉痛? 我笑而不...
    開封第一講書人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮茵休,結(jié)果婚禮上薪棒,老公的妹妹穿的比我還像新娘。我一直安慰自己榕莺,他們只是感情好俐芯,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著钉鸯,像睡著了一般吧史。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上唠雕,一...
    開封第一講書人閱讀 51,624評(píng)論 1 305
  • 那天扣蜻,我揣著相機(jī)與錄音,去河邊找鬼及塘。 笑死莽使,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的笙僚。 我是一名探鬼主播芳肌,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼肋层!你這毒婦竟也來了亿笤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤栋猖,失蹤者是張志新(化名)和其女友劉穎净薛,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蒲拉,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡肃拜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年痴腌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片燃领。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡士聪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出猛蔽,到底是詐尸還是另有隱情剥悟,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布曼库,位于F島的核電站区岗,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏毁枯。R本人自食惡果不足惜躏尉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望后众。 院中可真熱鬧,春花似錦颅拦、人聲如沸蒂誉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽右锨。三九已至,卻和暖如春碌秸,著一層夾襖步出監(jiān)牢的瞬間绍移,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工讥电, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蹂窖,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓恩敌,卻偏偏與公主長(zhǎng)得像瞬测,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子纠炮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容