mysqldump備份時加single-transaction會不會加鎖
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 不能執行ddl操作,因為 ddl操作會改變字典表,而字典表多數是myisam的
3 事務隔離級別為 RR
mysqldump備份時,加和不加single-transaction的區別:
通過開啟general_log可以看到過程:
1 加single-transaction時,是通過START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */的方式來實現的。
裡面同時有很多savepoint,
2 不加single-trsnsaction是通過在整個過程中鎖表實現資料一致性的。
左圖為加single-transaction,右圖未加:
轉載請註明源出處
通過根蹤可以看到:
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 不能執行ddl操作,因為 ddl操作會改變字典表,而字典表多數是myisam的
3 事務隔離級別為 RR
mysqldump備份時,加和不加single-transaction的區別:
通過開啟general_log可以看到過程:
1 加single-transaction時,是通過START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */的方式來實現的。
裡面同時有很多savepoint,
2 不加single-trsnsaction是通過在整個過程中鎖表實現資料一致性的。
左圖為加single-transaction,右圖未加:
轉載請註明源出處
QQ 273002188 歡迎一起學習
QQ 群 236941212
oracle,mysql,PG 相互交流
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25099483/viewspace-2121984/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysqldump備份時使用single-transaction會不會加鎖???MySql
- mysqldump單表備份加--single-transaction --master-data=2引數執行過程的內部剖析MySqlAST
- 我為什麼會從程式不喜歡加{}到加{}
- Mysqldump 在備庫進行備份時會阻塞備庫的sql_threadMySqlthread
- mysqldump備份時的資料一致性問題--single-transactionMySql
- 參加招聘會,申請加3分
- mysqldump備份不輸入密碼直接備份MySql密碼
- 當心!使用mysqldump備份可能會讓你欲哭無淚MySql
- InnoDB事務鎖之行鎖-insert加鎖-隱式鎖加鎖原理
- 10g 熱備份命令加強
- For Update 加鎖分析
- mysql加鎖讀MySql
- 參加Google AI 年度峰會有感GoAI
- 【mysqldump】mysqldump及備份恢復示例MySql
- mysqldump備份技巧分享MySql
- MySQLDump的備份方法MySql
- Mysqldump的備份流程MySql
- mysqldump 備份指令碼MySql指令碼
- mysqldump備份指令碼MySql指令碼
- 邏輯備份--mysqldumpMySql
- Redis分散式鎖加鎖案例Redis分散式
- 融合創新引領,浪擎容災備份受邀參加日知錄企業儲存峰會
- windows mysqldump備份指令碼WindowsMySql指令碼
- mysqldump備份原理解析MySql
- mysql 邏輯備份 (mysqldump)MySql
- 記一次排查線上MySQL死鎖過程,不能只會curd,還要知道加鎖原理MySql
- Mysql不鎖表進行MysqldumpMySql
- MySQL修改表結構到底會不會鎖表?MySql
- 參加Python培訓會有前景嗎?Python
- 參加阿里雲北京峰會隨感阿里
- 參加2010IJCNN會議CNN
- mysqldump --single-transaction引數的作用MySql
- 淺談併發加鎖
- InnoDB 事務加鎖分析
- Mysql加鎖與實踐MySql
- MySQL加鎖處理分析MySql
- MySQL 加鎖處理分析MySql
- 【Mongo】mongo分片加複製集的備份恢復Go