mysqldump 导致死锁
时间: 2023-09-22 22:10:39 浏览: 214
mysqldump导致的死锁是由于以下原因引起的。当mysqldump往管道写入数据时,如果管道缓冲区已满,就无法继续写入,这导致mysqldump进程被阻塞。同时,mysql进程由于无法获取表锁,也无法及时从管道读取数据。这样,mysql进程和mysqldump进程互相阻塞,称为"假死锁"。需要注意的是,mysql进程阻塞是因为需要的锁被mysqldump进程占用,而mysqldump进程阻塞是因为IO问题,而不是因为需要的锁被mysql占用。具体来说,mysql进程在执行DDL操作时,尝试获取被mysqldump占用的表的元数据锁,但由于获取失败而被阻塞。此时,mysqldump还在继续往管道写数据,直到管道缓冲区满了,无法继续写入,也被阻塞在IO上。因此,导致了mysql进程和mysqldump进程互相阻塞的死锁现象。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [dump会卡住mysql吗,mysqldump | mysql 跨库导数据“假死锁“现象浅析](https://blog.csdn.net/weixin_35895056/article/details/115957006)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文