Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

simultaneidade mysqldump


Bem, isso não é certo, de Manual do MySQL :

Esta opção envia uma instrução START TRANSACTIONSQL ao servidor antes de descarregar os dados. É útil apenas com tabelas transacionais como InnoDB e BDB, porque então ele despeja o estado consistente do banco de dados no momento em que BEGIN foi emitido sem bloquear nenhum aplicativo.

Ao usar esta opção, você deve ter em mente que apenas as tabelas InnoDB são despejadas em um estado consistente. Por exemplo, qualquer tabela MyISAM ou MEMORY descartada ao usar esta opção ainda pode mudar de estado.

Enquanto um dump de --single-transaction estiver em processo, para garantir um arquivo dump válido (conteúdo de tabela correto e coordenadas de log binário), nenhuma outra conexão deve usar as seguintes instruções:ALTER TABLE, CREATE TABLE,DROP TABLE, RENAME TABLE, TRUNCATETABLE. Uma leitura consistente não é isolada dessas instruções, portanto, usá-las em uma tabela a ser despejada pode fazer com que o SELECT que é executado pelo mysqldump para recuperar o conteúdo da tabela para obter conteúdo incorreto ou falhar.

A opção --single-transaction e a opção --lock-tables são mutuamente exclusivas porque LOCK TABLES faz com que quaisquer transações pendentes sejam confirmadas implicitamente.

Esta opção não é suportada por tabelas MySQLCluster; os resultados não podem ser garantidos como consistentes devido ao fato de que o mecanismo de armazenamento NDBCLUSTER suporta apenas o nível de isolamento de transação READ_COMMITTED. Você deve sempre usar NDBbackup e restaurar em vez disso.

Para despejar tabelas grandes, você deve combinar a opção --single-transaction com --quick.

Se você deseja fazer backup/mover seu banco de dados ativo, considere Replicação MySQL