¿Los cambios de esquema "rompen" los grupos de disponibilidad o se manejan de manera transparente?

11

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.

Matt O'Brien
fuente
Más información aquí de Remus, dba.stackexchange.com/questions/179402/…

Respuestas:

9

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.

Aaron Bertrand
fuente
Los inicios de sesión contenidos deben llevarse con la base de datos, ¿correcto? (Supongo que te refieres a los inicios de sesión del servidor)
Jon Seigel
1
@JonSeigel contenía usuarios, sí. No existen los inicios de sesión contenidos. No siendo exigente, solo quiero asegurarme de que la expectativa sea correcta. Por supuesto, esto requiere que todos los nodos tengan contenida la autenticación de la base de datos habilitada y que las bases de datos estén, de hecho, configuradas en CONTAINMENT = PARTIAL.
Aaron Bertrand
Ah, ya veo ahora . Gracias, no he trabajado mucho con las novedades del 2012.
Jon Seigel
@ JonSeigel Actualicé la respuesta para llamarlos explícitamente.
Aaron Bertrand
Gracias Aaron Se plantearon algunas preocupaciones sobre los cambios en el esquema que rompen la replicación y quería confirmar que AlwaysOn (reflejado como usted describió) no exhibe ese comportamiento. Supongo que esto es un malentendido o relacionado específicamente con la replicación.
Matt O'Brien
0

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