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:
- 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).
- 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
- 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).
- Usted puede usar SQL Server Enterprise, Standard o Business Intelligence para este artículo.
Cree una copia de seguridad Completa de la Base de Datos a ser reflejada en el servidor principal.
Respalde el Registro de Transacciones.
Figura r3. Copia de Seguridad del Registro de Transacciones BackupRestaure la base de datos en el Servidor Reflejo.
Asegúrese de restaurar con NORECOVERY en el Servidor Reflejo.
Iniciando
Haga clic derecho en la base de datos y seleccione Tasks>Mirror
Figura 1. La Tarea MirrorPresione el botón Configure Security.
El asistente Configure Database Mirroring Security Wizard será mostrado. Presione Next.
Figura 3. The Database Mirroring WizardEl 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 WitnessLa siguiente opción le permitirá seleccionar dónde grabar la configuración de seguridad.
Figura 5. Seleccione el Servidor a configurarEn 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 EndpointPara 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 ReflejoSi 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 WitnessEn la ventana Service Accounts, especifique una cuenta de dominio para los Servidores Principal, Witness o Mirror.
Figura 9. Service AccountsEl 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 hechasSi todo está bien, un mensaje de éxito será mostrado. De otra manera, usted recibirá mensajes de error.
Figura 11. . La Ventana de ÉxitoUsted recibirá un mensaje para iniciar el Reflejo. Si está listo, presione el botón Start Mirroring.
Figura 12. El mensaje Start MirroringUna 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.
- Verifique que el servidor Reflejo esté en modo de no recuperación (revise los requerimientos).
- Verifique el cortafuegos y active los puertos usados en cada servidor. Para más información acerca de puertos y cortafuegos, revise este enlace.
- 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:
1 |
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.
1 |
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.
1 |
GRANT CONNECT ON ENDPOINT::Mirroring TO [username] |
Cómo ver la información de roles y configuración acerca del Reflejo usando T-SQL
1 |
select * from sys.database_mirroring |
Referencias
- SQL SERVER – The server network address “TCP://SQLServer:5023” 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. (Microsoft SQL Server, Error: 1418)
- Transact-SQL Settings and Database Mirroring Operating Modes
- Cómo construir un cubo desde cero usando SQL Server Analysis Services (SSAS) - December 16, 2019
- Fecha de conversión de SQL - December 11, 2019
- Funciones frente a los procedimientos almacenados en SQL Server - October 14, 2019