¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. SQL Server 2019
  3. Grupos de disponibilidad Always On
Extrait - SQL Server 2019 Aprender a administrar una base de datos transaccional con SQL Server Management Studio
Extractos del libro
SQL Server 2019 Aprender a administrar una base de datos transaccional con SQL Server Management Studio Volver a la página de compra del libro

Grupos de disponibilidad Always On

Inicio

En muchos casos de instalación de servidores, es necesario prever soluciones de respaldo en caso de falla de hardware para garantizar la continuidad del servicio. Existen muchas soluciones, tanto a nivel de arquitectura como a nivel de sistema.

Con SQL Server se proponen varias soluciones:

  • Instalación de la instancia de SQL Server en clúster (requiere almacenamiento compartido entre instancias de SQL Server para almacenar archivos de base de datos).

  • Duplicación de la base de datos: permite tener una actualización de la instancia secundaria de forma sincrónica y con conmutación por error automática si hay tres instancias de SQL Server presentes (funcionalidad en desuso).

  • Log Shipping (transmisión del diario de transacciones): le permite tener varias instancias de servidores secundarios, posiblemente accesibles en modo de solo lectura, pero solo con actualización asincrónica.

La primera de estas soluciones se establece en el nivel de instancia de SQL Server, pero debido a la necesidad de almacenamiento compartido, puede ser más costosa.

Las otras dos soluciones se configuran a nivel de cada base de datos. Aunque todavía están presentes, se sustituyen por los grupos de disponibilidad, que combinarán las ventajas de las dos anteriores sin las desventajas (solo en la edición Enterprise):

  • Mínimo dos réplicas (posibilidad de actualizaciones sincrónicas)....

Instalación del servicio de clúster Windows

La arquitectura mínima para instalar grupos de disponibilidad de SQL Server, es un controlador de dominio de Windows y dos servidores miembro de dominio, con SQL Server instalado.

Todos los servidores SQL que formarán parte del clúster, deben tener el mismo hardware y software. Se debe asegurar tener espacio en disco suficiente para las bases de datos que formarán parte de los grupos de disponibilidad, al estar presentes en cada servidor. Cada servidor también debe tener una pasarela predeterminada (incluso si no es necesario el acceso fuera de su red).

A continuación se puede instalar la funcionalidad Clúster de conmutación por error de Windows en cada uno de los servidores SQL Server.

images/Capitulo11_pag3.png

Para terminar, hay que crear el clúster. Para esto, a partir de la consola Asistente para crear un clúster en las herramientas de administración de Windows, hay que lanzar el asistente de creación del clúster e indicar el nombre de los servidores que lo forman:

images/Imagen_2.png

Después validar todas las pruebas de configuración.

images/imagen_3.png

Al final del asistente, si las pruebas son concluyentes, incluso si hay advertencias, se crea el clúster. Aún es conveniente verificar la lista de advertencias para corregir tantas como sea posible (por ejemplo, si sus servidores solo están conectados por una sola red, habrá una advertencia...

Configuración de la instancia SQL Server y de las bases de datos

El servicio de clúster instalado y configurado, ahora debe configurar SQL Server para poder usarlo.

Como la funcionalidad del clúster de Windows se basa en un dominio, las cuentas de servicio para SQL Server deben ser cuentas de dominio (consulte el capítulo Instalación y configuración: Instalación de SQL Server).

Ahora es posible habilitar cada instancia de SQL Server para el uso de grupos de disponibilidad. Para ello, en la consola del Administrador de configuración de SQL Server 2019, en las Propiedades de la instancia de SQL Server, debe marcar la casilla Habilitar los grupos de disponibilidad AlwaysOn.

images/capitulo11_pag13.png

Entonces es necesario reiniciar el servicio de SQL Server.

Varias bases de datos pueden pertenecer al mismo grupo de disponibilidad. El funcionamiento de la actualización de los distintos nodos del grupo, se basa en el uso del registro de transacciones de estas bases. Por eso deben estar absolutamente en modo de recuperación completa y, por lo tanto, requerirán copias de seguridad del registro de transacciones regulares (consulte el capítulo Copia de seguridad - Establecimiento de las copias de seguridad).

También se debe realizar una copia de seguridad completa de las bases de datos afectadas, antes de la creación del grupo de disponibilidad.

Creación de un grupo de disponibilidad

La creación del grupo de disponibilidad se puede realizar de tres formas diferentes:

  • Gráficamente con SQL Server Management Studio, iniciando el asistente de Nuevo grupo de disponibilidad:

  • Con Transact SQL (T-SQL).

  • Con PowerShell.

Como esta operación es puntual, la forma más sencilla es hacerlo gráficamente en SQL Server Management Studio, habiéndose tomado la precaución de conectarse en primer lugar a todos los servidores SQL afectados por la operación:

images/cap11_pag14.png

Se pedirá un nombre de grupo.

images/cap11_pag15.png

Debe seleccionar al menos una base de datos que cumpla con los requisitos previos (se pueden agregar bases de datos adicionales más adelante).

images/cap11_pag16.png

Debe seleccionar los servidores que formarán parte del grupo (se pueden agregar servidores adicionales más adelante) indicando si realizarán actualizaciones sincrónicas o asincrónicas y si participan en la conmutación por error automática en caso de error de un nodo del clúster.

Una última opción le permite indicar si la réplica secundaria acepta acceso de solo lectura. Esto requerirá que el lado del cliente indique "solo lectura" en la cadena de conexión utilizada.

images/cap11_pag17.png

En la pestaña Preferencias de copia de seguridad, es posible especificar las preferencias del servidor para las operaciones de copia de seguridad. Por lo tanto, estos...

Conexión a un grupo de disponibilidad

La conexión a SQL Server se realiza como cualquier otro servidor, ya sea a través de SQL Server Management Studio u otra aplicación que utilice una cadena de conexión. Para el nombre del servidor, solo debe indicar el nombre DNS indicado durante la creación del grupo de disponibilidad. De hecho, sin saber qué nodo del clúster gestiona el grupo de disponibilidad, utilizar el nombre real de uno de los servidores puede conectar la aplicación cliente a un nodo secundario y así no tener acceso a la base de datos deseada en modo lectura/escritura.

Si el nodo principal deja de funcionar, el servicio de clúster de Windows bascula automáticamente a uno de los nodos secundarios, como principal. Así, para el usuario, casi no hay interrupción del servicio (aparte de un corte de conexión en el momento del error y durante la conmutación, que dura unos segundos). Será suficiente con reiniciar la acción que estaba haciendo antes de que ocurriera el fallo.

Para simplificar la gestión de los derechos de acceso a las bases de datos que forman parte del grupo de disponibilidad, es preferible no utilizar una cuenta de conexión, sino usuarios de bases de datos SQL con contraseña o usuario Windows (consulte el capítulo Gestión de la seguridad del acceso - Gestión de los usuarios de la base de datos). Así...

Ejercicio: crear un acceso a una base en un grupo de disponibilidad

1. Enunciado

La base de datos LibroSSMS se integrará en un grupo de disponibilidad. Por lo tanto, es necesario prepararla para esto y crear una cuenta de usuario SQL, que permita el acceso completo mediante la interfaz gráfica.

2. Corrección

La base de datos debe permitir el uso de cuentas de usuario sin una cuenta de conexión. Por tanto, esta función debe estar activada en el servidor y en la base de datos. Esta última también debe estar en modo de recuperación completa:

Use LibroSSMS;  
go  
Sp_configure 'contained database authentication',1  
Reconfigure 
images/Cap11_pag26.png

Falta crear la cuenta de usuario de base de datos de tipo Usuario SQL con inicio de sesión.

images/Cap11_pag24.png

Entonces debe convertirse en miembro del rol db_owner:

images/Cap11_pag25.png