Aggiornare database replicati

SQL Server 2017SQL Server 2017 supporta l'aggiornamento di database replicati da versioni precedenti di SQL ServerSQL Server senza che sia necessario, durante l'aggiornamento di un nodo, arrestare le attività negli altri nodi. Verificare che vengano osservate le regole relative alle versioni supportate in una topologia:

  • La versione del server di distribuzione è indifferente, purché superiore o uguale alla versione del server di pubblicazione (in molti casi l'istanza del server di distribuzione è la stessa del server di pubblicazione).

  • La versione del server di pubblicazione è indifferente, purché inferiore o uguale alla versione del server di distribuzione.

  • La versione del Sottoscrittore dipende dal tipo di pubblicazione:

    • La versione di un Sottoscrittore per una pubblicazione transazionale può essere una versione qualsiasi all'interno di un intervallo di due versioni, in base alla versione del server di pubblicazione. Ad esempio: un server di pubblicazione SQL Server 2012SQL Server 2012 può avere i sottoscrittori SQL Server 2014SQL Server 2014 e SQL Server 2016SQL Server 2016, mentre un server di pubblicazione SQL Server 2016SQL Server 2016 può avere i sottoscrittori SQL Server 2014SQL Server 2014 e SQL Server 2012SQL Server 2012.

    • Un Sottoscrittore a una pubblicazione di tipo merge può essere qualsiasi versione inferiore o uguale alla versione del server di pubblicazione.

Nota

Questo argomento è disponibile nella Guida del programma di installazione e nella documentazione online di SQL ServerSQL Server. I collegamenti visualizzati in grassetto nella Guida del programma di installazione si riferiscono ad argomenti disponibili solo nella documentazione online.

Esecuzione dell'agente di lettura log per la replica transazionale prima dell'aggiornamento

Prima di eseguire l'aggiornamento a SQL Server 2017SQL Server 2017, è necessario assicurarsi che tutte le transazioni completate dalle tabelle pubblicate siano state elaborate dall'agente di lettura log. Per assicurarsi che tutte le transazioni siano state elaborate, eseguire i passaggi seguenti per ogni database che contiene pubblicazioni transazionali:

  1. Verificare che l'agente di lettura log sia in esecuzione per il database. Per impostazione predefinita, l'agente viene eseguito in modo continuativo.

  2. Arrestare l'attività dell'utente nelle tabelle pubblicate.

  3. Concedere tempo all'agente di lettura log per copiare transazioni nel database di distribuzione, quindi arrestare l'agente.

  4. Eseguire sp_replcmds per verificare che siano state elaborate tutte le transazioni. Il set di risultati restituito da questa procedura deve essere vuoto.

  5. Eseguire sp_replflush per chiudere la connessione da sp_replcmds.

  6. Eseguire l'aggiornamento del server a SQL Server 2017SQL Server 2017.

  7. Riavviare SQL ServerSQL Server Agent e l'agente di lettura log se non vengono avviati automaticamente dopo l'aggiornamento.

Esecuzione degli agenti per una replica di tipo merge dopo l'aggiornamento

Al termine dell'aggiornamento, eseguire l'agente snapshot per ogni pubblicazione di tipo merge e l'agente di merge per ogni sottoscrizione in modo da aggiornare i metadati della replica. Non occorre applicare il nuovo snapshot in quanto non è necessario reinizializzare le sottoscrizioni. I metadati delle sottoscrizioni vengono aggiornati alla prima esecuzione dell'agente di merge successiva all'aggiornamento. Ciò significa che il database di sottoscrizione può rimanere online e attivo durante l'aggiornamento del server di pubblicazione.

La replica di tipo merge archivia i metadati delle pubblicazioni e delle sottoscrizioni in alcune tabelle di sistema nei database di pubblicazione e sottoscrizione. L'esecuzione dell'agente snapshot aggiorna i metadati delle pubblicazioni e l'esecuzione dell'agente di merge aggiorna i metadati delle sottoscrizioni. È semplicemente richiesta la generazione di uno snapshot di pubblicazione. Se una pubblicazione di tipo merge utilizza filtri con parametri, ogni partizione includerà uno snapshot. Non è necessario aggiornare gli snapshot partizionati.

Eseguire gli agenti da SQL Server Management StudioSQL Server Management Studio, da Monitoraggio replica o dalla riga di comando. Per ulteriori informazioni sull'esecuzione dell'agente snapshot, vedere gli argomenti seguenti:

Aggiornamento alle versioni Standard, Workgroup o Express

Prima di eseguire l'aggiornamento da un'edizione all'altra di SQL Server 2017SQL Server 2017, verificare che le funzionalità utilizzate siano supportate nell'edizione a cui si esegue l'aggiornamento. Per altre informazioni, vedere la sezione sulla replica in Funzionalità supportate dalle edizioni di SQL Server 2016.

Sincronizzazione Web per la replica di tipo merge

L'opzione di sincronizzazione Web per la replica di tipo merge richiede che il listener per la replica di SQL ServerSQL Server (replisapi.dll) venga copiato nella directory virtuale nel server Internet Information Services (IIS) utilizzato per la sincronizzazione. Quando si configura la sincronizzazione Web, il file viene copiato nella directory virtuale dalla procedura di configurazione guidata della sincronizzazione Web. Se si aggiornano i componenti di SQL ServerSQL Server installati nel server IIS, è necessario copiare manualmente replisapi.dll dalla directory COM alla directory virtuale nel server IIS. Per altre informazioni sulla configurazione della sincronizzazione Web, vedere Configurazione della sincronizzazione Web.

Ripristino di un database replicato da una versione precedente

Per verificare che in seguito al ripristino del backup di un database replicato vengano mantenute le impostazioni di replica di una versione precedente, eseguire il ripristino in un server e un database con gli stessi nomi del server e del database utilizzati per la creazione della copia di backup.

Vedere anche

Amministrazione (Replica)
Compatibilità con le versioni precedenti della replica
Novità (Replica)
Aggiornamenti di versione ed edizione supportati
Eseguire l'aggiornamento a SQL Server 2016