
Скрипт оболочки делает дамп для mysql
таблицы, но перед дампом таблицы я хочу проверить, используется ли эта таблица каким-либо другим приложением. Если да, я хочу подождать и войти в цикл, пока приложение не прекратит загрузку таблицы, и продолжить после mysqdump
его завершения.
решение1
Вам нужно использовать команду,
SHOW OPEN TABLES
Эксперимент в моей системе
Я выполнил команду, и вот что я получил в результате.
"Database" "Table" "In_use" "Name_locked"
db_name "table1" "0" "0"
db_name "table2" "0" "0"
Теперь я выполнил SELECT
запрос к таблице ( table1
), которая содержала около 2 миллионов записей. Я открыл еще одно соединение mysql и выполнил запрос, о котором я упомянул. Вывод, который я получил, такой:
"Database" "Table" "In_use" "Name_locked"
db_name "table1" "1" "0"
db_name "table2" "0" "0"
Таким образом, из приведенного выше вывода очевидно, что столбец In_use
указывает на то, что таблица в данный момент используется.