Espejeo (Mirroring), Y Actividad REPLICACION







Espejeo Mirroring.

Base de Datos Espejo (Database Mirroring) 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).

Tanto el servidor primario como el servidor espejo mantienen una copia de la base de datos y el registro de transacciones, mientras que el tercer servidor, llamado el servidor árbitro, es usado cuando es necesario determinar cuál de los los otros dos servidores puede tomar la propiedad de la base de datos. El árbitro no mantiene una copia de la base de datos. La configuración de los tres servidores de base de datos (el primario, el espejo y el árbitro) es llamado Sistema Espejo (Mirroring System), y el servidor primarioy espejo juntos son llamados Servidores Operacionales (Operational Servers) o Compañeros (Partners).




 Existen varios tipos de mirroring:
  • Alta disponibilidad: Garantiza la consistencia transaccional entre el servidor principal y el servidor de espejo y ofrece Automatic Failover mediante un servidor testigo.
  • Alta Protección: Garantiza la consistencia transaccional entre el servidor principal y el espejo.
  • Alto Rendimiento: Aplica las transacciones en el Servidor Espejo de manera asíncrona ocasionando mejoras significativas en el rendimiento del servidor principal pero no garantiza que dichas transacciones se hallan realizado de manera exitosa en el espejo.



 Beneficios:
 Mirroring esta tecnica fue introducida en la edicion 2005,  se puede decir que es la evolución del log shipping. La principal diferencia es el tiempo de espera para tener la información mas actual el espejeo es un recurso mas rapido que el log shipping. Otra diferencia es que el servidor en stand by automaticamente puede levantarse en caso  de que el servidor principal fallara (a esto se le llama espejeo de alta disponiblidad, y para esto requerimos de un tercer servidor al que nombran testigo), sin tener que restaurar los registros (en realidad, los registros se fusionan de forma continua en este escenario – no es de extrañar que se llama Espejo). 

 Las ventajas adicionales incluyen la creación de reflejo de apoyo a nivel NET Framework. Además de algunas nuevas características como la recuperación automática de páginas incluidas en SQL Server 2008.
periodicamente a un servidor en stand by. Si el servidor activo va para abajo se puede subir el servidor en stand by restaurando todos los logs transferidos.


Escenario donde se puede usar: si usted desea que el tiempo de recuperación sea menos y también requiere una solución rentable en términos de almacenamiento compartido, interruptores, etc También se dirigen a una base de datos única que se adapta fácilmente en sus discos.

Creacion:

 1. Primeramente preparamos nuestra base de datos espejo en nuestro server o instancia que fungirá como tal, aquí dos puntos importantes: Que la base datos que restauremos sea el ultimo backup realizado desde la principal. A la hora de restaurarla tenemos que marcar la opción de NON RECOVERY.



2. En el Management Studio, Explorador de Objetos, Seleccionamos una base de datos, hacemos click derecho sobre ella en la opción, Task, Mirror.




 
3. El primer paso sería configurar la seguridad, para lo cual vamos a seguir un asistente.


En el primer paso del asistente nos preguntara si queremos tener una instancia de testigo, para este primer ejempo le diremos que No.

4.       Luego definiremos el servidor principal
5.       Ahora definiremos nuestra instancia o servidor espejo
6.       En este paso se definen las cuentas de usuario que utilizaran tanto el servidor principal como el espejo que estén en un dominio. Para nuestro ejemplo dejaremos en blanco esta opción.

7.       Finalmente terminanos de configurar el asistente de seguridad.
8.       Una vez finalizado nos pedirá si deseamos iniciar el mirroring,  le diremos iniciar.

9.       Ya tendremos configurado nuestro mirroring como se muestra en la pantalla siguiente,  desde aquí podemos iniciar el mirroring,  y podemos configurar el tipo de operación que deseamos, tal y cual se planteo al inicio del articulo.  Hacemos click en OK.


La Redirección Automática del cliente en una infraestructura de Database Mirroring, es una funcionalidad muy apreciada, y en este caso, es tan fácil como utilizar una sintaxis determinada en la cadena de conexión a SQL Server, como se muestra en el siguiente:


"Data Source=PORTATIL;Failover Partner=PORTATIL\MIRROR;Initial Catalog=Demo;Integrated Security=True;"




Problema:

¿Cómo conectar a un mirror server después de un failover en DB Mirroring de Microsoft SQL Server?

En el siguiente enlace se puede consultar como resolver este problema.

http://blog.capside.com/tag/db-mirror/ 

Windows 7 crear unidad espejo.

En Windows 7 existe la posibilidad de crear una unidad espejo (o RAID 1) de forma nativa y sin tener que utilziar ningún software.
Para ello vamos al 


Panel de control > Herramientas administrativas > Administrador de equipos > Almacenamiento > Administración de discos.


En esta ventana nos saldrán todos los discos duros de nuestro equipo. Lo primero que tenemos que hacer es seleccionar el disco que haremos de espejo. Pulsamos en el con el botón derecho y elegimos la opción “Agregar reflejo”. A partir de aquí nos aparecerá un asistente que deberemos de seguir para elegir el disco duro donde se copiarán todos los datos del primer disco duro.


Una vez finalizado el asistente los discos duros empezarán a sincronizarse. Esta tarea puede durar largo tiempo dependiendo de la cantidad de información que tengamos almacenada en el disco duro.

  REPLICACION:

Replica (Replication) de una Base de Datos

Para poder trabajar desde distintos equipos en una base de datos es necesario crear una o varias réplicas de dicha BDD que después, deberán ser sincronizadas. Cada réplica es miembro de un conjunto de réplicas que se pueden sincronizarcon otras réplicas del mismo grupo, es decir, los cambios realizados en una réplica se aplican a las otras réplicas y al diseño principal. 

 La réplica proporciona una manera rápida y confiable de diseminar la información corporativa entre múltiples localizaciones en un ambiente de negocio distribuido, permitiendo distribuir la información de manera confiable.

 MySQL soporta replicación unidireccional asíncrona, es decir, las   son replicadas en los servidores esclavos. Esta replicación se realiza de forma transparente. Además es instantánea si los servidores esclavos están levantandos y en estado de replicación. 


Beneficios.

La replicación es útil para:
  1. Copia de seguridad: En condiciones normales, una base de datos replicada de forma correcta es válida como copia de seguridad.
    Además se puede realizar copias de seguridad usando un servidor esclavo para así no interferir al servidor maestro.
  2. Mejorar la escalabilidad: Podríamos configurar nuestras aplicaciones para balancear las consultas de lectura (SELECT) entre los servidores replicados.
    Podríamos usar herramientas como MySQL Proxy para balancear las consultas de lectura entre los servidores replicados y enviar las consultas de actualización de datos al maestro.
  3. Alta disponibilidad: En aplicaciones y entornos en donde sólo se requieren lecturas, podríamos configurar nuestras aplicaciones para balancear las consultas de lectura (SELECT) entre los servidores replicados de manera que si uno se cae se continue prestando servicio.



    Pasos para poner en marcha la replicación

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

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

    El servidor esclavo se autenticará frente al servidor maestro como un usuario normal.
    Para crear el usuario debemos ejecutar desde la consola de comandos de mysql las siguientes sentencias SQL:




    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 comodin % por el parámetro <slave_address>.


    Configuración del servidor esclavo

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




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

    Desde la consola ejecutamos los siguientes comandos:
  4. [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 aplicacion a la base de datos.
  5. [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.
  6. [esclavo]: <MYSQL_HOME>/bin/mysql --user=root --password=<contraseña> bd_autentia < backup.sql
    Para restaurar la copia de seguridad en el esclavo.
  7. [esclavo]: <MYSQL_HOME>/bin/mysqladmin -u root --password=<contraseña> shutdown
    Detenemos el servidor esclavo
  8. [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 bloquadas)
  9. [esclavo]: <MYSQL_HOME>/bin/mysqld-nt --defaults-file="<MYSQL_HOME>\my.ini" MySQL
    Iniciamos el servidor el cual tomará la nueva configuración.
  10. [maestro]: <MYSQL_HOME>/bin/mysqld-nt --defaults-file="<MYSQL_HOME>\my.ini" MySQL
    Iniciamos el servidor el cual tomará la nueva configuración.

Probando la replicación

  • En el servidor esclavo ejecute el comando SHOW SLAVE STATUS y observe que el mensaje que le muestra es un mensaje que indica que está esperando eventos del maestro...
  • Modifique algo en el maestro y verifique que instantaneamente se replica en el esclavo.
  • Detenga el esclavo durante un tiempo, realize cambios (cree tablas, modifique registros..) en el maestro e inicie el esclavo. En cuestion de milisegundos ambas bases de datos deberían de ser iguales.
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=mysql_replicacion

Modelo de Replicación

El modelo de Replicación que usa SQL es el de “Publicador – Suscriptor”. Este modelo consiste en Publicadores,Suscriptores y Distribuidores; las publicaciones y los artículos, y las suscripciones por tirón o empuje. Además incorpora agentes de administración como Agente de Instantánea, Agente Lector de Registro, Agente de Distribución, y Agente de Mezcla. Todos los agentes pueden funcionar debajo del agente del servidor del SQL y se pueden administrar completamente por el Administrador del Servidor de SQL.


http://www.compucaja.net/ayuda/ABD004.pdf


Podemos citar este pequeño tutorial acerca de la creacion de replicas.
Sencillo y entendible:
http://www.mty.itesm.mx/rectoria/dda/usols/creacion.htm




Informacion:
Veamos cómo crear una réplica de nuestra base de datos:
  • Abre la base de datos DB1 (o de cualquier base de datos que tengas)
  • Accede a Herramientas >– Réplica > – Crear réplica. Aparecerá un mensaje de aviso:
  • Contesta afirmativamente.
Se mostrará otro mensaje que nos avisa que la base de datos original se convertirá en el Diseño principal. Además se indica el nombre con el que se guardará la réplica y la carpeta donde se almacenará ésta.
  • Pulsa en
  • Acepta el nombre que ofrece Access
Al aceptar, Access crea la réplica y nos muestra un mensaje que la única copia donde podremos modificar la estructura original será la copia original de la base de datos.
Sin embargo, los datos podremos editarlos en cualquiera de las réplicas que hayamos realizado.
  • Acepta el último cuadro de diálogo que ha aparecido.
Ahora fíjate que en los nombres de las tablas aparece un nuevo icono y en el título aparece la palabra Diseño principal.
  • Añade un nuevo DATO en la base de datos principal para probar la sincronización entre bases de datos.
  • Accede a Herramientas >Réplica >Sincronizar ahora
  • Acepta el cuadro de diálogo que aparece.
Por último, Access avisa que no serán visibles los cambios hasta que cerremos y abramos la tabla.
  • Acepta
  • Abre la tabla Réplica de DB1 y observa los cambios


1 comentario:

  1. pregunta que pasa si el server arbitro se cae, la disponibilidad pasa ser prácticamente de ese cierto o que esquema puedo adoptar no puedo dejar que una base de datos se caigo ni 30 segundos

    ResponderEliminar