
Un script de shell está realizando un volcado de una mysql
tabla, pero antes de volcar la tabla quiero verificar si esta tabla es utilizada por alguna otra aplicación. Si es así, quiero esperar y entrar en un bucle hasta que la aplicación deje de cargar la tabla y continuar con ella mysqdump
después de que finalice.
Respuesta1
Necesitas usar el comando,
SHOW OPEN TABLES
Experimentar en mi sistema
Ejecuté el comando y este es el resultado inicial que obtuve.
"Database" "Table" "In_use" "Name_locked"
db_name "table1" "0" "0"
db_name "table2" "0" "0"
Ahora ejecuté una SELECT
consulta en una tabla ( table1
) que tenía alrededor de 2 millones de registros. Abrí otra conexión mysql y ejecuté la consulta que había mencionado. El resultado que obtuve es,
"Database" "Table" "In_use" "Name_locked"
db_name "table1" "1" "0"
db_name "table2" "0" "0"
Entonces, del resultado anterior, es evidente que la In_use
columna especifica que la tabla se está utilizando actualmente.