Contained Availability Groups en SQL Server 2022 AlwaysON
Bienvenidos/as a un nuevo post en el blog de Aleson ITC. Como muchos sabemos, en SQL Server 2022 hay muchas novedades que nos están encantando y una de las menos conocidas es la capacidad de administrar Contained Availability Groups.
¿Qué son los Contained Availability Groups?
- Un Contained AG es un tipo especial de grupo de disponibilidad Always On que va más allá de replicar solo las bases de datos de usuario.
- Además de las bases de datos de usuario, también incluye partes relevantes de las bases de datos del sistema, como master y msdb.
- Piensa en él como el “contexto de ejecución” para las aplicaciones que utilizan este grupo de disponibilidad.
¿Por qué son importantes?
- En los grupos de disponibilidad tradicionales, las bases de datos de usuario se replican, pero los objetos del sistema (como inicios de sesión, usuarios, permisos y trabajos de SQL Agent) no lo están automáticamente.
- Esto significa que los administradores deben asegurarse manualmente de que cualquier cambio en estos objetos se duplique en todas las réplicas del grupo.
- Con los Contained AGs, los objetos del sistema también se replican automáticamente.
¿Cómo funcionan los Contained Availability groups?
¿Cuáles son las grandes diferencias entre los grupos de alta disponibilidad contenidos y los grupos de alta disponibilidad de toda la vida?
Desde 2012, hemos vivido con la complejidad de replicar información en el nodo secundario a medida que vamos añadiéndola al primario, jobs, logins, permisos, etc.
En el caso de Aleson ITC, lo hemos automatizado y gestionado con una herramienta propia que denominamos Sync-Objects y que hace uso del versátil módulo de powershell dbatools.
Con la implementación de los grupos de disponibilidad contenidos, tenemos la facilidad de poder implementar directamente esta información dentro de las bases de datos de sistema que forman parte del propio grupo de alta disponibilidad y, por lo tanto, sólo será accesible desde dentro del propio AG.
Si nos conectamos al listener del grupo de disponibilidad contenido, accederemos a la información de las bases de datos master y msdb propias de este grupo de disponibilidad.
Si nos conectamos directamente a la instancia de SQL Server, nos conectaremos a la master o msdb genéricas del servidor (las de siempre).
Creación de grupos de alta disponibilidad contenido
Para crear un grupo de alta disponibilidad contenido, se haría de una manera muy simple con el propio wizard de SQL Server.
Para comenzar, clickamos sobre «Always On High Availability» y seleccionamos la opción «New Availability Group Wizard»
Una vez seleccionemos dicha opción en el wizard, vamos a nombrar nuestro grupo «AG-Aleson» y, en las opciones, podemos asignarle la opción «Contained», marcado en rojo en la siguiente imagen.
Si marcamos la opción «Reuse System Databases» haríamos una copia de las bases de datos de sistema actuales en nuestro grupo de alta disponibilidad y quedaría de la siguiente manera:
Como vemos, las bases de datos de sistema se añaden con el nombre «AG-Aleson_master» y «AG-Aleson_msdb» automáticamente. Nosotros sólo hemos añadido la base de datos «TESTDB» a nuestro grupo de alta disponibilidad.
Conclusión:
Dado que SQL Server nos proporciona esta opción de manera intrínseca, vemos muy recomendable y útil usar las bases de datos de sistema contenidas en el AG para la creación específica de los jobs de cada Availability Group (en AG-Aleson_msdb) y la creación de grupos de permisos, logins, etc. (AG-Aleson_master).
Con esto ya tenemos algo más de idea de cómo sacar la máxima potencia a SQL Server 2022, ¡No os perdáis las siguientes noticias y novedades de SQL Server!
¿Necesitas ayuda en la gestión de tus datos? ¡Contáctanos!
Azure Data Engineer con más de 7 años de experiencia. Conocimiento de múltiples herramientas y enfocado en el mundo del dato. Experto en tuning de queries y mejora de rendimiento de Base de Datos. Profesional apasionado por la tecnología y los deportes al aire libre. En mi tiempo libre, me encontrarás jugando vóley playa o disfrutando con nuevos videojuegos.