04 agosto 2021

5.3 Metodos de respaldo de un SGBD

 UNIDAD 5 :: Administracion Bases de Datos

5.3.1  ¿Qué es?

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 código abierto. Entre sus características principales están 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 la data 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

 

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.

 

5.3.2  Comandos para Respaldo de Datos

Topicos de Bases de Datos: Unidad IV. Esquemas de seguridad

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>.

 

5.3.3  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).

Log – 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

 

5.3.4  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

No hay comentarios.:

Publicar un comentario