MySQL恢復過程
MySQL的xa recover 過程記錄
1 首先需要了解的是MySQL在啟動的時候,會建立trx_sys,trx_sys_init_at_db_start
在該函式中呼叫trx_lists_init_at_db_start,這個函式會去掃描undo 段,將未提交的事務新增到事務連結串列in_rw_trx_list中。
2 開啟binlog xa恢復的過程呼叫堆疊如下
mysqld!ha_recover(st_hash*) (/Users/xiaoyu.bai/Downloads/mysql-5.7.29/sql/xa.cc:149) mysqld!MYSQL_BIN_LOG::recover(st_io_cache*, Format_description_log_event*, unsigned long long*) (/Users/xiaoyu.bai/Downloads/mysql-5.7.29/sql/binlog.cc:9939) mysqld!MYSQL_BIN_LOG::open_binlog(char const*) (/Users/xiaoyu.bai/Downloads/mysql-5.7.29/sql/binlog.cc:8507) mysqld!MYSQL_BIN_LOG::open(char const*) (/Users/xiaoyu.bai/Downloads/mysql-5.7.29/sql/binlog.h:662) mysqld!init_server_components() (/Users/xiaoyu.bai/Downloads/mysql-5.7.29/sql/mysqld.cc:4228) mysqld!mysqld_main(int, char**) (/Users/xiaoyu.bai/Downloads/mysql-5.7.29/sql/mysqld.cc:4755) mysqld!main (/Users/xiaoyu.bai/Downloads/mysql-5.7.29/sql/main.cc:32) libdyld.dylib!start (Unknown Source:0)
plugin_foreach(NULL, xarecover_handlerton, MYSQL_STORAGE_ENGINE_PLUGIN, &info); 呼叫xarecover_handlerton進行一些判斷,哪些事務提交,哪些回滾。 事務進行提交的hton->commit_by_xid(hton, info->list + i); innodb呼叫innobase_commit_by_xid(進行提交,之前的事務資訊在啟動的時候已經恢復,可以直接走提交的流程。 寫入binlog的都是prepared 狀態,所以xa recoever 提交的是prepared狀態的事務
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25719946/viewspace-2930599/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 崩潰恢復過程分析MySql
- MySQL 5.6.26 通過frm & ibd 恢復資料過程MySql
- MySQL 5.6.26 透過frm & ibd 恢復資料過程MySql
- 資料庫恢復過程資料庫
- oracle goldengate 恢復過程OracleGo
- vsan儲存資料恢復過程—虛擬機器故障恢復過程資料恢復虛擬機
- 用flashback恢復儲存過程儲存過程
- DUL恢復資料庫過程資料庫
- 閃回查詢恢復過程
- 恢復MySQL資料庫建立儲存過程是遇到錯誤MySql資料庫儲存過程
- 儲存崩潰資料恢復過程;資料恢復案例資料恢復
- HPUX 磁帶恢復的大概過程UX
- 用flashback恢復儲存過程(ZT)儲存過程
- 【資料庫資料恢復】透過恢復NDF檔案修復資料庫的資料恢復過程資料庫資料恢復
- Oracle 業務資料unload恢復過程Oracle
- 恢復被覆蓋的儲存過程 oracle儲存過程Oracle
- 儲存過程誤刪除的恢復儲存過程
- 【RMAN】rm -rf 誤操作的恢復過程
- MySQL 通過 binlog 恢復資料MySql
- MySQL 透過 binlog 恢復資料MySql
- mysql 透過idb 恢復檔案MySql
- ORACLE事務和例項恢復過程梳理Oracle
- 公眾號被遮蔽到恢復過程分享
- 11g RAC庫恢復過程小記
- 恢復出廠設定 Factory Reset 呼叫過程
- 一次Oracle資料庫恢復過程Oracle資料庫
- 伺服器資料恢復過程(伺服器資料恢復通用方法)伺服器資料恢復
- 伺服器RAID資料恢復,磁碟陣列資料恢復過程伺服器AI資料恢復陣列
- 【Mysql】如何透過binlog恢復資料MySql
- 通過binlog恢復mysql資料庫MySql資料庫
- mysql 5.5 索引建設(表rebuild)過程中的系統崩潰的恢復MySql索引Rebuild
- 伺服器資料恢復案例:FreeNAS資料恢復過程記錄伺服器資料恢復
- linux系統資料恢復成功的過程Linux資料恢復
- raid5硬碟故障資料恢復過程AI硬碟資料恢復
- OS 刪除oracle資料檔案恢復過程Oracle
- low cache rba,on disk rba資料庫恢復過程資料庫
- MySQL通過Binlog恢復刪除的表MySql
- 【Mysql】完全恢復與不完全恢復MySql