/tmp/full.sql 通過根蹤可以看到:8 Connect root@localhost o..."/>
溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysqldump備份時加single-transaction會不會加鎖

發(fā)布時間:2020-08-16 22:05:24 來源:ITPUB博客 閱讀:565 作者:psufnxk2000 欄目:MySQL數(shù)據(jù)庫

mysqldump --all-databases --master-data=2 --single-transaction --quick -R --events -uroot > /tmp/full.sql
通過根蹤可以看到:
8 Connect root@localhost on
8 Query /*!40100 SET @@SQL_MODE='' */
8 Query /*!40103 SET TIME_ZONE='+00:00' */
8 Query FLUSH /*!40101 LOCAL */ TABLES
8 Query FLUSH TABLES WITH READ LOCK
8 Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
8 Query START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */
8 Query SHOW VARIABLES LIKE 'gtid\_mode'
8 Query SHOW MASTER STATUS
8 Query UNLOCK TABLES
從紅色部分可以看出,還是會加鎖的,在這個過程中,別的session同樣不能進行dml, 只是加鎖的時間很短。
使用single-transaction時要求:
1 只對支持事務的存儲引擎有效果
2 不能執(zhí)行ddl操作,因為 ddl操作會改變字典表,而字典表多數(shù)是myisam的
3 事務隔離級別為 RR

mysqldump備份時,加和不加single-transaction的區(qū)別:
通過打開general_log可以看到過程:
1 加single-transaction時,是通過START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */的方式來實現(xiàn)的。
  里面同時有很多savepoint,
2 不加single-trsnsaction是通過在整個過程中鎖表實現(xiàn)數(shù)據(jù)一致性的。
左圖為加single-transaction,右圖未加:

mysqldump備份時加single-transaction會不會加鎖

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI