Impacto de cambiar el nivel de compatibilidad de la base de datos para una base de datos replicada publicada de 90 a 100

11

Tengo un servidor SQL Server 2008 R2 con un montón de bases de datos publicadas que actualmente operan bajo el nivel de compatibilidad 90 (2005).

Las bases de datos de suscripción también son SQL Server 2008 R2, sin embargo, las bases de datos de destino están configuradas en el nivel de compatibilidad 100 y la replicación funciona bien.

Si cambio el nivel de compatibilidad para las bases de datos publicadas, ¿afectará la replicación de alguna manera, o será solo un caso de reinicializar todas las suscripciones y reiniciar la replicación?

Sospecho que cambiar el nivel de compatibilidad de la base de datos publicada puede cambiar ligeramente la forma en que funcionan los procedimientos almacenados de replicación, pero no estoy 100% seguro.

¿Es este el caso?

Beto
fuente
Pregunta interesante, pero ¿hay alguna razón por la que estas bases de datos necesiten cambiar su nivel de compatibilidad? Si las cosas funcionan bien, probablemente lo dejaría solo ...
Jon Seigel
La razón principal por la que me gustaría cambiarlos es que la base de datos y los servidores en los que se encuentran se han actualizado de una caja 2005 de un solo nodo a un clúster 2008R2 de múltiples nodos. Además, hay algunos otros bits de funcionalidad (como MERGE, etc.) que me gustaría poder comenzar a utilizar.
Bob
1
Es posible que desee leer esta pregunta sobre lo que hace el nivel de compatibilidad: dba.stackexchange.com/questions/5166/…
Jon Seigel
El fin de la civilización. Gatos y perros viviendo juntos. Histeria colectiva. También debo mencionar que puede causar un cierre del gobierno. Sin embargo, parece estar claro en eso.
swasheck

Respuestas:

4

Puedes seguir los siguientes pasos:

  • Asegúrese de que el Log Reader Agent se esté ejecutando para la base de datos. Por defecto, el agente se ejecuta continuamente.
  • Detener la actividad del usuario en las tablas publicadas.
  • Dé tiempo al Agente de Log Reader para copiar transacciones en la base de datos de distribución y luego detenga el agente.
  • Ejecute sp_replcmds para verificar que se hayan procesado todas las transacciones. El conjunto de resultados de este procedimiento debe estar vacío.
  • Ejecute sp_replflush para cerrar la conexión desde sp_replcmds.
  • Cambiar el nivel de compatibilidad de la base de datos .
  • Inicie el Log Reader Agent.
Kin Shah
fuente
Tengo una configuración muy similar y quiero hacer lo mismo, pero mi base de datos de distribución también está en modo de compatibilidad 90. Por lo que entiendo, el distribuidor no puede operar en un modo de compatibilidad inferior como el editor. Entonces, ¿el orden de las operaciones sería simplemente insertar "Cambiar el nivel de compatibilidad del distribuidor" antes de "Cambiar el nivel de compatibilidad de la base de datos (publicada)", después de que el lector de registros se haya apagado?
Queue Mann
@QueueMann "Change compatibility level of distributor" before "Change the compatibility level of the (published) database"eso es correcto. La base de datos de distribución debe estar en el mismo nivel de compatibilidad o superior que Publisher. Un editor puede estar en el mismo nivel o en un nivel inferior que un distribuidor.
Kin Shah
2

Hicimos esto, solo para estar seguros, dejamos de replicar esa base de datos, cambiamos el nivel de compatibilidad y luego reinicializamos. No incurrimos en problemas. Era una publicación bastante pequeña y solo había una base de datos suscrita. Creo que podría ser más difícil a medida que sus escenarios de replicación se vuelven más complejos. (es decir, suscribirse a db y obtener publicaciones de muchos dbs, etc.)

Rottengeek
fuente