Mi organización planea adoptar los Grupos de disponibilidad de SQL Server 2012 y estoy tratando de comprender qué impacto (si lo hubiera) tendrá en nuestro proceso de actualización de aplicaciones.
Lanzamos actualizaciones de aplicaciones en un ciclo de 8 semanas y cualquier lanzamiento podría incluir cambios de esquema y / o migraciones de datos.
Lo que estoy tratando de entender es si la solución HA / DR maneja o no los cambios de esquema de forma transparente (se agregan nuevas columnas, índices a los secundarios) o si se requiere intervención manual para crear el esquema en cada instancia y luego volver a activar Always On.
La pieza de migración de datos que supongo se maneja de manera transparente, pero me gustaría confirmar eso también.
Supongo que también estoy asumiendo que no hay diferencia en estos comportamientos basados en la configuración de los Grupos de disponibilidad que también pueden ser falsos. Por favor hagamelo saber.
En una palabra; En cualquier versión dada de mi aplicación, puedo cambiar una tabla muy grande (de 10 a 100 millones de registros) al agregarle columnas. Algunas columnas pueden ser "netas nuevas" para que puedan hacer uso de la funcionalidad de cambio de esquema de Enterprise Online. Otras columnas pueden ser una refactorización de una columna existente (FullName se divide en FirstName y LastName) y se ejecutará una migración para cada fila de la tabla para completar estos campos. ¿Alguno de estos comportamientos requiere que los DBA cambien la configuración de AlwaysOn o se maneja de manera predeterminada y todos los secundarios obtienen las declaraciones DDL y DML "gratis"?
Gracias por cualquier claridad que pueda proporcionar.
Respuestas:
Los cambios de esquema y los cambios de datos son esencialmente los mismos. Funciona como un reflejo tradicional hoy: lo que sucedió en el registro en el primario ocurre en el secundario. No todo lo que sucede en Las Vegas tiene que quedarse en Las Vegas. :-)
Es posible que desee tener cuidado, cuando tiene una aplicación que apunta a la primaria y la actualiza para que coincida con los cambios de esquema. Pero es posible que tenga una aplicación diferente que apunte a la secundaria (por ejemplo, con intención de solo lectura), y ese cambio de aplicación también debería sincronizarse.
Otro problema potencial es cuando su base de datos que forma parte de un grupo de disponibilidad tiene referencias a objetos en otras bases de datos (por ejemplo, una tabla de búsqueda estática que se almacena en una base de datos de servicios públicos). Si cambian y el AG depende de esos objetos, tendrá que empujar esos cambios manualmente. Lo mismo es cierto para los trabajos, los inicios de sesión a nivel de servidor, los servidores vinculados, etc., todo lo que vive fuera de la base de datos y / o no es transaccional. Los usuarios de la base de datos pueden quedar huérfanos (aparte de los usuarios contenidos). Sé que esto es probablemente obvio, pero quería enumerarlo explícitamente para completarlo.
fuente
Más respuestas aquí de Remus, los usuarios están pidiendo posiblemente eliminar consultas en la réplica secundaria y verificar el estado del tamaño de la cola de rehacer en la tabla: sys.dm_hadr_database_replica_states AlwaysOn DDL y cambios de esquema
fuente