¿Es seguro mysql volcar una sección de datos faltantes para volver a importarlos con mis indicadores?

¿Es seguro mysql volcar una sección de datos faltantes para volver a importarlos con mis indicadores?

Digamos que en una base de datos de prueba se borraron los datos de un año. Obtuve las dos identificaciones para los datos en un año como mínimo y los datos del otro como muy tarde y, por lo tanto, una variedad de lo que falta aquí. Mi pregunta; ¿Existe algún peligro al utilizar el siguiente comando de la instancia completa de la base de datos para obtener un volcado funcional que pueda usarse para reparar la base de datos con la información que falta? El comando:

mysqldump -t --insert-ignore --skip-opt --single-transaction --quick --where="id<156789339" -w"id>124054297" -u root -p database table > partial.sql

Y esto para importar después de comprimirlo/moverlo:

zcat partial.sql.gz | mysql -u root -p database table

Puede haber una advertencia que vale la pena mencionar: los datos provienen de mysql 5.5 (percona) mientras se importan a una instancia de mysql 5.1, aunque creo que no conozco problemas de compatibilidad que puedan surgir de esto.

Entiendo -tque es para evitar crear CREATE TABLEdeclaraciones ( --no-create-info), --insert-ignoreen caso de que mi rango se superponga, por lo que ignora si esa identificación ya existe, y --skip-optpara asegurarme de que no haga un montón de cosas que estropearían las cosas al importar ( --add-drop-tab, --add-locks, --create-options, --disable-keys, --extended-insert, --lock-tables, --quick, and --set-charsetsegún la página de manual). para mysqldump). Sólo quiero estar seguro de que esto es todo lo que necesito en la exportación y si tal vez me falta algo en la importación antes de que se cometan posibles errores.

Respuesta1

Probablemente eso estará bien. Hay algunos casos especiales en los que podría fallar.

  • Hay CLAVE EXTRANJERA en su base de datos que apunta a su tabla usando la declaración ON DELETE CASCADE, en cuyo caso perdió otros datos como consecuencia de la eliminación anterior y también debe buscar y copiar esos datos. Si su base de datos usa MYISAM, no tiene claves externas, por lo que está a salvo.

  • Está utilizando funciones especiales que no son compatibles con la versión anterior, por ejemplo. Índices de TEXTO COMPLETO. Como dijiste que es una base de datos de prueba, supongo que el modelo es idéntico. En ese caso no debería haber ningún problema.

  • Estas usando diferentescodificación/colaciónen las dos bases de datos y tiene campos de texto no ASCII (localizados) en la tabla. De nuevo, si el modelo es el mismo, no debería haber problema. (Si su tabla no tiene una definición de codificación explícita y la codificación predeterminada en los servidores MySQLdifierees posible que tengas un problema, pero no es probable).

Si está utilizando INNODB, es posible que desee ejecutar su volcado completo en una TRANSACCIÓN (entre BEGIN; y COMMIT;)

información relacionada