Clase 21
Backup y Restauración
FUNDAMENTOS DE LAS COPIAS DE
SEGURIDAD
En el mundo digital, algo que nunca puede pasarse por alto es resguardar la información o datos con los cuales trabajamos
a diario.
Más allá de este resguardo de archivos y/o documentos, las bases de datos también son contempladas como una fuente de
información importante y por ello deben incluirse en una rutina de copia de seguridad.
FUNDAMENTOS DE LAS COPIAS DE SEGURIDAD
Si buscamos en Internet, lo primero que encontramos es que una copia de seguridad, respaldo, copia de respaldo o copia
de reserva (en inglés: backup and data backup) es, en las ciencias de la información e informática, una copia de los datos
originales que se realiza con el fin de disponer de un medio para recuperarlos en caso de una falla o pérdida.
BACKUPS EN MYSQL
MySQL incluye la herramienta mysqldump (se incluye en la instalación ) dentro del motor de base de datos para
gestionar las copias de seguridad. Hicimos mención de la misma en la Clase 02.
Debemos utilizarla a través de la Línea de Comandos, o Terminal,(consola) de nuestro sistema operativo.
Mysql Workbench cuenta también con un apartado denominado Administration, donde tenemos un set de
herramientas varias.
Dentro de este panel encontramos las opciones Data Export y Data Import/Restore, que nos ayudarán a realizar todas
estas tareas.
DATA EXPORT
1) Abre el Mysql Workbench e ingresa al apartado Administration > Data Export.
Seleccionamos schema. Nuestro Backup es completo o parcial? Hay tablas que no tienen cambios o son esporádicos. Se
hace sobre todo de las tablas de hecho… con mas mod.
2) En el panel principal, tenemos la opción de seleccionar uno o más esquemas de base de datos a incluir dentro de
la copia de seguridad. Esto lo hacemos simplemente tildando el casillero al lado de cada base de datos allí listada.
3) Al seleccionar una base de datos, podremos visualizar en el panel derecho el listado de Tablas y Vistas de la
misma. A su vez, podemos seleccionar todas las tablas y/o vistas que consideremos necesario incluir en el backup;
tildando y/o destildando cada casillero lateral
4) Los botones inferiores a los paneles nos permiten:
Seleccionar las vistas, seleccionar tablas, deseleccionar todo, refrescar su contenido (por si algo cambió por afuera), y
seleccionar qué información vamos a respaldar.
Seleccionar vistas, tablas deseleccionar todo./ dump… selector de la info a respaldar…
BACKUP COMPLETO O PARCIAL
En casi todos los casos de DB existen tablas o vistas que no cambian con el tiempo, por lo cual, podemos evitar incluirlas
en el backup periódico de la base de datos.
De esta forma ahorramos espacio y acortamos significativamente los tiempos de la copia de respaldo.
TIPO DE INFORMACIÓN A RESPALDAR
Dump Structure and Data: Realiza una copia de seguridad de los datos, y de la estructura de la base de datos. Estructura
respaldo de los create table…
Dump Data Only: Realiza una copia de seguridad de los datos de la base de datos.
Dump Structure Only: Realiza una copia de seguridad de la estructura de la base de datos. (códigos de los objetos que
creamos)
¿CUÁNDO UTILIZAR UNA U OTRA OPCIÓN DE RESPALDO?
DUMP DATA ONLY
Si la base de datos tiene un uso constante y se mantiene la estructura de sus tablas; puedes elegir esta opción que te
resguarda solo los datos almacenados en ésta.
Si es una base de datos de mucha concurrencia, la opción más apropiada de backup de datos será todos los días.
DUMP STRUCTURE ONLY
Esta opción se utiliza cuando implementas nuevas tablas, vistas, funciones y procedimientos almacenados, o cuando
cambias la estructura de alguno de los objetos de la DB.
Su uso es esporádico; cuando hay modificaciones en la estructura de la DB. Si agrego una columna, una nueva tabla,
genero una nueva vista, SP, lógica dentro de una función… hago una backup de la estructura de los objetos.
DUMP DATA AND STRUCTURE
Si la base de datos es de prueba/testing, o una base de datos personal donde se realiza poca interacción con la información
y/o modificación de su estructura, puedes pensar en utilizar este mecanismo de backup.
Su uso también puede ser esporádico, ya que es el más lento de todos, porque resguarda toda la información.
OPCIONES DE EXPORTACIÓN
OBJETOSA EXPORTAR
Dentro de las opciones a exportar, también puedes especificar si quieres incluir en el backup a:
● Stored Procedures y Funciones
● Eventos
● Triggers
Debes tildar cada opción que desees incluir en la copia de seguridad.
Finalmente queda elegir el tipo de backup a realizar. Forma que quiero almacenar.
Entre las opciones tenemos:
👉Export to Dump Project Folder, que vuelca a una carpeta de proyecto la o las bases de datos.
👉Export to Self-Contained File, que genera un archivo .sql de la información seleccionada.
RUTA DONDE ALOJO EL BACKUP con la fecha que se realiza el mismo.
EXPORT TO DUMP PROJECT FOLDER
Está opción te permite seleccionar la ruta hacia la carpeta donde se guardará el backup. Cada objeto Tabla se exportará
en un archivo separado.
Esto garantiza que, al restaurar, podrás seleccionar cuál o cuáles tabla(s) recuperar, aunque hará lento este último proceso.
Desde el botón [...] podrás abrir la ventana de diálogo Open, y seleccionar/crear una carpeta para el backup, en el lugar
que más conveniente sea.
Si la base de datos se encuentra en un servidor; recomendamos realizar la copia de datos local y luego trasladar dicha
carpeta a un disco de red, disco externo, o cualquier otro medio de almacenamiento seguro.
El backup local permitirá reducir los tiempos de este proceso.
También recomendamos que tengas un cúmulo de backups y no solamente el último.
Puedes necesitar en algún momento volver a ver objetos viejos de la base de datos, que ya en la última versión de ésta no
los tengas.
A cada carpeta donde realices un nuevo backup, nómbrala con la fecha del día, y hasta puedes incluir la hora de
realización del backup.
Esto te facilitará ubicar rápidamente un backup antiguo en un disco que almacena el historial de backups.
EXPORT TO SELF-CONTAINED FILE
Está otra opción de backup, genera un archivo del tipo .sql. BACKUP EN UN MISMO ARCHIVO sql
Igual a los que hemos trabajado a lo largo de este curso.
Permite también seleccionar la carpeta donde se almacenará, y especificar el nombre del archivo de backup. Es importante
que figure la fecha en el nombre del archivo para saber el momento al que corresponde el esquema.
Esta otra opción de backup permite tildar Include Create Schema, para que se genere el esquema de estructura de la
base de datos.
Si no tildas la opción, se guardarán solamente los datos almacenados.
Ajustados todos los parámetros de la copia de seguridad, queda solo pulsar el botón Start Export para que inicie el
proceso.
Mysql Workbench mostrará la pestaña Export Progress para ver el LOG del mismo.
CUAL DE LAS DOS OPCIONES?
Un archivo por tabla o la segunda opción sql todo junto… (x orden es mejor, reduce la funcionalidad de hacer la
restauración parcial) tener en cuenta!!
PROCESO DE BACKUP
A través de la ProgressBar y ventana de LOG, puedes seguir el progreso del backup.
El tiempo de demora es acorde al tamaño de la información a respaldar.
Dentro del LOG encontraremos un mensaje similar a este, cuando el backup a llegado a su fin.
Nos queda consultar la carpeta seleccionada para verificar que el o los archivo(s) haya(n) sido creado(s).
Puedes abrir el archivo con Mysql Workbench o tu Editor de código favorito, para ver el contenido que generó el
mecanismo de backup.
DATA IMPORT/RESTORE
Ingresa ahora al apartado.
Administration > Data Import/Restore. Te encontrarás con una pantalla similar a Data Export.
El proceso que debemos realizar ahora, es igual pero invertido, respecto a lo visto para realizar copias de seguridad.
Si tu backup fue a través del método Dump Project Folder, debes tildar esta opción y elegir la carpeta desde donde
restaurarás el mismo.
Si buscas recuperar un backup desde el método Self-Contained File, debes tildar esta otra opción y elegir el
archivo .sql que contiene el backup de la base de datos.
SELECCIONAR DESTINO
Selecciona el esquema de destino del backup a recuperar.
En el caso que desees recuperar información parcial, puedes recuperar el backup a un nuevo Schema y, luego, trasladar
manualmente la información que necesitas.
INICIAR PROCESO DE IMPORTACIÓN
Finalmente queda seleccionar si recuperarás datos y estructura, estructura o datos solamente. Luego de esta selección,
queda pulsar el botón [Start Import], para iniciar el proceso de recuperación de la información.
Luego, se comienza la importación seleccionando el botón Start Import, y a través de la ProgressBar y ventana de
LOG, puedes seguir el progreso del import/restore. El tiempo de demora es acorde al tamaño de la información a
recuperar.
TIEMPOS DE RECUPERACIÓN DE LA INFORMACIÓN
Los tiempos de recuperación pueden ser muy diferentes en cada caso, dependiendo del procesador, RAM, velocidad
del disco de almacenamiento, tamaño del archivo de base de datos, etcétera.
En este último caso, a mayor tamaño de la base de datos, mayor será el tiempo estimado en recuperar la información
respaldada.
Recomendamos, para recuperar datos, que el motor de base de datos esté dedicado a este proceso.
Evita que la base de datos esté brindando acceso a otros usuarios y/o aplicaciones.
El escenario ideal es poner el servidor en mantenimiento, así podrás acortar los tiempos de recuperación de la
información.
BACKUP y RECUPERACIÓN VÍA LÍNEA DE
COMANDOS
REALIZAR UN BACKUP VÍA LÍNEA DE COMANDOS
La herramienta para realizar backup desde la línea de comandos es mysqldump.
La estructura del comando que debes escribir, es la siguiente:
mysqldump -u root -p MiContraseña [baseDeDatos] > archivo_backup.sql
mysqldump [baseDeDatos] > archivo_backup.sql
En sistemas *nix debes usar el usuario root, y su password asociado.
En sistemas Windows, no se suele requerir usuario y password.
Dentro del archivo de destino, puedes especificar toda la ruta o path completo donde deseas guardar el backup en
cuestión.
Puedes personalizar el backup, a través de los siguientes parámetros opcionales …
RESTAURAR UN BACKUP VÍA LÍNEA DE COMANDOS
Para restaurar un backup utilizaremos mysql en lugar de mysqldump
La estructura del comando que debes escribir, es la siguiente:
Linux: mysql -u root -p MiContraseña
Windows: mysql
RESTAURAR VÍA LÍNEA DE COMANDOS
Deberás primero eliminar la base de datos, previo a recuperarla.
Esto lo realizamos con la sentencia
DROP DATABASE;
> DROP DATABASE [baseDeDatos]
Query OK, 24 rows affected (0.35 sec)
En el siguiente paso, debes crear nuevamente el esquema de la base de datos, utilizando la sentencia
CREATE DATABASE;
> CREATE DATABASE [baseDeDatos]
Query OK, 1 row affected (0.01 sec)
Finalmente, sal de la aplicación mysql, y vuelve a escribir el acceso a la misma, agregando: la DB, el símbolo <, y el
nombre del archivo desde donde realizarás la restauración de datos.
mysqldump -u root -p MiContraseña [baseDeDatos] < archivo_backup.sql
mysqldump [baseDeDatos] < archivo_backup.sql