Impatto della modifica del livello di compatibilità del DB per un DB replicato pubblicato da 90 a 100


11

Ho un server SQL Server 2008 R2 con un sacco di database pubblicati che attualmente funzionano con il livello di compatibilità 90 (2005).

I database di sottoscrizione sono anche SQL Server 2008 R2, tuttavia i database di destinazione sono impostati sul livello di compatibilità 100 e la replica funziona correttamente.

Se cambio il livello di compatibilità per i database pubblicati, influirà in qualche modo sulla replica o sarà solo un caso di reinizializzazione di tutte le sottoscrizioni e riavvio della replica?

Ho il sospetto che la modifica del livello di compatibilità del database pubblicato possa cambiare il funzionamento delle procedure memorizzate di replica, ma non sono sicuro al 100%.

È questo il caso?


Domanda interessante, ma c'è un motivo per cui questi database devono cambiare il loro livello di compatibilità? Se le cose funzionano bene, probabilmente lo lascerei solo ...
Jon Seigel,

Il motivo principale per cui vorrei cambiarli è che il DB e i server su cui siedono sono stati appena aggiornati da un box 2005 a nodo singolo a un cluster 2008R2 multi-nodo. Inoltre, ci sono alcune altre funzionalità (come MERGE, ecc.) Che vorrei poter iniziare a utilizzare.
Bob

1
Potresti voler leggere questa domanda su cosa fa il livello di compatibilità: dba.stackexchange.com/questions/5166/…
Jon Seigel,

La fine della civiltà. Cani e gatti che vivono insieme. Isteria di massa. Vorrei anche menzionare che potrebbe causare un arresto del governo. Tuttavia, sembra che tu sia in chiaro su quello.
Scambio

Risposte:


4

Puoi seguire i passaggi seguenti:

  • Assicurarsi che Log Reader Agent sia in esecuzione per il database. Per impostazione predefinita, l'agente viene eseguito continuamente.
  • Arresta l'attività dell'utente sulle tabelle pubblicate.
  • Attendere il tempo necessario per l'agente Log Reader per copiare le transazioni nel database di distribuzione, quindi arrestare l'agente.
  • Eseguire sp_replcmds per verificare che tutte le transazioni siano state elaborate. Il set di risultati da questa procedura dovrebbe essere vuoto.
  • Eseguire sp_replflush per chiudere la connessione da sp_replcmds.
  • Modifica il livello di compatibilità del database .
  • Avviare Log Reader Agent.

Ho una configurazione molto simile e voglio fare la stessa cosa, ma anche il mio database di distribuzione è in modalità di compatibilità 90. Da quanto ho capito, il distributore non può operare su una modalità di compatibilità inferiore come editore. Quindi l'ordine delle operazioni dovrebbe semplicemente inserire "Modifica livello di compatibilità del distributore" prima di "Modificare il livello di compatibilità del database (pubblicato)" - dopo che il lettore di log è stato spento?
Coda Mann,

@QueueMann "Change compatibility level of distributor" before "Change the compatibility level of the (published) database"che è corretto. Il database di distribuzione deve essere allo stesso livello di compatibilità o superiore rispetto a Publisher. Un editore può essere allo stesso livello o inferiore di un distributore.
Kin Shah,

2

Abbiamo fatto questo, solo per sicurezza abbiamo smesso di replicare quel database, modificato il livello di compatibilità, quindi reinizializzato. Non abbiamo riscontrato problemi. Era una pubblicazione piuttosto piccola e c'era solo un database sottoscritto. Penso che potrebbe essere più difficile poiché i tuoi scenari di replica diventano più complessi. (ad esempio, abbonando db ottenendo pubblicazioni da molti dbs, ecc.)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.