
Um script de shell está despejando uma mysql
tabela, mas antes de despejar a tabela, quero verificar se essa tabela é usada por algum outro aplicativo. Nesse caso, quero esperar e entrar em um loop até que o aplicativo pare de carregar a tabela e continuar depois mysqdump
que terminar.
Responder1
Você precisa usar o comando,
SHOW OPEN TABLES
Experimente no meu sistema
Executei o comando e esta é a saída inicial que obtive.
"Database" "Table" "In_use" "Name_locked"
db_name "table1" "0" "0"
db_name "table2" "0" "0"
Agora, executei uma SELECT
consulta em uma tabela ( table1
) que tinha cerca de 2 milhões de registros. Abri outra conexão mysql e executei a consulta que mencionei. A saída que obtive é,
"Database" "Table" "In_use" "Name_locked"
db_name "table1" "1" "0"
db_name "table2" "0" "0"
Portanto, pela saída acima, é evidente que a In_use
coluna especifica que a tabela está sendo usada no momento.