martes, 5 de noviembre de 2013

Actividad #24

Espejeo y Replicación
¿Qué es espejeo?
Se conoce como copia espejo (en inglés data mirroring) al procedimiento de protección de datos y de acceso a los mismos en los equipos informáticos implementado en la tecnología de RAID1.
Consiste en la idea básica de tener dos discos duros conectados. Uno es el principal y en el segundo se guarda la copia exacta del principal, almacenando cualquier cambio que se haga en tiempo real en las particiones, directorios, etc, creando imágenes exactas, etc.
De esta forma se consigue tener 2 discos duros idénticos y que permiten, si todo está bien configurado, que ante el fallo del disco principal, el secundario tome el relevo, impidiendo la caída del sistema y la pérdida de los datos almacenados.
En el "mirroring" en una base de datos tenemos un servidor principal/primario que mantiene la copia activa de la base de datos (BD accesible). Otro servidor de espejo que mantiene una copia de la base de datos principal y aplica todas las transacciones enviadas por el Servidor Principal (en el que no se podrá acceder a la BD). Y un servidor testigo/arbitro que permite recuperaciones automáticas ante fallos, monitoriza el servidor principal y el de espejo para en caso de caída cambiar los roles (servidor opcional, no es obligatorio).
Beneficios del espejeo
Además de proporcionar una copia adicional de los datos con el fin de redundancia en caso de fallo de hardware, la duplicación de disco puede permitir que cada disco se acceda por separado para los propósitos de lectura. En determinadas circunstancias esto puede mejorar significativamente el rendimiento ya que el sistema puede elegir para cada lectura que disco puede buscar más rápidamente a los datos requeridos. Esto es especialmente importante cuando hay varias tareas que compiten por los datos en el mismo disco, y el "trashing" (donde el cambio entre tareas ocupa más tiempo que la tarea en sí) se puede reducir. Esta es una consideración importante en las configuraciones de hardware que frecuentemente tienen acceso a los datos en el disco.

En algunas implementaciones, el disco reflejado se puede dividir fuera y se utiliza para la copia de seguridad de datos, permitiendo que el primer disco para permanecer activos. Sin embargo, la fusión de los dos discos se puede requerir un período de sincronización en su caso escribir la actividad I/O ha ocurrido con el disco duplicado.

Creación de espacios de disco con espejo


Una vez preparados los discos, para crear el RAID, y si hemos seguido la misma estructura de mi ejemplo, usaremos las siguientes órdenes, suponiendo que los discos nos los ha identificado como sda, sdb, sdc y sdd:

mdadm --create --level=raid1 --raid-devices=2 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm --create --level=raid5 --raid-devices=4 /dev/sda3 /dev/sdb3 /dev/sdc3 /dev/sdd3
 
La primera orden nos creará un RAID de tipo RAID1 con sólo 2 componentes activos, empleando para ello la primera partición de cada disco. Como le indicamos menos dispositivos de raid (2) que dispositivos físicos, lo que hace es poner los otros dos como spares.

La segunda orden nos creará un RAID5 con la tercera partición de todos los discos indicados. En este caso, el parámetro --raid-devices=4 es superfluo y se podría omitir, ya que si no decimos nada sobreentiende que queremos usar todos los discos.

Recomendaciones

  • Use una copia de seguridad completa muy reciente o una copia de seguridad diferencial reciente de la base de datos principal.
  • Si se programa un trabajo de copia de seguridad de registros para que se ejecute muy a menudo en la base de datos principal, puede que sea necesario deshabilitar el trabajo de copia de seguridad hasta que se haya iniciado la creación de reflejo.
  • Si es posible, la ruta de acceso (incluida la letra de unidad) de la base de datos reflejada debería ser idéntica a la de la base de datos principal.
    Si las rutas de acceso de archivo deben ser diferentes (por ejemplo, si la base de datos principal se encuentra en la unidad 'F:' pero el sistema reflejado no tiene unidad F:), se debe incluir la opción MOVE en RESTORE STATEMENT.
 
 
Ejemplo

Configurar Mirroring en SQL Server


Database Mirroring aparece en la versión 2005 y es la evolución de Log Shipping. Tal como su nombre lo indica, sirve para tener una base de datos “espejada” en otro servidor. Puede trabajar de 3 Formas:
modos de funcionamiento | Fuente: guillesql.es
modos de funcionamiento | Fuente: guillesql.es
De foma más simple, la principal diferencia entre la configuración síncrona o asíncrona es:
  • De modo síncrono, el servidor principal espera a que las transacciones hagan commit en el servidor espejo para poder continuar.
  • De modo asíncrono, el servidor principal trabaja sin esperar al secundario.
Algunas diferencias entre LogShipping y Mirroring (Hay muchas más, pero aquí están las que más me llaman la atención):
  • Database Mirroring es capaz de configurar una conexión segura entre ambos puntos.
  • Database Mirroring provee la capacidad de hacer failover automático.
Log Shipping no hace ninguna de las dos anteriores.
Para configurar Database Mirroring se puede hacer a través del asistente o se puede hacer a través de instrucciones en t-sql. En este caso, utilizaremos el asistente para ahorrar tiempo.
Antes de partir la configuración nos debemos asegurar que la base de datos esté en modo de recuperación Full y debemos crear un respaldo de la base de datos del servidor primario y restaurarla con la opción WITH NORECOVERY en el servidor que será espejo.
Esta configuración requiere algunas configuraciones en el firewall de ambos equipos. En el servidor principal y en el espejo se debe abrir el puerto TCP 5022. Ahora, si se decide usar otro puerto, hay que estar seguro que el puerto está disponible y se puede abrir para las conexiones.
Una vez que se tiene la configuración previa lista, se hace el asistente que permitirá configurar el mirroring
Abrir asistente
Abrir asistente
En la ventana principal se debe iniciar el asistente
Ventana Principal
Ventana Principal
Se inicia el asistente
Inicio del asistente
Inicio del asistente
Se puede o no configurar un testigo. El testigo servirá para poder tener un failover automático. En este artículo no configuraré un testigo.
Configuracion del testigo
Configuracion del testigo
Configuración del equipo principal. Se puede cambiar el puerto (pero recuerden que ya habíamos abierto el puerto 5022). Además, se puede seleccionar si se quiere cifrar o no la conexión.
Configuracion del primario
Configuracion del primario
Para la configuración del secundario es necesario conectarse antes (recordar abrir el puerto 1422 en el secundario). La ventana de configuración es exactamente igual al primario.
Configuracion del Secundario
Configuracion del Secundario
El servicio debe estar configurado con una cuenta de dominio. Se debe indicar la cuenta del servicio del servidor primario y del espejo.
Cuentas de servicio
Cuentas de servicio
Para Finalizar:
Finalizar
Finalizar
Al momento de finalizar, se inicia el proceso de configuración del mirroring. Si aparece este mensaje, es porque está todo bien
Progreso de Configuracion
Progreso de Configuracion
Al terminar el asistente, aparecerá una ventana así en la cual nos preguntará si queremos iniciar Mirroring al tiro o no. En mi caso, no configuré el testigo, por lo que no activaré el mirroring para hacer una configuración antes de partir.
Iniciar mirroring
Iniciar mirroring
Antes de comenzar el mirroring, lo configuré como asíncrono y luego inicié el mirroring
Mirroring Funcionando
Mirroring Funcionando

Ejemplo

ESPEJEO

Es una configuración donde dos o tres servidores de dase de datos, ejecutándose en equipos independientes, cooperan para mantener copias de la base de datos y archivo de registro de transacciones (log). Es decir, tanto el servidor primario como el servidor espejo mantienen una copia de la base de datos y el registro de transacciones
  • 1 . Servidor Principal
Conecta las aplicaciones y recibe las transacciones
  • 2 . Servidor Mirror(Esclavo)
Recibe los logs de transacciones del Servidor Principal y las aplica en la base de datos reflejada
  • 3 . Servidor Witness (Opcional)
Monitoriza el estado en que se encuentran los servidores Principal y Mirror
Pasos para hacer un mirroring
REPLICACION EN MYSQL
2 SERVIDORES
MASTER 192.168.0.1
ESCLAVO 192.168.0.2


1.- CREAMOS UNA BASE DE DATOS LLAMADA PC, CREAMOS UNA TABLA LLAMADA pc


2.- AQUÍ SE CREA EL LOG BINARIO DEL ARCHIVO MY.INI

3.- AQUÍ SE APAGAMOS Y PRENDIMOS MYSQL PARA REINICIARLO PARA QUE APLIQUE LOS CAMBION RECIEN ESTABLECIDOS.


4.- AQUÍ SE PONEN LOS COMANDOS PARA REPLICAR EL SERVIDOR ESCLAVO , TAMBIEN SE CREA EL USUARIO QUE VAMOS AUTILIZAR PARA REALIZAR LA REPLICACION, ASI MISMO SE LE ASIGNAN TODOS LOS PRIVILEGIOS AL USUARIO CREADO.



5.-DENTRO DEL CODIGO SE LE ASIGNAN LOS PERMISOS A LA BASE DE DATOS CREADA, AHORA CON EL COMANDO SHOW MASTER STATUS SE MUESTRA EL STATUS DEL SERVIDOR MASTER.



6.- SE CREA EL BACKUP DE LA BASE DE DATOS, ES DECIR, LA COPIA DE RESERVA PARA RESPALDAR LA INFORMACION DE LA BASE DE DATOS.




7.- AQUÍ SE MUESTRA CUANDO SE CREO EL ARCHIVO RESERVA.SQL



8.- SE CREA LA BASE DE DATOS EN LA OTRA COMPUTADORA QUE ES EL SERVIDOR ESCLAVO.


9.- ABRIMOS EL ARCHIVO RESERVA.SQL QUE SE ENCUENDRA EN EL DISCO LOCAL EN LA BASE DE DATOS CREADA EN LA COMPUTADORA ESCLAVO.

10.- AQUÍ SE ASIGNA EN EL ESCLAVO LOS DATOS DEL SERVIDOR MAESTRO



11.- SE APAGA Y SE PRENDE MYSQL PARA QUE APLIQUE LOS CAMBIOS REALIZADOS.

12.- PARAMOS EL SERVIDOR ESCLAVO PARA DARLE LA CONFIGURACION NECESARIA PARA QUE FUNCIONE CORRECTAMENTE, SE CREA LA INSTRUCCIÓN CHANGE MASTER CON UNA IP , USUARIO, PASSWORD Y EL ARCHIVO LOG QUE SE CREO EN EL MASTER Y LA POSICION DEL ARCHIVO.


13.- INICIAMOS EL SERVIDOR Y UTILIZAMOS LA BASE DE DATOS CREADA EN ESTE CASO pc.





14.- AQUÍ SE LE INSERTAN DATOS A LA TABLA PC.








15.- POR ULTIMO SE MUESTRA EL DATO QUE INGRESAMOS A LA TABLA PC CON LA SENTENCIA SELECT * FROM.



No hay comentarios:

Publicar un comentario