8.1 La necesidad de una copia de seguridad de la base de datos

Ha aprendido a crear esquemas de base de datos, tablas, verlos. También llene estas tablas con datos y modifíquelos. Ahora necesita aprender lo más importante: hacer copias de seguridad.

La base de datos es muy fácil de romper. El hecho es que la base de datos suele estar en un estado de cambio constante: algo se guarda y se agrega constantemente.

Imagina que tienes una pestaña abierta en tu navegador y no quieres que se pierda la información que contiene. Acepte que si simplemente decide no cerrarlo nunca, entonces esta no será la mejor opción. Después de todo, el navegador puede congelarse, puede cerrarse por accidente, puede perder la luz o quemar su computadora. Windows puede instalar otra actualización, pero nunca se sabe qué.

Entonces, su base de datos es la misma pestaña. Y es solo cuestión de tiempo que algo salga mal durante la próxima escritura en el disco. Por lo tanto, definitivamente necesita aprender a hacer copias de seguridad.

Hacer copias de seguridad es como cepillarse los dientes, las empresas normales hacen una copia de seguridad del contenido de cada base de datos todas las noches. Y dado que los discos duros también pueden fallar y hay incendios en los centros de datos, las copias de seguridad generalmente se almacenan en 2-3 copias en centros de datos en diferentes partes del mundo.

Hay varios enfoques para crear una copia de seguridad.

Archivos de respaldo. Dado que todos los datos de la base de datos se almacenan en el disco como un conjunto de archivos , la forma más fácil es simplemente copiar estos archivos en algún lugar. O primero archívelo en un archivo y luego cópielo en algún lugar.

Esta es la forma más rápida de hacer una copia de seguridad, pero requiere que los archivos no cambien mientras se copian/archivan. La base de datos debe congelarse mientras se crea la copia; de lo contrario, la copia quedará torcida. Después de todo, puede haber una situación en la que algunos de los nuevos datos se registren en la base de datos y otros aún no.

Copia de seguridad en forma de consultas SQL . Como ya sabe, agregar y cambiar datos en la base de datos del servidor SQL siempre se representa como consultas SQL. Por lo tanto, puede pedirle al servidor SQL que guarde el contenido de una tabla o tablas en particular en un archivo como consultas SQL.

Este método es más lento que el anterior, pero puede usarse para transferir datos entre servidores SQL de diferentes fabricantes.

Además, no siempre es necesario guardar todos los datos. A menudo, tiene un montón de servicio o información obsoleta en sus tablas y puede decirle al servidor SQL que no lo guarde.

Además, para las tablas que almacenan algunos eventos con referencia a la hora, simplemente puede seleccionar dichos eventos para el último día y almacenarlos solo.

Varias utilidades . Las empresas están dispuestas a pagar mucho dinero para obtener la garantía de que sus datos permanecerán intactos y seguros. Por lo tanto, varias empresas de TI comenzaron a ofrecer soluciones para todas las ocasiones. Por ejemplo, hay programas que pueden hacer copias de seguridad de bases de datos en forma de archivos y al mismo tiempo no requieren que estos archivos no cambien.

Por ejemplo, puede instalar controladores especiales en el sistema operativo y realizar un seguimiento de cuándo, qué y dónde ha cambiado.

8.2 Copia de seguridad de la base de datos

Workbench es excelente para exportar e importar datos de las bases de datos con las que trabaja. Para hacer esto, solo necesita presionar el elemento del menú: Server-> Data Export. Y verás algo como esto:

Ahora agreguemos alguna explicación:

El orden es este:

  1. Primero, seleccione el esquema o esquemas que se exportarán.
  2. Luego, a la derecha, especificamos las tablas para la copia de seguridad.
  3. A continuación, debemos elegir qué es exactamente lo que exportaremos:
    • solo datos;
    • solo estructura (las tablas estarán, pero vacías);
    • datos y estructura.
  4. Elija cómo guardar los datos:
    • un archivo para cada tabla;
    • un archivo para todas las tablas.
  5. También puede agregar el código de creación del esquema en la parte superior del archivo. Esto es útil cuando se transfieren datos entre diferentes DBMS.

8.3 Copia de seguridad del esquema de la tabla

Hagamos una copia de seguridad solo de los esquemas, sin los datos reales.

Seleccioné Solo estructura de volcado y hice clic en Iniciar exportación.

Y esto es lo que encontré en el archivo que hizo Workbench.

--
-- Table structure for table `user`
--

DROP TABLE IF EXISTS `user`;
/*!40101 SET @saved_cs_client 	= @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `user` (
  `id` int(11) NOT NULL,
  `name` varchar(100) DEFAULT NULL,
  `level` int(11) DEFAULT NULL,
  `created_date` date NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

Así es, este es el esquema de nuestras tablas, si se me permite decirlo de una sola tabla.

8.4 Copia de seguridad de datos

Ahora hagamos una copia de seguridad solo de los datos, pero sin la estructura del esquema.

Seleccionemos Dump Data Only y veamos que nos dan:

Y esto es lo que encontré en el archivo que hizo Workbench.

--
-- Dumping data for table `user`
--

LOCK TABLES `user` WRITE;
/*!40000 ALTER TABLE `user` DISABLE KEYS */;
INSERT INTO `user` VALUES
 	(1,'Ivanov Ivan',40,'2022-05-11'),
 	(2,'Petrov Nikola',1,'2021-05-01'),
 	(3,'Sidroov Vitaly',8,'2022-05-12');
/*!40000 ALTER TABLE `user` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

Sí, muy parecido a la verdad. También vemos un código especial aquí que bloquea la tabla de usuarios. Esto se hace para que simplemente pueda ejecutar este script SQL: contiene todas las instrucciones que permitirán que cualquier servidor SQL restaure correctamente los datos.

8.5 Implementación de una copia de seguridad

Y por último, lo último es restaurar la base de datos desde una copia de seguridad. Esta acción es muy simple pero útil.

Digamos que quiero que todos mis alumnos tengan una base de datos específica para que puedan aprender a escribir consultas en ella. Luego, solo le daré un enlace al archivo que implementa localmente y eso es todo.

E incluso si elimina accidentalmente algunos datos, tablas o incluso el esquema completo, siempre se puede restaurar desde una copia de seguridad.

Para importar datos, debe hacer clic en el elemento del menú Server-> Data Import. Entonces verás esta imagen:

Como en el caso de la exportación, primero se le solicita que seleccione una fuente de datos: un grupo de archivos o todos los datos en un archivo.

Luego, debe seleccionar el esquema en el que se cargarán los datos especificados. Puede seleccionar un esquema existente o crear uno nuevo.

¡Importante! Si su copia de seguridad contiene no solo datos, sino también una descripción de la estructura de la tabla, las tablas se volverán a crear (si ya hay alguna en el esquema de destino).