es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Es mala práctica restaurar bases de datos MySQL que ya han sido restauradas pero son más antiguas?

Tengo una situación en la que restauré bases de datos (con la opción –all-databases) hace 2 semanas, pero ahora necesito datos más recientes en algunas bases de datos. Mi pregunta es si puedo simplemente hacer un mysqldump < nuevorespaldo con las bases de datos ya instaladas o si necesito eliminar todos los datos. Por favor, indícame la forma más sencilla o rápida de restaurar una nueva instancia.

En el sqldump tengo sentencias como CREATE DATABASE /*!32312 IF NOT EXISTS*/

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Si ya has restaurado bases de datos con la opción --all-databases hace 2 semanas, y ahora necesitas restaurar datos más recientes en algunas bases de datos específicas, tienes dos opciones:

    1. Restaurar solo las bases de datos específicas que necesitas:

    Puedes usar la opción --databases para restaurar solo las bases de datos que necesitas de tu nuevo respaldo. Por ejemplo:

    mysqldump --databases db1 db2 > newbackup.sql
    

    Esto creará un nuevo archivo SQL llamado newbackup.sql que contendrá solo los datos de db1 y db2. Luego puedes restaurar esta copia de respaldo usando el comando mysql:

    mysql < newbackup.sql
    

    Esto reemplazará los datos en db1 y db2 con los datos de tu nuevo respaldo, sin afectar otras bases de datos.

    1. Reemplazar toda la instancia de MySQL con el nuevo respaldo:

    Si deseas reemplazar toda la instancia de MySQL con los datos de tu nuevo respaldo, primero deberás eliminar todos los datos. Puedes hacer esto eliminando todas las bases de datos usando el comando mysql:

    mysql -e "drop database if exists db1; drop database if exists db2; drop database if exists db3; ..."
    

    Reemplaza db1, db2, db3, etc. con los nombres de todas las bases de datos que deseas eliminar. Ten cuidado con este comando, ya que eliminará permanentemente todos los datos de las bases de datos especificadas.

    Después de haber eliminado todos los datos, puedes restaurar el nuevo respaldo usando el comando mysql:

    mysql < newbackup.sql
    

    Esto creará todas las bases de datos y tablas necesarias, e importará los datos de tu nuevo respaldo.

    Nota: Al utilizar mysqldump, la instrucción /*!32312 IF NOT EXISTS*/ le indica a MySQL que cree la base de datos si aún no existe. Esto es útil al restaurar respaldos en una nueva instancia, ya que asegura que se creen todas las bases de datos requeridas antes de importar los datos.

Comments are closed.