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
列指定当前正在使用该表。