mysql關閉過程

psufnxk2000發表於2015-04-01
mysql關閉過程:
1 開始關閉
如果是客戶端關閉的會,會建立一個shutdown的執行緒,如果是收到一個SIGTERM訊號,那麼他本身就是shutdown執行緒,也有可能建立一個。如果建立執行緒不能成功(例如,記憶體不足),會寫一個錯誤日誌Error: Can't create thread to kill server
2 不再接受新的連線。
3 中止當前的活動連線
終止當前已經連線上的連線,並標記為killed。空連線很快斷掉,正在執行語句的連線,週期性的檢查他們。開啟事務的連線,回滾事務(如果是一個非事務引擎更新或插入多行,可能會部分成功,部分不成功)。 如果是主伺服器,把從服務上的連線當做一般的連線對待。如果是從伺服器,先關閉IO和sql執行緒,再把別的客戶執行緒標記為killed。sql執行緒允許完成當前的語句(避免主從問題)再停止 。如果sql執行緒執行到事務的一半,那麼會接著執行(除非使用kill)。非事務表不能被回滾
4 關閉服務或關閉儲存引擎
flush表快取,並且關閉開啟的表。  每種儲存引擎執行必要的操作,如innodb 會flush buffer pool到檔案上(除非innodb_fast_shutdown=2),寫當前的LSN到表空間,並且中止自己的內部執行緒。對於MYisam 重新整理索引寫
5 服務退出

from 官方文件

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25099483/viewspace-1482159/,如需轉載,請註明出處,否則將追究法律責任。

相關文章