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:
- sp_MSchange_snapshot_agent_properties (Transact-SQL)
- sp_MSchange_logreader_agent_properties (Transact-SQL)
- sp_MSchange_distribution_agent_properties (Transact-SQL)
- sp_MSchange_merge_agent_properties (Transact-SQL)
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:
- Con il parametro @publication_compatibility_level di sp_addmergepublication. Per ulteriori informazioni, vedere How to: Set the Publication Compatibility Level (Replication Transact-SQL Programming).
- Nella pagina Tipi di Sottoscrittore di Creazione guidata nuova pubblicazione. Per ulteriori informazioni sull'esecuzione di questa procedura guidata, vedere Procedura: Creazione di una pubblicazione e definizione di articoli (SQL Server Management Studio).
- Nella pagina Generale della finestra di dialogo Proprietà pubblicazione - <Publication>. Per ulteriori informazioni, vedere Procedura: Impostazione del livello di compatibilità per le pubblicazioni di tipo merge (SQL Server Management Studio).
Per le funzionalità seguenti è necessario un livello di compatibilità di 90RTM o superiore:
- Record logici. Per ulteriori informazioni, vedere Raggruppamento di modifiche alla righe correlate con record logici.
- Opzioni di caricamento nei Sottoscrittori. Per ulteriori informazioni, vedere Ottimizzazione delle prestazioni della replica di tipo merge con gli articoli di solo download.
- Partizioni non sovrapposte. Per ulteriori informazioni, vedere Filtri di riga con parametri.
- Gestori della regola business. Per ulteriori informazioni, vedere Esecuzione di regole business durante la sincronizzazione di tipo merge.
- Modifiche dello schema mediante le istruzioni ALTER <OBJECT>. Per ulteriori informazioni, vedere Modifiche allo schema nei database di pubblicazione.
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:
- Partizioni pre-calcolate. Per ulteriori informazioni, vedere Ottimizzazione delle prestazioni dei filtri con parametri con le partizioni pre-calcolate.
- Sincronizzazione tramite il Web. Per ulteriori informazioni, vedere Sincronizzazione Web per la replica di tipo merge.
- Agenti a fasi parallele (specificando -ParallelUploadDownload per l'agente di merge). Per ulteriori informazioni, vedere Replication Merge Agent.
- Nuove funzionalità snapshot per pubblicazioni che utilizzano filtri con parametri, che includono le possibilità seguenti:
- Per un Sottoscrittore richiesta di uno snapshot nel caso in cui non ve ne sia uno disponibile per la relativa partizione.
- Per un amministratore pregenerazione e pianificazione della generazione di snapshot.
- Recapito di snapshot con parametri tramite FTP.
Per ulteriori informazioni, vedere Snapshot per pubblicazioni di tipo merge con filtri con parametri e Trasferimento di snapshot tramite FTP.
- Registrazione di informazioni di cronologia e statistiche a livello di articolo migliorate in Monitoraggio replica. Per ulteriori informazioni, vedere Procedura: Visualizzazione di informazioni ed esecuzione di attività per una sottoscrizione (Monitoraggio replica).
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
Cronologia modifiche
Versione | Cronologia |
---|---|
15 settembre 2007 |
|
14 aprile 2006 |
|