Share via


Utilizzo di più versioni di SQL Server in una topologia di replica

Data aggiornamento: 15 settembre 2007

La replica consente di replicare i dati tra versioni diverse di Microsoft SQL Server. In questo argomento vengono fornite informazioni su:

  • Versioni di SQL Server supportate
  • Mapping dei tipi di dati di SQL Server 2005 per le versioni precedenti
  • Ripristino di un database replicato da una versione precedente
  • Livello di compatibilità per le pubblicazioni di tipo merge

Per informazioni sulla replica dei dati in Microsoft SQL Server 2005 Express Edition e Microsoft SQL Server Compact Edition, vedere Replica di dati in SQL Server Express e Replica di dati in SQL Server Compact Edition. Per informazioni sulle funzionalità supportate da ogni edizione di SQL Server, vedere Funzionalità supportate dalle edizioni di SQL Server 2005.

[!NOTA] Questo argomento è disponibile nella Guida in linea del programma di installazione e nella documentazione in linea di SQL Server 2005. I collegamenti visualizzati in grassetto nella Guida in linea del programma di installazione si riferiscono ad argomenti disponibili solo nella documentazione in linea di .

Versioni di SQL Server supportate

SQL Server versione 7.0 con Service Pack 4 (SP4) è la versione minima necessaria per partecipare a una topologia di replica con SQL Server 2005. Se si utilizza SQL Server 2000 è richiesto il Service Pack 3 (SP3).

È possibile eseguire funzionalità di replica tra versioni diverse di SQL Server anche se tali funzionalità sono spesso limitate alle funzionalità supportate dalla versione meno recente utilizzata. Se, ad esempio, si aggiorna un server di distribuzione a un'istanza di SQL Server 2005, ma sono presenti un server di pubblicazione che esegue un'istanza di SQL Server 2000 e un Sottoscrittore che esegue un'istanza di SQL Server 7.0, saranno disponibili solo le funzionalità generali e di replica di SQL Server 7.0.

[!NOTA] Poiché il formato di archiviazione su disco di SQL Server è lo stesso negli ambienti a 64 bit e in quelli a 32 bit, una topologia di replica può combinare istanze del server in esecuzione in un ambiente a 32 bit e in un ambiente a 64 bit.

Per tutti i tipi di replica, la versione del server di distribuzione non deve essere precedente a quella del server di pubblicazione (in molti casi l'istanza del server di distribuzione è la stessa istanza dal server di pubblicazione). È possibile utilizzare SQL Server 2005 come server di distribuzione remoto per SQL Server 2005 e SQL Server 2000, ma non per SQL Server 7.0. Nelle tabelle seguenti vengono fornite ulteriori informazioni sulle versioni di SQL Server che possono partecipare alla stessa topologia. Per ulteriori informazioni sulle funzionalità di replica supportate nelle diverse edizioni di SQL Server, vedere Funzionalità supportate dalle edizioni di SQL Server 2005.

Replica transazionale e replica snapshot con Sottoscrittori di sola lettura

Server di distribuzione

SQL Server 7.0

SQL Server 2000

SQL Server 2005

Server di pubblicazione

SQL Server 7.0

SQL Server 7.0

SQL Server 2000

SQL Server 2000

SQL Server 2005

Sottoscrittori

SQL Server 7.0

SQL Server 2000

SQL Server 2005

SQL Server 7.0

SQL Server 2000

SQL Server 2005

SQL Server 7.0

SQL Server 2000

SQL Server 2005

Nella tabella precedente è possibile osservare che tra il Sottoscrittore di sola lettura di una pubblicazione transazionale e il server di pubblicazione possono intercorrere al massimo due versioni. Ad esempio, un server di pubblicazione SQL Server 7.0 può avere Sottoscrittori SQL Server 2005 e un server di pubblicazione SQL Server 2005 può avere Sottoscrittori SQL Server 7.0.

Replica transazionale con Sottoscrittori aggiornabili

Server di distribuzione

SQL Server 7.0

SQL Server 2000

SQL Server 2005

Server di pubblicazione

SQL Server 7.01

SQL Server 7.01

SQL Server 20002

SQL Server 20002

SQL Server 20053

Sottoscrittori

SQL Server 7.0

SQL Server 7.0

SQL Server 2000

SQL Server 2005

SQL Server 7.0

SQL Server 2000

SQL Server 2005

1 Per un server di pubblicazione SQL Server 7.0 sono supportati solo Sottoscrittori SQL Server 7.0.

2 Per un server di pubblicazione SQL Server 2000 sono supportati Sottoscrittori SQL Server 7.0, SQL Server 2000 e SQL Server 2005.

3 Per un server di pubblicazione SQL Server 2005 sono supportati Sottoscrittori SQL Server 2000 e SQL Server 2005.

Replica di tipo merge

Server di distribuzione

SQL Server 7.0

SQL Server 2000

SQL Server 2005

Server di pubblicazione

SQL Server 7.0

SQL Server 7.0

SQL Server 2000

SQL Server 2000

SQL Server 2005

Sottoscrittori

SQL Server 7.0

SQL Server 7.0

SQL Server 2000

SQL Server 7.0

SQL Server 2000

SQL Server 2005

Nella tabella precedente è possibile osservare che il Sottoscrittore di una pubblicazione di tipo merge può essere qualsiasi versione non successiva a quella del server di pubblicazione. Per ulteriori informazioni sulla compatibilità per le versioni precedenti, vedere la sezione "Livello di compatibilità per le pubblicazioni di tipo merge" di seguito in questo argomento.

SQL Server 7.0 e SQL Server Management Studio

SQL Server Management Studio può eseguire la connessione a istanze che eseguono SQL Server 2000 o versioni successive. Per i Sottoscrittori che eseguono SQL Server 7.0:

  • Le sottoscrizioni e le pubblicazioni possono essere create con gli strumenti di SQL Server 7.0, gli strumenti di SQL Server 2000, oggetti SQL-DMO (Distributed Management Objects) o stored procedure.
  • Non è possibile avviare gli agenti delle sottoscrizioni pull da Management Studio o Monitoraggio replica. È possibile determinare che gli agenti vengano eseguiti in base a una pianificazione quando viene creata la sottoscrizione oppure su richiesta dalla riga di comando.

Le sottoscrizioni dei Sottoscrittori che eseguono SQL Server 7.0 vengono visualizzate in Management Studio e in Monitoraggio replica dopo essere state create. Per informazioni sulla creazione di sottoscrizioni e pubblicazioni e sull'esecuzione degli agenti, vedere la documentazione in linea di SQL Server 7.0.

Utilizzo di un server di distribuzione SQL Server 2005 con un server di pubblicazione che esegue SQL Server 2000

È possibile utilizzare SQL Server 2005 come server di distribuzione remoto per i server di pubblicazione che eseguono SQL Server 2000. In questo scenario, per modificare le proprietà degli agenti, eseguire nel server di distribuzione le stored procedure seguenti. Queste procedure consentono di modificare proprietà nuove introdotte in SQL Server 2005:

In una configurazione con un server di pubblicazione e un server di distribuzione che eseguono SQL Server 2000 è possibile modificare le credenziali utilizzate dagli agenti per stabilire le connessioni tramite sp_changedistpublisher e sp_changesubscriber. Tuttavia, se si aggiorna il server di distribuzione a SQL Server 2005, non sarà possibile utilizzare queste procedure per modificare le credenziali utilizzate nei processi esistenti degli agenti (le procedure non hanno effetto sui processi creati dopo avere chiamato le procedure). Per modificare le credenziali dei processi esistenti degli agenti, chiamare una delle quattro procedure elencate in precedenza.

Mapping dei tipi di dati di SQL Server 2005 per le versioni precedenti

In SQL Server 2005 sono stati introdotti vari tipi di dati nuovi. Questi nuovi tipi di dati vengono mappati a tipi di dati compatibili nel Sottoscrittore se vengono utilizzate sottoscrizioni push da un server di distribuzione SQL Server 2005.

Tipo di dati di SQL Server 2005 Tipo di dati di SQL Server 2000 o SQL Server 7.0

xml

ntext

Tipi CLR definiti dall'utente (UDT)

image

varchar(max)

text

nvarchar(max)

ntext

varbinary(max)

image

È necessario verificare che i tipi varchar(max), nvarchar(max), varbinary(max), xmlL e i tipi CLR definiti dall'utente siano mappati in modo appropriato se replicati in Sottoscrittori che eseguono versioni precedenti di SQL Server. Questa operazione viene eseguita per impostazione predefinita per gli articoli nelle pubblicazioni di tipo merge. Il funzionamento del mapping per questi tipi viene controllato dalle opzioni dello schema 0x20, 0x10000000 e 0x20000000 per sp_addarticle e sp_addmergearticle. Per ulteriori informazioni sull'impostazione delle opzioni di schema, vedere Procedura: Impostazione delle opzioni dello schema (SQL Server Management Studio) e How to: Specify Schema Options (Replication Transact-SQL Programming).

In SQL Server 2000 sono stati introdotti due tipi di dati che vengono mappati a tipi di dati compatibili per SQL Server 7.0. Questi nuovi tipi di dati vengono mappati a tipi di dati compatibili nel Sottoscrittore se vengono utilizzate sottoscrizioni push da un server di distribuzione SQL Server 2005 o SQL Server 2000.

Tipo di dati di SQL Server 2005 o SQL Server 2000 Tipo di dati di SQL Server 7.0

SQL_VARIANT

IMAGE

BIGINT

DECIMAL

Ripristino di un database replicato da una versione precedente

Quando si ripristina un backup di un database replicato da una versione precedente, è possibile mantenere le impostazioni di replica. Se si esegue il ripristino in un server e in un database aventi lo stesso nome del server e del database nei quali è stato eseguito il backup, o se si specifica l'opzione KEEP_REPLICATION, le impostazioni di replica vengono mantenute. Per ulteriori informazioni, vedere RESTORE (Transact-SQL). Dopo il ripristino del database, eseguire sp_vupgrade_replication (Transact-SQL) per aggiornare i dati dello schema e di sistema in modo da garantire il supporto della replica al livello del prodotto corrente.

Sebbene sia possibile mantenere le impostazioni di replica dopo il ripristino da un backup eseguito in una versione precedente, questa viene raramente utilizzata come opzione di aggiornamento. È più comune aggiornare il database replicato nell'ambito di un aggiornamento del prodotto oppure ricreare il database e la configurazione di replica da un set di script.

Livello di compatibilità per le pubblicazioni di tipo merge

Nella replica di tipo merge il livello di compatibilità consente di determinare quali funzionalità possono essere utilizzate dalle pubblicazioni in un determinato database. I valori disponibili sono compresi tra 70RTM (SQL Server 7.0 senza Service Pack installati) e 90RTM. Il livello di compatibilità viene specificato nel modo seguente:

Per le funzionalità seguenti è necessario un livello di compatibilità di 90RTM o superiore:

Le funzionalità seguenti non dipendono dal livello di compatibilità, tuttavia richiedono l'agente di merge fornito con SQL Server 2005. I Sottoscrittori che eseguono versioni precedenti di SQL Server funzionano come se la funzionalità non fosse attivata:

Funzionamento del livello di compatibilità delle pubblicazioni in SQL Server 2005

È importante comprendere il funzionamento del livello di compatibilità delle pubblicazioni:

  • Il livello di compatibilità delle pubblicazioni non è collegato al livello di compatibilità dei database.
  • Se si crea una pubblicazione con sp_addmergepublication o tramite oggetti RMO (Replication Management Objects), il livello di compatibilità della pubblicazione è impostato su 80RTM per impostazione predefinita. Se si crea una pubblicazione con Creazione guidata nuova pubblicazione, il livello di compatibilità della pubblicazione viene determinato in base alle opzioni selezionate nella pagina Tipi di Sottoscrittore della procedura guidata.
  • Nelle versioni precedenti di SQL Server il livello di compatibilità delle pubblicazioni viene aumentato automaticamente se si attiva una funzionalità che richiede un livello superiore. In SQL Server 2005 è necessario impostare manualmente il livello di compatibilità delle pubblicazioni su 90RTM prima di attivare le funzionalità che richiedono questo livello di compatibilità.
    Se si aggiorna un server di pubblicazione da SQL Server 7.0 e si selezionano una o più funzionalità che richiedono un livello di compatibilità di 80RTM, il livello viene aumentato automaticamente.
  • È possibile diminuire il livello di compatibilità delle pubblicazioni solo se l'agente snapshot non è stato avviato e se non esistono sottoscrizioni della pubblicazione.
  • Tutte le pubblicazioni di un database devono avere lo stesso livello di compatibilità. Questo requisito comporta le conseguenze indicate di seguito:
    • Se un database contiene una pubblicazione con un livello di compatibilità inferiore (ad esempio 80RTM) e si desidera aggiungere allo stesso database un'altra pubblicazione di livello 90RTM, è necessario aumentare manualmente il livello della prima pubblicazione prima di aggiungere la nuova pubblicazione.
    • Se un database contiene due o più pubblicazioni con livelli di compatibilità inferiori e si desidera aggiungere allo stesso database un'altra pubblicazione di livello 90RTM, è necessario eliminare tutte le pubblicazioni esistenti tranne una, aumentare il livello della pubblicazione rimanente a 90RTM, ricreare le pubblicazioni eliminate con il livello 90RTM e creare la nuova pubblicazione con il livello 90RTM.

Vedere anche

Concetti

Compatibilità con le versioni precedenti della replica
Aggiornamento dei database replicati

Altre risorse

Miglioramenti delle funzionalità di replica

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

15 settembre 2007

Nuovo contenuto:
  • Aggiunta di una nota indicante che il formato di archiviazione su disco di SQL Server è lo stesso negli ambienti a 64 bit e in quelli a 32 bit.

14 aprile 2006

Contenuto modificato:
  • Aggiunta di tabelle allo scopo di chiarire le versioni di SQL Server che è possibile utilizzare nella stessa topologia di replica.
  • Aggiunta di informazioni sulle opzioni dello schema utilizzate per mappare i tipi di dati.
  • Rimozione dell'informazione che SQL Server 7.0 può utilizzare un'istanza di SQL Server 2005 come server di distribuzione remoto. La configurazione non è supportata.