Alta Disponibilidad

Database Mirroring (HA Parte 4)

El espejo de bases de datos o Database Mirroring es una solución de alta disponibilidad presente en SQL Server desde la versión 2008. Igual que la solución Always On, funciona a nivel de base de datos pero, en este caso, debe configurarse individualmente en cada base de datos. Una de las instancias actuará como primaria (principal) y otra como secundaria (espejo). Como siempre hacemos, vamos a ver sus características y cómo funciona, sin embargo no vamos a comentar cómo implementarlo. Esta es una solución discontinuada por parte de Microsoft que desaparecerá en futuras versiones de SQL en favor de Always On.

Opciones de implementación de Database Mirroring

Database Mirroring funciona sincronizando la base de datos del servidor principal con la base de datos del servidor espejo. No admite más réplicas. Sin embargo, es posible configurar una tercera instancia como testigo (witness) que se encargará del balanceo automático en caso de fallo en el servidor primario. 

La opción más común de implementación de Database Mirroring es con dos servidores SQL cada uno con una instancia replicando una base de datos del principal al espejo. Sin embargo, es posible encontrar Database Mirroring configurados entre instancias de la misma máquina. También es común encontrar una pareja de servidores que son principales para unas bases de datos y espejo para otras. Os dejo esquemas de estas implementaciones sacados de la documentación oficial:

Modos operativos de Database Mirroring

Podemos configurar nuestros Database Mirroring de tres maneras diferentes y, en función de como lo configuremos cambiarán su comportamiento. Como DBAs deberemos decidir cuál se adapta mejor a nuestro escenario.

Modo alto rendimiento

El modo alto rendimiento solo está disponible en versiones Enterprise de SQL Server. Si optamos por este modo no tendremos opción de usar un servidor como testigo. Los datos se enviarán del servidor principal al espejo de manera asíncrona. Al no admitir un servidor testigo, no es posible configurar un balanceo automático en caso de fallo del servidor principal. Cuando esto pasa, podemos esperar a que vuelva a estar operativo el principal (con la base de datos no disponible), forzar un balanceo manual (con posible pérdida de datos) o actualizar manualmente la base de datos espejo con la última copia de log del servidor principal. 

Modo alta seguridad

Disponible en todas las versiones de SQL Server el modo alta seguridad envía los datos de manera síncrona, la transacción se confirmará tras el commit en ambos servidores. Puede ser un problema si la latencia de red es elevada. En caso de fallo del servidor principal, los datos en el servidor espejo estarán actualizados y no tendremos perdida de datos. Podremos elegir si queremos esperar con la base de datos no disponible o forzar un balanceo manual sin pérdida de datos.

Modo alta seguridad con balanceo automático

Los datos se escriben de manera síncrona en el servidor principal y el espejo pero necesitaremos de un tercer servidor que haga de testigo. En caso de fallo del servidor principal, el servidor testigo será capaz de detectarlo y automáticamente balanceará el rol, convirtiéndose en principal la base de datos del servidor espejo.

Pros y contras de Database Mirroring

La principal ventaja de esta solución es su facilidad de configuración, no requiere de WSFC y es compatible con todas las ediciones y versiones de SQL Server desde 2008. Todo esto permitiéndonos configurar un balanceo automático. Además, se puede combinar con otras opciones como las FCI, el log shipping o la replicación. 

Como hemos empezado comentando, es una solución que será eliminada de futuras versiones de SQL Server en favor de Always On. Siendo soluciones de alta disponibilidad a nivel base de datos, Database Mirroring se debe configurar individualmente por base de datos, no tiene opción de configurar un listener como punto de escucha común para los dos servidores y solo admite una réplica. 

Conclusión

Hemos podido conocer los aspectos básicos de Database Mirroring, una solución de alta disponibilidad de SQL Server discontinuada y que se eliminará en un futuro. Como DBAs evitaremos configurar esta solución por los motivos ya mencionados aunque, como todos sabemos, el mundo real es muy diferente a la teoría y por eso debemos conocerlo y tener claro cómo funciona.

Publicado por Roberto Carrancio en Alta Disponibilidad, SQL Server, 2 comentarios

FCI o Instancias de clúster de conmutación por error (HA Parte 3)

Hoy vamos a hablar de otra solución de alta disponibilidad de SQL Server, las instancias de conmutación por error o FCI. Al igual que los Always On, las FCI necesitan de un clúster de Windows (WSFC) para funcionar. Realmente, pocos parecidos más vamos a encontrar entre las 2 soluciones pero, no adelantemos acontecimientos, veamos en detalle cómo funcionan las FCI y luego ya la comparación con Always On. 

¿Qué son las FCI?

Como hemos podido ver, las FCI son una solución de alta disponibilidad de SQL Server basada en WSFC. En esta solución tendremos varios servidores nodos de un clúster. Estos nodos compartirán un almacenamiento compartido donde se almacenarán todos los datos de las bases de datos. El servicio de SQL solo estará en ejecución en el nodo principal del clúster pudiendo balancear a otro nodo (y parando en el principal) en caso de error de hardware, software o mantenimiento programado. Como habrás podido deducir, se trata, por tanto, de una solución de alta disponibilidad a nivel de instancia y no de base de datos como el resto de las que hemos visto. 

Elementos de una FCI

Como hemos visto, las FCI se componen de un grupo de dos o más servidores que forman parte de un WSFC. A estos miembros del clúster se les conoce como nodos. Los nodos de una FCI pueden tener diferente hardware pero deben tener la misma configuración de software para garantizar el éxito en caso de balanceo del servicio. Además de esto, el clúster tiene que tener una serie de configuraciones que vamos a detallar.

Grupo de recursos

Nuestra FCI se ejecutará dentro de un grupo de recursos de WSFC. Cada nodo del clúster tendrá una copia actualizada de las configuraciones y claves de registro almacenadas en el grupo de recursos. Sin embargo, solo el nodo activo pertenece al grupo de recursos y en caso de balanceo (automático o manual) esta propiedad pasará a otro nodo. El número máximo de nodos admitidos en una FCI dependerá de la versión de SQL Server. Además un mismo WSFC puede tener varios grupos de recursos con varias FCI. 

Almacenamiento

Como hemos visto, el almacenamiento de nuestra FCI debe ser compartido entre los nodos, esto lo podemos lograr con unidades SAN o recursos compartidos SMB. Además, desde Windows Server 2016, también se admite el espacio de almacenamiento directo (S2D). El almacenamiento, al ser común, es nuestro SPOF (Single Point Of Failure) y debemos extremar la precaución sobre él. Os recomiendo soluciones especializadas de almacenamiento con redundancia.

Instalación de SQL Server

Cada uno de los nodos del clúster tendrá instalado SQL Server de manera similar a una instalación independiente con la peculiaridad de que los servicios no se inician de manera automática, sino que es el WSFC quien levanta el servicio del nodo principal y detiene los del resto de nodos.

Red

Nuestro grupo de recursos tendrá un nombre de red virtual (VNN por sus siglas en inglés). Este VNN será el punto de acceso a nuestra instancia de SQL Server y estará asignado al nodo primario del clúster. En caso de balanceo se asignará al nuevo nodo primario.

Además, si tenemos una FCI distribuida en varias subredes, necesitaremos de direcciones IP virtuales para cada subred. En caso de balanceo, el WSFC apuntará nuestro VNN a la IP virtual de esa subred de manera que los clientes puedan seguir conectando a la instancia de forma transparente.

Ventajas de las FCI

En este punto no vamos a decir nada nuevo pero si vamos a remarcar lo que son las ventajas de esta solución de alta disponibilidad frente a otras:

– Alta disponibilidad: si el nodo activo falla, el nodo pasivo asume el rol de nodo activo automáticamente y continúa prestando el servicio sin interrupciones. El tiempo de conmutación por error depende de varios factores, pero suele ser muy corto (de segundos a minutos).

– Escalabilidad: se pueden añadir más nodos al clúster para aumentar la capacidad de procesamiento y el rendimiento. Además, se pueden crear varias FCI en el mismo clúster para distribuir la carga de trabajo.

– Facilidad de administración: se puede administrar la FCI como una única instancia de SQL Server, sin importar en qué nodo se esté ejecutando. También se puede usar el Administrador de clústeres de conmutación por error para gestionar el clúster y sus recursos.

– Compatibilidad: se puede usar una FCI con cualquier edición de SQL Server (desde la 2008 hasta la 2019) y con cualquier sistema operativo Windows Server que soporte clústeres de conmutación por error (desde el 2008 R2 hasta el 2019).

Inconvenientes de las FCI

Como ya hemos visto, el principal inconveniente de esta solución es el uso compartido del almacenamiento, lo que genera un SPOF que debe ser controlado por el equipo de storage. Si no hay disponibilidad del almacenamiento nuestras FCI no funcionarán. Esto puede no ser un problema tan grave con el estado actual de las instalaciones, donde el almacenamiento recae en cabinas de discos especializadas y, aunque tengamos distintas máquinas virtuales cada una con un almacenamiento, usan la misma base. Tenéis que valorarlo en cada caso.

Sin embargo, este no es el único inconveniente de esta solución, otro de los más graves puede ser el tiempo de balanceo que, puede ir desde varios segundos a minutos y puede no encajar en nuestro RTO. Este tiempo de respuesta es debido al uso compartido de discos y como SQL hace uso de ellos y de las páginas las caché de buffer. Entraremos en esto con más detalle en otro artículo pero tenéis que saber que el balanceo de una FCI puede tardar lo que el nodo tarde en escribir en disco una todas las páginas desfasadas. Desde SQL Server 2012 SQL permite usar puntos de comprobación indirectos (Indirect Checkpoints) para limitar el número de páginas desfasadas que se mantienen en la caché de buffer y mitigar este problema,

FCI VS Always On

Con lo que hemos visto hasta ahora podemos ya marcar las diferencias entre ambas soluciones de alta disponibilidad de SQL Server basadas en WSFC. La principal diferencia, para mi, sería el uso de almacenamiento compartido frente al almacenamiento individual redundado en cada nodo. Esto es, entre otras cosas, porque mientras las FCI son una solución de alta disponibilidad a nivel instancia, Always On lo es a nivel base de datos. Las FCI son más fáciles de administrar y nos permite tratar la instancia como una instalación individual corriendo en el nodo activo mientras que en Always On tendremos que actuar en cada uno de los servidores. Sin embargo, el tiempo de balanceo es mayor en una FCI. 

Otro aspecto clave que puede hacernos decidir por una solución u otra es la accesibilidad de las réplicas secundarias. Mientras que en una FCI solo uno de los nodos tiene el servicio en ejecución, en un Always On tendremos disponible una réplica secundaria para operaciones de lectura y copias de seguridad. Sin embargo, el coste en una FCI puede ser mucho menor al no requerir de una edición enterprise. Con una edición standard podremos tener hasta 2 nodos de FCI. Para más de 2 nodos si que necesitaremos una edición enterprise.

Conclusión

Como hemos visto las FCI son una gran solución de alta disponibilidad a un coste relativamente accesible. Nos protegen frente a todo tipo de fallos excepto los de almacenamiento. Además, son mucho más fáciles de administrar cuando tenemos muchos objetos a nivel de servidor como jobs o logins. En un Always On tendríamos que duplicar el trabajo de mantener los objetos a nivel instancia. 

Por si esto fuera poco, además, nos permiten tener varias FCI en un mismo WSFC para optimizar la carga de trabajo a la vez que protegemos nuestros servicios de caídas. Es una solución común tener varios servidores en un WSFC cada uno con una FCI activa pero que todos los nodos puedan asumir las instancias del resto en caso de fallo.

Publicado por Roberto Carrancio en Alta Disponibilidad, SQL Server, 1 comentario

Always On Availability Groups (HA Parte 2)

Como adelantamos ayer en la introducción sobre las distintas soluciones de alta disponibilidad que ofrece SQL Server vamos a profundizar una a una en cada una de ellas. Hoy en concreto vamos a hablar de la joya de SQL Server en este sentido, los grupos de disponibilidad Always On. Los Always On de SQL Server son una solución de alta disponibilidad y recuperación ante desastres que permite tener varias réplicas de una base de datos en diferentes servidores o ubicaciones. En este artículo, vamos a explicar cómo funcionan, qué ventajas ofrecen y cómo configurarlos paso a paso.

¿Qué son los grupos de disponibilidad Always On?

Los grupos de disponibilidad Always On son una característica introducida en SQL Server 2012 que nos permite tener hasta ocho réplicas secundarias de una base de datos primaria. Las réplicas secundarias se sincronizan automáticamente con la primaria de manera síncrona o asíncrona. Cada réplica secundaria puede tener un rol diferente, según el nivel de compromiso con la primaria y el tipo de operaciones que se permiten realizar sobre ella.

Los Always On permiten que las réplicas secundarias pueden estar en el mismo servidor o en servidores distintos, e incluso en diferentes regiones geográficas o la nube. Esto nos ofrece una gran flexibilidad y escalabilidad para adaptarlos a las necesidades de cada escenario.

Nivel de compromiso de las réplicas secundarias

Como hemos dicho, la replicación puede ser síncrona o asíncrona, esto es un factor clave a la hora de diseñar nuestra solución de alta disponibilidad y afectará a todo lo demás.

Replicación síncrona

Las réplicas secundarias se comprometen a aplicar los cambios recibidos de la primaria antes de confirmar la transacción al cliente. Esto quiere decir que sin tener confirmación de todas las réplicas síncronas la transacción no se va a confirmar. Esto nos garantiza que las réplicas están siempre en el mismo estado, evitando la pérdida de datos, pero afectando al rendimiento de las escrituras. Las réplicas síncronas pueden tomar el rol de primaria en caso de fallo, mediante un proceso de conmutación por error automático o manual. Usaremos este tipo de réplicas como solución de alta disponibilidad siempre que la latencia de red no sea un problema. En este sentido, es recomendable usar una red dedicada para la replicación del Always On independiente a la red de servicio a los usuarios.

Replicación asíncrona

Las réplicas no se comprometen a aplicar los cambios recibidos de la primaria inmediatamente, sino que lo hacen cuando les sea posible. Esto mejora el rendimiento de las operaciones de escritura, pero puede provocar que la secundaria tenga un cierto retraso respecto a la primaria. Las réplicas asíncronas pueden tener pérdidas de datos por lo que requieren una intervención manual para forzar la conmutación por error.

Acceso a los grupos de disponibilidad Always On

Para facilitar el acceso a las bases de datos del Always On, se utiliza el listener, que es un nombre virtual que representa al grupo de disponibilidad y que se resuelve en la dirección IP de la réplica primaria o de una réplica secundaria legible, según el criterio de enrutamiento que se defina. El listener permite a las aplicaciones conectarse al grupo de disponibilidad sin tener que conocer el nombre o la dirección IP de cada réplica. Cuando conectamos al listener este nos redirigirá siempre a la réplica primaria a no ser que le especifiquemos lo contrario mediante el parámetro ApplicationIntent=ReadOnly que nos llevará a una réplica secundaria de solo lectura.

Para configurar el listener, se debe especificar un nombre, un puerto y una dirección IP para cada subred en la que se encuentren las réplicas. Además, se debe crear un registro DNS con el nombre del listener y las direcciones IP asignadas. 

Nivel de acceso a las réplicas secundarias

Hemos estado comentando que podemos acceder a las réplicas secundarias en modo de lectura. Realmente, pueden tener diferentes modos de acceso, según el tipo de consultas que se puedan ejecutar sobre ellas, vamos a verlo:

Modo solo lectura

Permite ejecutar consultas de solo lectura sobre la réplica secundaria, lo que puede servir para balancear la carga de trabajo o para realizar operaciones de mantenimiento o copia de seguridad sin afectar a la primaria. Para habilitar este modo, es necesario que la réplica secundaria esté sincronizada con la primaria y que tenga habilitada la opción READ_ONLY_ROUTING_URL, que indica la dirección a la que deben dirigirse las conexiones de solo lectura.

Modo solo intención de lectura

Permite ejecutar consultas de solo lectura sobre la réplica secundaria, pero solo si la conexión especifica explícitamente esa intención mediante el parámetro ApplicationIntent=ReadOnly. Esto puede servir para separar las conexiones que requieren acceso a la primaria de las que pueden usar una secundaria, según el criterio de la aplicación cliente. Para habilitar este modo, se requieren las mismas condiciones que para el modo solo lectura.

Modo sin acceso

No permite ejecutar ninguna consulta sobre la réplica secundaria, solo se usa para mantener una copia sincronizada con la primaria. Este modo se usa cuando no se desea dar acceso a los datos de la secundaria o cuando la réplica está en proceso de sincronización o restauración. Si contamos con una licencia de SQL Server con Software Assurance es probable que optemos por este modo de réplica secundaria ya que no requiere de licencia adicional para la instancia secundaria.

¿Qué ventajas ofrecen los grupos de disponibilidad Always On?

Los grupos de disponibilidad Always On ofrecen varias ventajas como solución de alta disponibilidad y recuperación ante desastres:

– Permiten tener varias copias de una base de datos en diferentes servidores o ubicaciones, lo que aumenta la protección ante fallos o desastres.

– Pueden conmutar por error entre réplicas de forma automática o manual, lo que reduce el tiempo de inactividad y facilita la administración.

– Nos ayudan a balancear la carga de trabajo de nuestro servidor pudiendo delegar en las réplicas secundarias las consultas de solo lectura y las copias de seguridad.Para esto último,se debe configurar la opción «Backup priority» en las propiedades del grupo de disponibilidad.

– Permiten acceder a los datos de las réplicas secundarias para consultas de solo lectura o para operaciones de mantenimiento o copia de seguridad, lo que mejora el rendimiento y la escalabilidad.

– Se integran con otras características de SQL Server, como el agrupamiento en clústeres Windows Server Failover Cluster (WSFC), el servicio Broker para controlar el flujo

de mensajes entre las réplicas o el Listener para facilitar el acceso a las bases

de datos mediante un nombre virtual.

¿Qué requisitos se necesitan para usar los grupos de disponibilidad Always On?

Para usar los grupos de disponibilidad Always On se necesitan cumplir los siguientes requisitos:

– Tener instalada la edición Enterprise de SQL Server 2012 o superior, ya que la edición Standard solo permite tener una réplica secundaria y no admite el modo solo lectura ni el enrutamiento de lectura. La edición Developer también admite los grupos de disponibilidad Always On, pero solo para fines de desarrollo y pruebas.

– Tener configurado un clúster WSFC con al menos dos nodos, que serán los servidores donde se alojarán las réplicas primaria y secundaria. El clúster WSFC se encarga de monitorizar el estado de las réplicas y de realizar la conmutación por error si es necesario.

– Tener las bases de datos que se quieren proteger en modo de recuperación completa, lo que implica hacer copias de seguridad periódicas del log de transacciones para evitar que crezca demasiado.

¿Cómo se configuran los grupos de disponibilidad Always On?

Para configurar los grupos de disponibilidad Always On se deben seguir los siguientes pasos:

– Crear un grupo de disponibilidad en el servidor que aloja la base de datos primaria, especificando el nombre del grupo, las bases de datos que se quieren proteger y las opciones de configuración, como el modo de conmutación por error o el modo de acceso a las réplicas secundarias.

– Añadir una o más réplicas secundarias al grupo de disponibilidad, especificando el servidor donde se alojan, el modo de compromiso y el modo de acceso. También se debe indicar si la réplica secundaria será una copia de seguridad preferente o si tendrá habilitado el enrutamiento de lectura.

– Inicializar las réplicas secundarias mediante una copia de seguridad y restauración de las bases de datos primarias o mediante una sincronización automática si se dispone de una conexión compartida entre los servidores.

– Verificar el estado y el funcionamiento del grupo de disponibilidad, comprobando que las réplicas están sincronizadas, que se pueden realizar consultas sobre ellas y que se puede conmutar por error entre ellas.

Conclusión

Los grupos de disponibilidad Always On son una solución avanzada y flexible para garantizar la alta disponibilidad y la recuperación ante desastres de las bases de datos SQL Server. Permiten tener varias réplicas sincronizadas de una base de datos primaria, que pueden asumir el rol de primaria en caso de fallo o servir para consultas de solo lectura o para operaciones de mantenimiento o copia de seguridad. Para usar esta característica se requiere tener la edición Enterprise de SQL Server 2012 o superior y configurar un clúster WSFC. En este artículo hemos explicado cómo funcionan los grupos de disponibilidad Always On, qué ventajas ofrecen y cómo configurarlos paso a paso. Si os ha quedado alguna duda o comentario ya sabeis que podeis ponerlo aquí en los comentarios, mandarme un mail o en twitter.

Publicado por Roberto Carrancio en Alta Disponibilidad, SQL Server, 14 comentarios

Alta Disponibilidad en SQL Server Introducción (HA Parte 1)

Hoy iniciamos una nueva serie en la que vamos a hablar sobre las distintas soluciones de alta disponibilidad que existen para SQL Server. Antes de nada vamos a aclarar los conceptos básicos sobre los que profundizaremos tanto hoy como estos próximos días. A continuación, vamos a resumir brevemente las distintas soluciones de SQL Server que tenemos a nuestro alcance. Solo un breve resumen ya en los próximos artículos que las veremos más en profundidad.

¿Qué es la Alta Disponibilidad?

La alta disponibilidad se refiere a la capacidad de un sistema de seguir funcionando sin interrupciones ante posibles fallos o desastres, ya sean de hardware, software o de infraestructura. 

¿Por qué es importante? 

La alta disponibilidad es importante porque nos permite garantizar la continuidad del negocio, la satisfacción de los clientes y el cumplimiento de los acuerdos de nivel de servicio (SLA).

Aspectos clave para implementar una solución de Alta Disponibilidad

Para evaluar la adecuación de una solución de alta disponibilidad, es necesario tener en cuenta dos conceptos clave: el punto de recuperación objetivo (RPO) y el tiempo de recuperación objetivo (RTO). El RPO indica la cantidad máxima de datos que se pueden perder en caso de un fallo, mientras que el RTO indica el tiempo máximo que se puede tardar en restaurar el servicio. Estos valores dependen del nivel de criticidad del sistema y del presupuesto disponible, y pueden variar desde unos pocos segundos hasta varias horas o días.

Distintas soluciones de Alta Disponibilidad

SQL Server ofrece varias opciones para implementar la alta disponibilidad, dependiendo de las necesidades y los recursos de cada organización. Algunas de las más conocidas son:

Grupos de disponibilidad Always On

Esta es una solución replica datos de forma síncrona o asíncrona entre varias réplicas secundarias con una conmutación por error automática o manual. Los grupos de disponibilidad Always On tienen una réplica primaria que recibe las transacciones y las envía a las réplicas secundarias, que pueden estar en la misma red local o en ubicaciones remotas. Además, las réplicas secundarias pueden usarse para realizar consultas de solo lectura, copias de seguridad o restauraciones, lo que mejora el rendimiento y la escalabilidad de nuestro sistema.

Always On ofrece un RPO y un RTO muy bajos, ya que los datos se sincronizan casi en tiempo real y la conmutación por error se realiza en cuestión de segundos (incluso milisegundos). Los Always On requieren que las instancias de SQL Server pertenezcan a un clúster de conmutación por error de Windows Server (WSFC) para alta disponibilidad y recuperación ante desastres.

Instancia de clúster de conmutación por error

Consiste en tener varios nodos que comparten un almacenamiento común y que pueden asumir el rol de servidor activo en caso de que el nodo principal falle. Los clústeres de conmutación de instancia requieren una configuración especial del hardware, el software y la red, así como una coordinación entre los nodos mediante un testigo (witness). Los clústeres de conmutación de instancia garantizan la disponibilidad del servicio, pero no protegen contra la pérdida o corrupción de los datos al compartir el almacenamiento de los datos. Esta solución tiene un RPO y un RTO moderados, ya que dependen del tiempo que se tarde en detectar el fallo y en activar el nodo secundario. Los clústeres de conmutación de instancia requieren que las instancias de SQL Server estén instaladas en servidores miembros de un clúster WSFC

Database mirroring (Espejo de bases de datos)) 

Esta solución consiste en tener dos instancias de SQL Server que mantienen una copia idéntica de una base de datos mediante el envío del log de transacciones. El database mirroring puede operar en modo síncrono o asíncrono, y puede tener una instancia testigo que supervise el estado de las dos instancias y realice la conmutación por error automáticamente en caso necesario. Proporciona protección contra la pérdida o corrupción de los datos, pero solo se aplica a una base de datos a la vez. Tiene otras limitaciones como que no admite el cifrado transparente de datos (TDE) o los cambios de esquema en línea. Esta solución tiene un RPO y un RTO variables, dependiendo del modo elegido y del tamaño del log.

Log shipping (Envío de Log)

Tendremos una instancia primaria que realiza copias de seguridad periódicas del log de transacciones y las enviará a una o más instancias secundarias que las restauran. El log shipping permite tener varias copias actualizadas (o casi) de una base de datos en diferentes ubicaciones, lo que facilita la recuperación ante desastres. Sin embargo, no ofrece una conmutación por error automática ni una sincronización en tiempo real, por lo que puede haber una pérdida o inconsistencia de los datos. Esta solución tiene un RPO y un RTO altos, ya que dependen de la frecuencia y la duración de las copias de seguridad y las restauraciones.

Otras soluciones de alta disponibilidad

Estas son algunas de las soluciones más populares para lograr la alta disponibilidad en SQL Server, pero no son las únicas. También existen otras opciones como la replicación, el almacenamiento distribuido o los servicios en la nube. Lo importante es evaluar las ventajas y desventajas de cada una, así como los requisitos y objetivos del negocio, para elegir la más adecuada.

Conclusión

Como hemos podido ver SQL Server ofrece diversas soluciones de alta disponibilidad que se adaptan a diferentes escenarios y necesidades. Algunas de estas soluciones requieren un clúster WSFC, mientras que otras no. Es importante conocer las características, ventajas y limitaciones de cada opción, así como los conceptos de RPO y RTO, para tomar una decisión informada y optimizar el rendimiento y la seguridad de los datos.

Espero que os haya gustado este artículo y que os sirva para conocer mejor las opciones de alta disponibilidad que ofrece SQL Server. Como siempre, cualquier duda o comentario, podéis dejarla aquí abajo, por mail o en twitter

Publicado por Roberto Carrancio en Alta Disponibilidad, SQL Server, 7 comentarios