mysqldump procedimentos armazenados sem tabelas de travamento

4

Eu estou tentando criar um dump de um banco de dados mysql armazenado procedimentos e 'formas' de tabela sem bloquear nenhuma linha.

mysqldump -uread_only -p --routines -d --skip-add-locks the_db_name

Isso não funciona porque não tenho permissão para bloquear a tabela. Eu não deveria precisar, pois não quero copiar os dados em si. Os procedimentos armazenados só mudam a cada ano, então eu teria o azar de pegar um conflito!

Muito obrigado.

    
por Chris Huang-Leaver 04.01.2012 / 18:10

2 respostas

4

mysqldump --skip-lock-tables 

cara-palma bem no topo da página do manual

    
por 04.01.2012 / 18:21
3

Por favor, tenha em mente que você tem que fazer isso porque Stored Procedures (SP) vive em mysql.proc. Essa é uma tabela MyISAM. SELECTs contra mysql.proc criam um bloqueio implícito. Outros bancos de dados podem ter SPs que precisam ser alterados (possibilidade pequena, mas possível, no entanto).

Para garantir que nenhum atributo sobre qualquer SP seja alterado, um bloqueio explícito é emitido contra o mysql.proc. Fazer --skip-lock-tables é aceitável, desde que você saiba que nenhum outro SP está sendo alterado.

    
por 04.01.2012 / 20:11

Tags