天天看點

3分鐘解決MySQL 1864 主從錯誤

<a href="http://s1.51cto.com/wyfs02/M00/86/5A/wKiom1e87-aQ0QXXAAAPkNxB-7Q330.png" target="_blank"></a>

    從字面意思看了一下是因為slave_pending_jobs_size_max預設值為16777216(16MB),但是slave接收到的slave_pending_jobs_size_max為17085453(17M);

解決方案

從庫執行如下SQL

1

2

3

<code>mysql&gt;stop slave;</code>

<code>mysql&gt;</code><code>set</code> <code>global</code> <code>slave_pending_jobs_size_max=20000000;</code>

<code>mysql&gt; start slave;</code>

#在多線程複制時,在隊列中Pending的事件所占用的最大記憶體,預設為16M,如果記憶體富餘,或者延遲較大時,可以适當調大;注意這個值要比主庫的max_allowed_packet大

故障模拟:

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<code>從庫設定</code>

<code>mysql&gt; </code><code>set</code> <code>global</code> <code>slave_parallel_workers=4;</code>

<code>mysql&gt; show variables </code><code>like</code> <code>'slave_parallel_workers'</code><code>;</code>

<code>+</code><code>------------------------+-------+</code>

<code>| Variable_name          | Value |</code>

<code>|slave_parallel_workers | 4     |</code>

<code>1 row </code><code>in</code> <code>set</code> <code>(0.00sec)</code>

<code> </code> 

<code>mysql&gt;</code><code>set</code> <code>global</code> <code>slave_pending_jobs_size_max=1024;</code>

<code>mysql&gt; show variables </code><code>like</code> <code>'slave_pend%'</code><code>;</code>

<code>+</code><code>-----------------------------+-------+</code>

<code>| Variable_name               | Value |</code>

<code>|slave_pending_jobs_size_max | 1024  |</code>

<code>主庫操作:</code>

<code>mysql&gt; </code><code>update</code> <code>erp_mkpf </code><code>set</code> <code>usnam=</code><code>'測試1864錯誤'</code><code>;</code>

<code>ERROR 1197 (HY000):Multi-statement </code><code>transaction</code> <code>required more than </code><code>'max_binlog_cache_size'</code> <code>bytes ofstorage; increase this mysqld variable </code><code>and</code> <code>try again</code>

<code>mysql&gt; </code><code>set</code> <code>global</code> <code>max_binlog_cache_size=8388608000000;</code>

<code>Query OK, 0 rowsaffected (0.00 sec)</code>

<code>mysql&gt; </code><code>begin</code><code>;</code>

<code>Query OK, 70466 rowsaffected (0.38 sec)</code>

<code>Rows</code> <code>matched:70466  Changed: 70466  Warnings: 0</code>

<code>mysql&gt; </code><code>commit</code><code>;</code>

<code>Query OK, 0 rowsaffected (0.08 sec)</code>

 本文轉自 dbapower 51CTO部落格,原文連結:http://blog.51cto.com/suifu/1841764,如需轉載請自行聯系原作者

繼續閱讀