Daniel Calbimonte

Cómo crear un Reflejo de la Base de Datos

October 29, 2016 by

A veces nuestra Base de Datos falla y necesitamos restablecer los servicios de la Base de Datos inmediatamente. ¿Hay alguna solución para alta disponibilidad?

Con un Reflejo de la Base de Datos, nosotros podemos tener una réplica de la base de datos lista para ser usada si la base de datos principal falla. En este artículo tendremos un tutorial paso a paso acerca de Reflejos de Bases de Datos. Hay otras soluciones para alta disponibilidad como AlwaysOn, Clusters y Transvase de Registros, pero en este capítulo comenzaremos con Reflejos.

Servidores usados

Para un Reflejo de la Base de Datos, usted requiere un Servidor Principal, el cual será usado como la base de datos principal. Si falla, el otro servidor (Servidor Reflejo) será usado para reemplazar el Servidor Principal. Una vez que el principal es arreglado, usted puede retornar a usar el Servidor Principal.

Si usted desea un cambio de servidores automático (cuando el servidor principal falla, el Servidor Reflejo será automáticamente activado para reemplazar el servidor principal), un tercer Servidor es necesario.

Roles de Reflejos de Bases de Datos

En los Reflejos de Bases de Datos, hay dos modos operativos principales:

  1. Modo de alta seguridad, es un modo seguro para cambiar del Servidor Principal al Reflejo. Este modo puede ser automático (requiere 3 servidores) o manual (requiere 2 servidores).
  2. Modo de alto desempeño, es un modo más rápido para cambiar del Servidor Principal al Reflejo, pero puede ocurrir algo de pérdida de datos con este modo.

Requerimientos

  1. Usted necesita tres SQL Servers o al menos tres Instancias de SQL Server (tres instancias pueden ser usadas para propósitos de prueba solamente, pero esto no es recomendado para ambientes de producción).
  2. Usted puede usar SQL Server Enterprise, Standard o Business Intelligence para este artículo.
  3. Cree una copia de seguridad Completa de la Base de Datos a ser reflejada en el servidor principal.


    Figura r1. Un Respaldo Completo


    Figura r2. La opción de Respaldo Completo option

  4. Respalde el Registro de Transacciones.


    Figura r3. Copia de Seguridad del Registro de Transacciones Backup

  5. Restaure la base de datos en el Servidor Reflejo.


    Figura r4. Restauración de la Base de Datos

  6. Asegúrese de restaurar con NORECOVERY en el Servidor Reflejo.


    Figura r5. Declaración NORECOVERY.

Iniciando

  1. Haga clic derecho en la base de datos y seleccione Tasks>Mirror


    Figura 1. La Tarea Mirror

  2. Presione el botón Configure Security.


    Figura 2. El botón para iniciar la configuración

  3. El asistente Configure Database Mirroring Security Wizard será mostrado. Presione Next.


    Figura 3. The Database Mirroring Wizard

  4. El primer asistente le preguntará si desea un Witness. Si desea un reflejo de conmutación manual o uno de alto desempeño, Witness no es necesario. Si desea un reflejo de alta disponibilidad con conmutación automática, seleccione la opción yes. En esta demostración usaremos un Witness.


    Figura 4. La opción para incluir Witness

  5. La siguiente opción le permitirá seleccionar dónde grabar la configuración de seguridad.


    Figura 5. Seleccione el Servidor a configurar

  6. En la siguiente opción, usted seleccionará los puertos usados. También tenemos una opción para cifrar los datos enviados desde un Servidor a Otro. El Servidor Principal y el Servidor Reflejo serán sincronizados constantemente. El nombre del Endpoint será creado aquí. Si usted está usando el mismo servidor con diferentes instancias, un puerto diferente debería ser usado para cada servidor.


    Figura 6. La información de Endpoint

  7. Para el servidor Reflejo, presione Connect y especifique las propiedades de conexión. También, seleccione el puerto en escucha y el nombre del Endpoint. Si usted está usando el mismo servidor con diferentes instancias, un puerto diferente debería ser usado para cada servidor.


    Figura 7. . Información del Reflejo

  8. Si usted seleccionó la opción para usar un Witness, se requerirá que precione el botón Connect y seleccione las credenciales para conectarse al Servidor Witness. También, seleccione el puerto en escucha y el nombre del Endpoint. Si está usando el mismo servidor con diferentes instancias, un puerto diferente debería ser usado para cada servidor.


    Figura 8. . Configuración del Witness

  9. En la ventana Service Accounts, especifique una cuenta de dominio para los Servidores Principal, Witness o Mirror.


    Figura 9. Service Accounts

  10. El diálogo Complete the Wizard contiene una lista de todas las configuraciones usadas. Si está de acuerdo, presione Finish; si no, presión back y cambie las configuraciones.


    Figura 10. Configuraciones hechas

  11. Si todo está bien, un mensaje de éxito será mostrado. De otra manera, usted recibirá mensajes de error.


    Figura 11. . La Ventana de Éxito

    Usted recibirá un mensaje para iniciar el Reflejo. Si está listo, presione el botón Start Mirroring.


    Figura 12. El mensaje Start Mirroring

    Una vez que termine, el resto es fácil. Puede simular que el servicio está desactivado (parando el Servicio del Motor de la Base de Datos de SQL Server en el Servidor Principal).


    Figura 13. Reiniciando el servicio de SQL

Usted verá que la Base de Datos Reflejo está activa ahora. Si inicia el servicio de SQL Server de nuevo, y para el Servicio de SQL Server del Reflejo, el Servidor Principal estará activo ahora.

Y… ¡eso es todo amigos!

Mensajes de error

Un mensaje de error famoso es este:


Figura 14. Mensaje de error típico

Error 1418, The network address can not be reached or does not exist. Check the network address name and that the ports for the local and remote endpoints are operational.

Si usted tiene este mensaje de error, puede verificar los siguientes pasos.

  1. Verifique que el servidor Reflejo esté en modo de no recuperación (revise los requerimientos).
  2. Verifique el cortafuegos y active los puertos usados en cada servidor. Para más información acerca de puertos y cortafuegos, revise este enlace.
  3. Asegúrese de que el puerto no está en uso. Para más información, revise este enlace.

Algunos consejos útiles para Reflejos de Bases de Datos

Cómo monitorear el Reflejo de Base de Datos usando la Interfaz Gráfica

Usted puede monitorear su Reflejo de Base de Datos usando Launch Database Mirroring Monitor.


Figura 15. La opción Database Mirroring Monitor

Cómo revisar el estado del Endpoint para el reflejo

Usted también puede revisar el estado del reflejo usando la vista sys.database_mirroring_endpoints:

select * from sys.database_mirroring_endpoints

La descripción del estado muestra el estado del endpoint.


Figura 16. El estado de los endpoints

Cómo quitar la base de datos del reflejo usando T-SQL

Si por alguna razón usted no puede quitar la base de datos desde la Interfaz Gráfica, usted puede usar T-SQL para ese propósito.

ALTER DATABASE db_name SET PARTNER OFF

Cómo otorgar permisos de conexión a los Endpoints de Reflejo

Usted también puede usar T-SQL para otorgar permisos de Enpoint.

GRANT CONNECT ON ENDPOINT::Mirroring TO [username]

Cómo ver la información de roles y configuración acerca del Reflejo usando T-SQL

select * from sys.database_mirroring

Referencias

http://blog.sqlauthority.com/2010/01/11/the-server-network-address-tcpsqlserver5023-can-not-be-reached-or-does-not-exist-check-the-network-address-name-and-that-the-ports-for-the-local-and-remote-endpoints-are-operational-microso/
https://technet.microsoft.com/en-us/library/ms191456(v=sql.105).aspx


Daniel Calbimonte

Daniel Calbimonte

Daniel Calbimonte es un Microsoft Most Valuable Professional, Microsoft Certified Trainer y Microsoft Certified IT Professional para SQL Server. Es autor experto de SSIS, profesor en IT Academies y tiene más de 13 años de experiencia trabajando con diferentes bases de datos.

Él ha trabajado para el gobierno, compañías de petróleo, sitios web, revistas y universidad alrededor del mundo. Daniel también habla regularmente en conferencias de SQL Server y blogs. Él también es un escritor para material de entrenamiento de SQL Server para exámenes de certificación.

Ver todas las publicaciones de Daniel Calbimonte
Daniel Calbimonte
Recuperación de SQL

Acerca de Daniel Calbimonte

Daniel Calbimonte es un Microsoft Most Valuable Professional, Microsoft Certified Trainer y Microsoft Certified IT Professional para SQL Server. Es autor experto de SSIS, profesor en IT Academies y tiene más de 13 años de experiencia trabajando con diferentes bases de datos. Él ha trabajado para el gobierno, compañías de petróleo, sitios web, revistas y universidad alrededor del mundo. Daniel también habla regularmente en conferencias de SQL Server y blogs. Él también es un escritor para material de entrenamiento de SQL Server para exámenes de certificación. Ver todas las publicaciones de Daniel Calbimonte

1,260 Views