5.3 Métodos de respaldo de un SGBD.

 5.3 MÉTODOS DE RESPALDO DE UN SGBD.

La clave de una administración de base de datos es realizar copias de respaldo para ello es posible generarlas periódicamente y conservar una serie de versiones anteriores. Cada copia de respaldo estará identificada por tiempo y fecha y por la última transacción incluida. Una copia de respaldo debe generarse mientras la base de datos está en reposo, ya que las actualizaciones durante el copiado pueden provocar que la copia se inconsistente.





¿Qué es el respaldo?
Existen dos aspectos fundamentales para decidir qué respaldar: la información que hayas generado o que sea importante para ti, como documentos, fotografías o videos, incluyendo el sistema operativo y cualquier programa que se haya instalado.

El primer aspecto limita el proceso de respaldo, mientras que el segundo hace que sea más fácil recuperar el sistema en caso de un fallo completo. Si no estás seguro de qué respaldar, respalda todo. A continuación, tendrás que decidir qué tan seguido respaldar tu información. Lo más común es hacerlo cada hora, diariamente, semanalmente, etc. Para usuarios caseros, los programas de respaldo personal como Time Machine de Apple o Copias de seguridad y restauración de Windows, permitirán fijar un horario automático de respaldo “prográmalo y olvídate”. Otras soluciones ofrecen “protección continua”, en la cual los archivos nuevos o modificados son respaldados inmediatamente tan pronto sean cerrados. Si se pertenece a una organización con muchas computadoras, lo mejor sería definir tu propio calendario. Sería bueno que consideraras cuánta información estás dispuesto a perder en el peor de los casos. Por ejemplo, si se respalda diariamente, puedes perder una jornada de trabajo si tu computadora falla al final del día. Muchas organizaciones programan respaldos diarios fuera de las horas pico para minimizar el impacto la operación normal.

¿Cómo respaldarlo?
En general, existen dos recursos en los que puedes respaldar tu información: medios físicos o almacenamiento en la nube.

Ejemplos de medios físicos incluyen:
* DVD’S.
* dispositivos USB.
* cintas magnéticas o discos duros adicionales.

Evita respaldar en el mismo dispositivo que contiene los archivos originales. Cuando uses medios físicos asegúrate de etiquetarlos, tanto interna (en el nombre del archivo) como externamente (sobre el dispositivo), para que puedas identificar fácilmente fecha y hora del respaldo.

Puedes almacenar el respaldo en un contenedor con llave, a prueba de fuego y de agua, dependiendo del medio que elegiste. Una opción más robusta es almacenar copias de tus respaldos fuera de las instalaciones. Para respaldos personales, puede ser tan simple como almacenarlos en casa de un miembro de la familia o en una caja de seguridad. Las organizaciones quizá deseen contratar un servicio profesional para transportar y almacenar los respaldos de forma segura. Dependiendo de qué tan sensibles sean y dónde se almacenen los respaldos, tal vez convenga cifrarlos.

Muchos de estos problemas se solucionan con respaldos en la nube. Realizar copias de seguridad en la nube es tan sencillo como instalar o configurar una  aplicación en tu computadora. Después de configurar las opciones de respaldo, archivos nuevos y modificados son respaldados automáticamente a través de Internet en servidores del centro de datos del proveedor.

Finalmente, necesitas decidir por cuánto tiempo conservarás tus respaldos. Es probable que los usuarios caseros no necesiten mantenerlos por más de treinta días.

Algunas organizaciones cuentan con políticas o requerimientos legales para resguardar por periodos más largos, así como reglas para la destrucción de respaldos obsoletos. Si estás respaldando información de tu organización, verifica con el grupo de TI, legal o de gestión de registros para estar seguro. Respecto a las opciones de respaldo en la nube, es posible que te cobren con base a la cantidad de datos que respaldes, así que es importante ser cuidadoso de no acumular una gran deuda.

Respaldar tu información es sólo la mitad de la batalla; ahora tienes que asegurarte de que puedes recuperarla fácilmente. Practica regularmente tu proceso de recuperación, tal y como harías en un simulacro de sismo, esto te ayudará a asegurar que todo funcione correctamente en caso de necesitarlo. Comprueba por lo menos una vez al mes que el programa de respaldos está funcionando adecuadamente. Por lo menos trata de recuperar un archivo. Para una prueba más robusta, sobre todo para las organizaciones, considera hacer la recuperación completa del sistema y verifica que sea recuperable. Si no cuentas con hardware externo para la prueba de recuperación completa del sistema, restaura archivos y carpetas importantes en una ubicación diferente y luego verifica si recuperaste y puedes abrir todo.

Métodos de Respaldo.

En mySQL existen varios métodos para la realización de un backup y esto se debe principalmente a que mySQL guarda las tablas como archivos y al tipo de tablas que se esté manejando (InnoDB, MyISAM, ISAM).

Así por ejemplo para la presente práctica se utilizó el tipo de tabla InnoDB y el método de backup utilizado es el que funciona con este tipo de tablas.

InnoDB es una de las tecnologías de almacenamiento que utiliza mySQL, es de codigo abierto. Entre sus características principales estan que soporta transacciones con características ACID (Atomicidad, Consistencia, Aislamiento y Durabilidad), tiene bloque de registros e integridad referencial (cosa que no maneja ISAM, ni myISAM). Esta última es una de sus características más importantes pues una base de datos sin integridad referencial, es nada más un conjunto de datos que no denotan información.

Este tipo de almacenamiento también ofrece una alta fiabilidad y consistencia. El mismo gestiona el control de los datos y no se lo deja al sistema operativo, una de sus desventajas es que no tiene una buena compresión de datos, por lo que ocupa un poco más de espacio que myISAM.

Elementos y Frecuencia de Respaldo.

Normalmente cuando uno plantea que va a respaldar los datos de su PC a una persona en una compañía uno tiene que definir muy bien cuál es la información crítica para la empresa, por ejemplo la música que guarde un empleado en su PC no es crítica para las actividades de la empresa ni lo son las fotos de su última fiesta. En cambio su correo electrónico, proyectos, informes y papeles administrativos si lo suelen ser y tener un respaldo de estos es clave para el funcionamiento de la empresa en caso de cualquier eventualidad.

Normalmente lo datos o información que es respaldada por las empresas es:

* Archivos creados por aplicaciones, como por ejemplo .doc, .odt, .xls, .mdb, .pdf, .ppt entre otros.

* Archivos de correo electrónico

* Directorios telefónicos y de contactos

* Favoritos de los navegadores como Firefox e Internet Explorer

* Base de datos

* Configuraciones de los equipos

* Archivos de CAD, PSD, XCF, etc.

* Imágenes y Fotografías de proyectos

* Configuraciones de servicios


Clasificación de respaldos.

* Copias de Información (Backups)

Estos respaldos son sólo duplicados de archivos que se guardan en "Tape Drives" de alta capacidad. Los archivos que son respaldados pueden variar desde archivos del sistema operativo, bases de datos, hasta archivos de un usuario común. Existen varios tipos de Software que automatizan la ejecución de estos respaldos, pero el funcionamiento básico de estos paquetes depende del denominado archive bit. 

Este archive bit indica un punto de respaldo y puede existir por archivo o al nivel de "Bloque de Información" (típicamente 4096 bytes), esto dependerá tanto del software que sea utilizado para los respaldos así como el archivo que sea respaldado. Este mismo archive bit es activado en los archivos (o bloques) cada vez que estos sean modificados y es mediante este bit que se llevan a cabo los tres tipos de respaldos comúnmente utilizados:

* Respaldo Completo ("Full")

Guarda todos los archivos que sean especificados al tiempo de ejecutarse el respaldo. El archive bit es eliminado de todos los archivos (o bloques), indicando que todos los archivos ya han sido respaldados.

* Respaldo de Incremento ("Incremental")

Cuando se lleva a cabo un Respaldo de Incremento, sólo aquellos archivos que tengan el archive bit serán respaldados; estos archivos (o bloques) son los que han sido modificados después de un Respaldo Completo. Además cada Respaldo de Incremento que se lleve a cabo también eliminará el archive bit de estos archivos (o bloques) respaldados.

* Respaldo Diferencial ("Differential")

Este respaldo es muy similar al "Respaldo de Incremento", la diferencia estriba en que el archivo bit permanece intacto.

Frecuencia de Actualización de la Información

Hay dos puntos importantes en cuanto a la actualización de la información:

* Que tan frecuentemente se actualiza la información.

* Si queremos guardar un histórico de la información o no.

No toda la información se actualiza con la misma frecuencia, hay información que puede durar años sin ser modificada y otra que se actualice constantemente todos los días, es importante definir qué información se actualiza y en qué momento para hacer una política de respaldo más eficiente.

La mayoría de las aplicaciones de respaldos hacen esto automáticamente fijándose en la fecha de modificación del archivo y comparándola con la que tiene en el respaldo.

El otro punto es si queremos hacer un respaldo con históricos o duplicados, en este caso tenemos que indicarle al programa que no queremos que nos borre o sobrescriba ningún archivo y que vaya guardando los archivos con su respectiva fecha y con qué frecuencia queremos hacer el respaldo. 

En caso de que haya información que se pueda sobrescribir o actualizar, se realiza un respaldo incremental donde sólo se actualiza lo que ha cambiado del archivo lo que mejora la eficiencia de nuestro sistema. Esto realmente va a depender del tipo de información y varía de empresa a empresa pero es algo importante que tengamos que tomar en cuenta ya que toda la información no es igual.


Comandos para Respaldo de Datos.

A continuación vamos a exponer los pasos y comandos para realizar la replicación de una base de datos en un único servidor esclavo. Si quisiéramos configurar más esclavos, los pasos a realizar serían los mismos sobre cada uno de los esclavos.

1. Creamos un usuario MySQL en el servidor maestro con privilegios de replicación.

2. El servidor esclavo se autentificará frente al servidor maestro como un usuario normal.

3. Para crear el usuario debemos ejecutar desde la consola de comandos de mysql las siguientes sentencias SQL:

CREATE USER '<replication_user>'@'<slave_address>' IDENTIFIED BY '<replication_user_password>'
GRANT REPLICATION SLAVE ON *.* TO '<replication_user>'@'<slave_address>'

4. Con la sentencia anterior el usuario sólo tendría permiso de acceso desde la máquina <slave_address>, en caso de no requerir esta medida de seguridad puedes sustituir el comodín % por el parámetro <slave_address>.


Configuración del Servidor Maestro

1. Deberemos agregar las siguientes líneas al final del archivo de configuración del servidor MySQL, por defecto: <MySQL_HOME>/my.ini

2. Identificador único del servidor MySQL dentro de todos los servidores implicados en la replicación. Server – id = 1

3. Al especificar el parámetro log-bin estamos activando el log binario.

4. No especificamos un valor para el parámetro de configuración (por defecto será <nombre_maquina > - bin).

5. El log binario sólo tendrá las actualizaciones realizadas sobre la base de datos "bd_autentia".

6. Si además quisiéramos replicar otras bases de datos, duplicaríamos este parámetro para cada base de datos.

Binlog – do – db = bd_autentia 


Configuración del Servidor Esclavo

1. Deberemos agregar las siguientes líneas al final del archivo de configuración del servidor MySQL, por defecto: <MySQL_HOME>/my.ini

2. Identificador único del servidor MySQL dentro de todos los servidores implicados en la replicación. Server – id = 2

3. Nombre del archivo binario que almacena las instrucciones pendientes de ejecutar, por defecto: <host_name> - relay - bin.index

Relay – log =

4. Nombre o dirección IP del maestro.

Master – host = <master_address>

5. El esclavo se conecta a través de un usuario al maestro. Identificador del usuario.

Master – user = <replication_user>

6. El esclavo se conecta a través de un usuario al maestro. Contraseña del usuario.

Master – password = <replication_user_password>

7. Número de segundos que esperará el esclavo para reintentar conectarse al maestro en caso de una pérdida de conexión.

Master – connect – retry = 50

8. Número de reintentos de reconexión

Master – retry – count = 5000

9. Realizamos una copia de seguridad de la base de datos del maestro sobre el servidor esclavo. 

Desde la consola ejecutamos los siguientes comandos:

[Maestro]: <MYSQL_HOME>/bin/mysql -u root –password = <contraseña> -e "FLUSH TABLES WITH READ LOCK"

Para limpiar las caches y bloquear el acceso de cualquier aplicación a la base de datos. 

[Maestro]: <MYSQL_HOME>/bin/mysqldump --u root –password = <contraseña> --opt bd_autentia > backup.sql

Realizamos una copia completa de la base de datos en el archivo backup.sql.

[Esclavo]: <MYSQL_HOME>/bin/mysql --user=root –password = <contraseña> bd_autentia < backup.sql

Para Restaurar la Copia de Seguridad en el Esclavo.

[Esclavo]: <MYSQL_HOME>/bin/mysqladmin -u root –password = <contraseña> shutdown

Detenemos el Servidor Esclavo.

[Maestro]: <MYSQL_HOME>/bin/mysqladmin -u root –password = <contraseña> shutdown

Detenemos el servidor maestro (Se desbloquearán las tablas de las bases de datos previamente bloqueadas).

[Esclavo]: <MYSQL_HOME>/bin/mysqld-nt –defaults file="<MYSQL_HOME>\my.ini" MySQL

Iniciamos el Servidor, el cual Tomará la Nueva Configuración:

[Maestro]: <MYSQL_HOME>/bin/mysqld-nt --defaults-file="<MYSQL_HOME>\my.ini" MySQL

Comentarios