
shell 腳本正在對mysql
錶進行轉儲,但在轉儲表之前我想檢查該表是否被任何其他應用程式使用。如果是這樣,我想等待並進入循環,直到應用程式停止載入表並在mysqdump
完成後繼續。
答案1
你需要使用指令,
SHOW OPEN TABLES
在我的系統中進行實驗
我運行了該命令,這是我得到的初始輸出。
"Database" "Table" "In_use" "Name_locked"
db_name "table1" "0" "0"
db_name "table2" "0" "0"
現在,我對包含大約 200 萬筆記錄的SELECT
表 ( ) 執行查詢。table1
我打開了另一個 mysql 連接並運行了我提到的查詢。我得到的輸出是
"Database" "Table" "In_use" "Name_locked"
db_name "table1" "1" "0"
db_name "table2" "0" "0"
因此,從上面的輸出來看,很明顯該In_use
列指定目前正在使用該表。