sql >> Base de Datos >  >> RDS >> Mysql

concurrencia mysqldump

Bueno, eso no es seguro, de Manual de Mysql :

Esta opción envía una instrucción START TRANSACTIONSQL al servidor antes de volcar los datos. Es útil solo con tablas transaccionales como InnoDB y BDB, porque luego vuelca el estado consistente de la base de datos en el momento en que se emitió BEGIN sin bloquear ninguna aplicación.

Al usar esta opción, debe tener en cuenta que solo las tablas de InnoDB se vuelcan en un estado consistente. Por ejemplo, cualquier tabla MyISAM o MEMORY volcada al usar esta opción aún puede cambiar de estado.

Mientras se está procesando un volcado de transacción única, para garantizar un archivo de volcado válido (contenido de tabla correcto y coordenadas de registro binario), ninguna otra conexión debe usar las siguientes instrucciones:ALTER TABLE, CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATETABLE. Una lectura coherente no está aislada de esas instrucciones, por lo que su uso en una tabla que se va a volcar puede hacer que el SELECT que realiza mysqldump para recuperar el contenido de la tabla obtenga contenido incorrecto o falle.

La opción --single-transaction y la opción --lock-tables se excluyen mutuamente porque LOCK TABLES hace que cualquier transacción pendiente se confirme implícitamente.

Esta opción no es compatible con tablas MySQLCluster; no se puede garantizar que los resultados sean consistentes debido al hecho de que el motor de almacenamiento NDBCLUSTER solo admite el nivel de aislamiento de transacciones READ_COMMITTED. Siempre debe usar NDBbackup and restore en su lugar.

Para volcar tablas grandes, debe combinar la opción --single-transaction con --quick.

Si desea hacer una copia de seguridad/mover su base de datos en vivo, debe considerar Replicación MySQL