mysql memory引擎引起的主從 1032 錯誤

selectshen發表於2015-12-28
    客戶mysql的從庫上報Last_SQL_Error: Could not execute Update_rows event on table xxx.xxx; Can't find record in 'xxx', Error_code: 1032;
handler error HA_ERR_KEY_NOT_FOUND; the event's master log mysql-bin.xxxx, end_log_pos xxxx.
    以前遇到的error  1032的錯誤一般是因為過濾db或table引起呼叫上的錯誤,或者是從庫的資料和主庫不一致.解決方法通常也是手工同步一下表,或
者按錯誤號或按次跳過,或者是過濾時需要加wild,或者用備份重建從庫.
    客戶告訴我用剛備份的從庫依然報同樣錯誤.想想沒理由呀,剛備份的庫早就過了報錯的那個時間點了.然後我對比一下報錯的兩個表的資料,發現從
這個表上沒有資料.也發現這個表的儲存引擎是Memory,只要重啟,表內的資料就會丟失.
透過
SELECT table_schema,table_name FROM information_schema.`TABLES`
WHERE ENGINE='MEMORY' AND table_schema <>'information_schema';
查到有,
table_schema    table_name
bbs    dis_common_member_secwhite
bbs    dis_common_process
bbs    dis_common_seccheck
bbs    dis_common_session
bbs    dis_common_visit
bbs    dis_forum_threaddisablepos
bbs    dis_ucenter_vars
估瞭解,客戶沒有讀取從庫這幾個表的需求,所以,只需要將這些表用replicate-ignore-table=schema_name.tbl_name做為引數新增到my.cnf中重啟從庫,
注意
一個表一行.如果客戶有讀取從庫這幾個表的需求,可以透過手工同步資料或直接更改儲存引擎解決.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28539951/viewspace-1965943/,如需轉載,請註明出處,否則將追究法律責任。

相關文章