我正在編寫一個腳本來對 AWS 上的 EBS 磁碟區進行快照。其中一卷包含 mysql 資料庫的資料。我知道我需要在啟動快照時以某種方式停止將資料寫入資料庫,以便資料保持一致,但我無法獲得資料庫上所有表的鎖定。
使用沒有表鎖的 xfs_freeze 是否足以實現一致的解決方案?
泰
答案1
不,因為 mysql 自己的緩衝區中可能仍然有數據,而檔案系統不可能知道這些數據。
正確的方法是“用讀鎖定刷新表”,然後建立檔案系統快照,之後您可以立即再次釋放鎖定。
為什麼不能獲得鎖?
我正在編寫一個腳本來對 AWS 上的 EBS 磁碟區進行快照。其中一卷包含 mysql 資料庫的資料。我知道我需要在啟動快照時以某種方式停止將資料寫入資料庫,以便資料保持一致,但我無法獲得資料庫上所有表的鎖定。
使用沒有表鎖的 xfs_freeze 是否足以實現一致的解決方案?
泰
不,因為 mysql 自己的緩衝區中可能仍然有數據,而檔案系統不可能知道這些數據。
正確的方法是“用讀鎖定刷新表”,然後建立檔案系統快照,之後您可以立即再次釋放鎖定。
為什麼不能獲得鎖?