
シェル スクリプトは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
列はテーブルが現在使用中であることを示していることがわかります。