新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
innodb_support_xa的作用-創(chuàng)新互聯(lián)
inno
如何開啟?
innodb_support_xa=true,支持xa兩段式事務(wù)提交。
默認(rèn)為true,值為on,多線程并發(fā)執(zhí)行提交事務(wù),按照事務(wù)的先后順序?qū)懭隻inlog,如果關(guān)閉則binlog記錄事務(wù)的順序可能與實(shí)際不符,造成slave不一致
mysql> show global variables like 'innodb_support_xa';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| innodb_support_xa | ON |
+-------------------+-------+
1 row in set (0.01 sec)
內(nèi)部XA
現(xiàn)在mysql內(nèi)部一個處理流程大概是這樣:
1. prepare ,然后將redo log持久化到磁盤
2. 如果前面prepare成功,那么再繼續(xù)將事務(wù)日志持久化到binlog
3. 如果前面成功,那么在redo log里面寫上一個commit記錄
那么假如在進(jìn)行著三步時有任何一步失敗,crash recovery是怎么進(jìn)行的呢?
此時會先從redo log將最近一個檢查點(diǎn)開始的事務(wù)讀出來,然后參考binlog里面的事務(wù)進(jìn)行恢復(fù)。
如果是在1 crash,那么自然整個事務(wù)都回滾;
如果是在2 crash,那么也會整個事務(wù)回滾;
如果是在3 crash(僅僅是commit記錄沒寫成功),那么沒有關(guān)系因?yàn)?中已經(jīng)記錄了此次事務(wù)的binlog,所以將這個進(jìn)行commit。所以總結(jié)起來就是redo log里凡是prepare成功,但commit失敗的事務(wù)都會先去binlog查找判斷其是否存在(通過XID進(jìn)行判斷,是不是經(jīng)常在binlog里面看到Xid=xxxx?這就是xa事務(wù)id),如果有則將這個事務(wù)commit,否則rollback。
網(wǎng)站標(biāo)題:innodb_support_xa的作用-創(chuàng)新互聯(lián)
網(wǎng)頁URL:http://www.dlmjj.cn/article/djdsig.html
如何開啟?
innodb_support_xa=true,支持xa兩段式事務(wù)提交。
默認(rèn)為true,值為on,多線程并發(fā)執(zhí)行提交事務(wù),按照事務(wù)的先后順序?qū)懭隻inlog,如果關(guān)閉則binlog記錄事務(wù)的順序可能與實(shí)際不符,造成slave不一致
mysql> show global variables like 'innodb_support_xa';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| innodb_support_xa | ON |
+-------------------+-------+
1 row in set (0.01 sec)
內(nèi)部XA
現(xiàn)在mysql內(nèi)部一個處理流程大概是這樣:
1. prepare ,然后將redo log持久化到磁盤
2. 如果前面prepare成功,那么再繼續(xù)將事務(wù)日志持久化到binlog
3. 如果前面成功,那么在redo log里面寫上一個commit記錄
那么假如在進(jìn)行著三步時有任何一步失敗,crash recovery是怎么進(jìn)行的呢?
此時會先從redo log將最近一個檢查點(diǎn)開始的事務(wù)讀出來,然后參考binlog里面的事務(wù)進(jìn)行恢復(fù)。
如果是在1 crash,那么自然整個事務(wù)都回滾;
如果是在2 crash,那么也會整個事務(wù)回滾;
如果是在3 crash(僅僅是commit記錄沒寫成功),那么沒有關(guān)系因?yàn)?中已經(jīng)記錄了此次事務(wù)的binlog,所以將這個進(jìn)行commit。所以總結(jié)起來就是redo log里凡是prepare成功,但commit失敗的事務(wù)都會先去binlog查找判斷其是否存在(通過XID進(jìn)行判斷,是不是經(jīng)常在binlog里面看到Xid=xxxx?這就是xa事務(wù)id),如果有則將這個事務(wù)commit,否則rollback。
網(wǎng)站標(biāo)題:innodb_support_xa的作用-創(chuàng)新互聯(lián)
網(wǎng)頁URL:http://www.dlmjj.cn/article/djdsig.html