MySQL案例08:MySQL Events帶來的風險

來源:互聯網
上載者:User

標籤:開發   lob   常見   通過   錯誤   key   16px   失敗   9.png   

定時任務是我們開發、營運人員經常用到的,比如cron,job,schedule,events scheduler等都是為了方便我們重複執行某項工作而無需人工參與而設計,這裡我要說的是MySQL資料庫本身的定時任務,即events scheduler的風險案例。

一、現象描述

這裡有一個從庫出現資料不同步現象,具體報錯如下:

             Slave_IO_Running: Yes            Slave_SQL_Running: No               Last_SQL_Errno: 1032               Last_SQL_Error: Could not execute Delete_rows event on table bs.dg_sale; Can‘t find record in ‘dg_sale‘, Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event‘s master log mysql-bin.000079, end_log_pos 159513315

這個現象出現是由於主鍵問題導致資料刪除失敗,進而引發資料同步錯誤。

二、原因分析

出現上述錯誤比較常見的是從庫做了一些刪除操作,然後資料同步的時候通過主鍵尋找條件刪除的時候無法執行刪除操作,進而導致主從錯誤。

通過對比主庫資料和從庫資料發現表資料記錄數都是0,然後自增值不同,從庫始終沒有外部賬戶訪問,這裡就有點懵逼了吧?沒錯,還有一種情況可能導致從庫被操作,那就是定時任務。通過排查發現,果然主庫設有幾個events事件,其中有個定時任務就設計到這個表的多次查詢、刪除、插入等操作。

三、處理過程

1.查看從庫狀態和錯誤碼資訊。

2.檢查主庫、從庫表資料資訊、表結構資訊。

show slave status \G

show create table  bs.dg_sale \G

select count(1) from bs.dg_sale;

3.分析產生錯誤的binlog資訊。

主庫:

show binlog events  in ‘mysql-bin.000079‘ from 159512534 limit 10;

mysqlbinlog  --base64-output=‘decode-rows‘ --start-position=159512534 --stop-position=159512838 -vv  mysql-bin.000079 >binlog.txt

4.查看主庫/從庫events scheduler資訊

show variables like ‘event_scheduler‘;

show events;

select EVENT_SCHEMA,EVENT_NAME,STATUS ,EXECUTE_AT,INTERVAL_VALUE from events;

 

這裡看到events scheduler

5.禁用從庫的events scheduler

set global event_scheduler=0;

在從庫my.cnf設定檔中加入set global event_scheduler=0

6.重新完成資料同步

四、知識擴充

1.建立mysql events scheduler

2.刪除mysql events scheduler

3.更改mysql events scheduler

 

MySQL案例08:MySQL Events帶來的風險

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.