日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql xa 演示_mysql的XA事务恢复过程详解

發布時間:2023/12/4 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql xa 演示_mysql的XA事务恢复过程详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

mysql數據庫開機報錯:

InnoDB: The log sequence number in ibdata files does not match

InnoDB: the log sequence number in the ib_logfiles!

100224 12:24:20 InnoDB: Database was not shut down normally!

InnoDB: Starting crash recovery.

InnoDB: Reading tablespace information from the .ibd files...

InnoDB: Restoring possible half-written data pages from the doublewrite

InnoDB: buffer...

InnoDB: Transaction 0 4497755 was in the XA prepared state.

InnoDB: Transaction 0 4468551 was in the XA prepared state.

InnoDB: Transaction 0 4468140 was in the XA prepared state.

InnoDB: 3 transaction(s) which must be rolled back or cleaned up

InnoDB: in total 0 row operations to undo

InnoDB: Trx id counter is 0 5312768

InnoDB: Starting in background the rollback of uncommitted transactions

100224 12:24:20 InnoDB: Rollback of non-prepared transactions completed

100224 12:24:20 InnoDB: Started; log sequence number 0 3805002509

100224 12:24:20 InnoDB: Starting recovery for XA transactions...

100224 12:24:20 InnoDB: Transaction 0 4497755 in prepared state after recovery

100224 12:24:20 InnoDB: Transaction contains changes to 8 rows

100224 12:24:20 InnoDB: Transaction 0 4468551 in prepared state after recovery

100224 12:24:20 InnoDB: Transaction contains changes to 1 rows

100224 12:24:20 InnoDB: Transaction 0 4468140 in prepared state after recovery

100224 12:24:20 InnoDB: Transaction contains changes to 1 rows

100224 12:24:20 InnoDB: 3 transactions in prepared state after recovery

100224 12:24:20 [Note] Found 3 prepared transaction(s) in InnoDB

100224 12:24:20 [Warning] Found 3 prepared XA transactions

100224 12:24:20 [Note] Event Scheduler: Loaded 0 events

100224 12:24:20 [Note] /opt/mysql/bin/mysqld: ready for connections.

Version: '5.1.39' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server (GPL)

意味著有三個XA的事務沒有提交或回滾。

登錄到mysql

mysql> xa recover;

+----------+--------------+--------------+------------------------------------------------------------+

| formatID | gtrid_length | bqual_length | data |

+----------+--------------+--------------+------------------------------------------------------------+

| 131075 | 30 | 28 | 1-7f000001:bae5:4b6928eb:f06397f000001:bae5:4b6928eb:f0650 |

| 131075 | 30 | 28 | 1-7f000001:bae5:4b6928eb:fb5c37f000001:bae5:4b6928eb:fb5cd |

| 131075 | 30 | 28 | 1-7f000001:bae5:4b6928eb:f03ea7f000001:bae5:4b6928eb:f0400 |

+----------+--------------+--------------+------------------------------------------------------------+

數據表示信息如下:

formatIDis the formatIDpart of the transaction xid

gtrid_lengthis the length in bytes of the gtridpart of the xid

bqual_lengthis the length in bytes of the bqualpart of the xid

datais the concatenation of the gtridand bqualparts of the xid

這是三個XA事務的信息,準備直接回滾。

mysql> xa rollback '1-7f000001:bae5:4b6928eb:fb5c3','7f000001:bae5:4b6928eb:fb5cd',131075;

Query OK, 0 rows affected (0.41 sec)

再啟動就正常了。

MySQL XA

I.5. 對XA事務的限制

XA事務支持限于InnoDB存儲引擎。

MySQL XA實施是針對外部XA的,其中,MySQL服務器作為資源管理器,而客戶端程序作為事務管理器。未實施“內部XA”。這樣,就允許MySQL服務器內的單獨存儲引擎作為RM(資源管理器),而服務器本身作為TM(事務管理器)。處理包含1個以上存儲引擎的XA事務時,需要內部XA。內部XA的實施是不完整的,這是因為,它要求存儲引擎在表處理程序層面上支持兩階段提交,目前僅對InnoDB實現了該特性。

對于XA START,不支持JOIN和RESUME子句。

對于XA END,不支持SUSPEND [FOR MIGRATE]子句。

在全局事務內,對于每個XA事務,xid值的bqual部分應是不同的,該要求是對當前MySQL XA實施的限制。它不是XA規范的組成部分。

如果XA事務達到PREPARED狀態而且MySQL服務器宕機,當服務器重啟后,能夠繼續處理事務。就像原本應當的那樣。但是,如果客戶端連接中止而服務器繼續運行,服務器將回滾任何未完成的XA事務,即使該事務已達到PREPARED狀態也同樣。它應能提交或回滾PREPARED XA事務,但在不更改二進制日志機制的情況下不能這樣。

總結

以上是生活随笔為你收集整理的mysql xa 演示_mysql的XA事务恢复过程详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。