Modifiche di rilievo alla replica di SQL Server 2005

Data aggiornamento: 14 aprile 2006

In questo argomento vengono descritte le modifiche a funzionalità di replica che possono richiedere modifiche alle applicazioni.

[!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.

Modifiche di rilievo che interessano tutti i tipi di replica

Le modifiche riportate di seguito si applicano a tutti i tipi di replica in Microsoft SQL Server 2005.

Funzionalità Descrizione

Modifiche necessarie per gli script di replica

Rispetto a Microsoft SQL Server 2000 il modello di protezione dell'agente di replica è stato modificato. Per informazioni dettagliate sul modello di protezione, vedere Modello di protezione dell'agente di replica. Se si appartiene al ruolo predefinito del server sysadmin in SQL Server 2005 e si eseguono gli script di replica creati con SQL Server 2000 o SQL Server 7.0, gli script verranno eseguiti correttamente. Se si appartiene al ruolo predefinito del database dbo o a un altro ruolo, gli script avranno esito negativo e dovranno essere aggiornati. Per informazioni sull'aggiornamento degli script, vedere How to: Upgrade Replication Scripts (Replication Transact-SQL Programming). Sebbene non sia obbligatorio aggiornare gli script eseguiti da membri del ruolo sysadmin, tale operazione è consigliabile per sfruttare i potenziamenti della protezione.

Connessioni locali per agenti di replica

Durante l'aggiornamento a SQL Server 2005, tutte le connessioni locali che utilizzano l'autenticazione di SQL Server vengono modificate per l'utilizzo dell'autenticazione di Windows. Le connessioni locali sono connessioni effettuate da un agente a un'istanza di SQL Server in esecuzione nello stesso computer dell'agente. Ad esempio, se l'agente di merge di una sottoscrizione pull viene eseguito nel Sottoscrittore, le connessioni eseguite dall'agente al Sottoscrittore sono connessioni locali.

Nelle versioni precedenti di SQL Server per impostazione predefinita gli agenti vengono eseguiti nel contesto dell'account del servizio SQL Server Agent. Dopo l'aggiornamento, le connessioni locali vengono eseguite nel contesto di questo account. SQL Server 2005 consente un controllo dettagliato di ogni account nel quale vengono eseguiti gli agenti di replica che a loro volta effettuano connessioni integrate di Windows a database e altre risorse. È inoltre possibile specificare un account diverso per ogni agente. Dopo l'aggiornamento è consigliabile specificare account diversi per ogni agente. Per ulteriori informazioni, vedere Aggiornamento dei database replicati e Modello di protezione dell'agente di replica.

Controlli ActiveX

Tutti i controlli ActiveX sono contrassegnati come non sicuri per la generazione di script e l'inizializzazione.

Il controllo ActiveX dell'agente snapshot non è disponibile in SQL Server 2005. In alternativa, utilizzare il nuovo agente snapshot gestito. Per ulteriori informazioni, vedere SnapshotGenerationAgent e How to: Create the Initial Snapshot (RMO Programming).

Password per l'account distributor_admin

Le connessioni trusted tra un server di pubblicazione e un server di distribuzione remoto non sono più supportate perché non richiedono una password (le connessioni trusted vengono utilizzate per impostazione predefinita nelle versioni precedenti a SQL Server 2000 Service Pack 3). Se si utilizza un server di distribuzione remoto, convertire le connessioni trusted in connessioni non trusted prima dell'aggiornamento a SQL Server 2005. Questo problema non riguarda i server di pubblicazione che utilizzano un server di distribuzione locale. Per ulteriori informazioni sull'account distributor_admin, vedere Protezione del server di distribuzione.

Per stabilire il tipo di connessione in uso

Per modificare la connessione trusted in non trusted

  1. Eseguire sp_changedistpublisher (Transact-SQL) nel server di distribuzione specificando il valore 'trusted' per il parametro @property e il valore 'False' per il parametro @value.
    ms143470.note(it-it,SQL.90).gifNota:
  2. Eseguire sp_changedistributor_password (Transact-SQL) sia nel server di pubblicazione sia nel server di distribuzione, specificando una password complessa per il parametro @password.

SQL Server Express non comprende SQL Server Agent

Se si esegue l'aggiornamento a SQL Server Express, è necessario riconfigurare la sincronizzazione della replica poiché SQL Server Express non include SQL Server Agent.

Se si desidera utilizzare sottoscrizioni pull, è necessario sincronizzarle tramite oggetti RMO (Replication Management Objects) o Gestione sincronizzazione Microsoft Windows oppure eseguendo l'agente di replica nella riga di comando. Per ulteriori informazioni, vedere Replica di dati in SQL Server Express.

Se si desidera continuare a utilizzare SQL Server Agent per eseguire processi dell'agente di replica, è necessario utilizzare le sottoscrizioni push o eseguire l'aggiornamento a un'altra versione di SQL Server. Tutte le versioni tranne SQL Server Express e Microsoft SQL Server 2005 Compact Edition includono SQL Server Agent. Con le sottoscrizioni push, l'agente di distribuzione o di merge viene eseguito nel server di distribuzione, di conseguenza SQL Server Agent è disponibile (SQL Server Express non può essere un server di distribuzione).

Sottoscrittori Microsoft Access (Jet 4.0)

Jet è il database sottostante utilizzato da Access. In SQL Server 2000 la replica supporta le sottoscrizioni di database Jet. Queste sottoscrizioni non sono più supportate.

In alternativa, è consigliabile utilizzare Microsoft SQL Server 2005 Express Edition. Access è in grado di utilizzare un database di SQL Server come back-end e i database di SQL Server non sono interessati da questo problema. Per ulteriori informazioni, vedere Replica di dati in SQL Server Express.

Modifiche di rilievo alla replica transazionale

Le modifiche seguenti si applicano alla replica transazionale in SQL Server 2005.

Funzionalità

Descrizione

Opzione MSMQ per sottoscrizioni ad aggiornamento in coda

Con le sottoscrizioni ad aggiornamento in coda, le modifiche provenienti dai Sottoscrittori vengono scritte in una coda, quindi vengono lette dalla coda stessa e recapitate al server di pubblicazione dall'agente di lettura coda. In SQL Server 2000 le sottoscrizioni potrebbero utilizzare una coda SQL Server o MSMQ per accodare le modifiche. Il tipo di coda viene specificato con il parametro @queue_type di sp_addpublication (Transact-SQL) che consente l'utilizzo dei valori sql e msmq. In SQL Server 2005 è invece consentito il solo valore sql. Le pubblicazioni esistenti che utilizzano MSMQ vengono modificate durante l'aggiornamento in modo da utilizzare una coda di SQL Server. Se si dispone di applicazioni che dipendono da un aggiornamento in coda tramite MSMQ, sarà necessario riscrivere tali applicazioni per includere una coda di SQL Server. Per ulteriori informazioni sulle sottoscrizioni ad aggiornamento in coda, vedere Sottoscrizioni aggiornabili per la replica transazionale.

Con l'aggiornamento le code di sottoscrizione MSMQ vengono rimosse se il servizio MSMQ è in esecuzione durante l'aggiornamento di SQL Server.

ms143470.note(it-it,SQL.90).gifImportante:

In Windows 2000 e Windows XP deve inoltre essere in esecuzione il servizio Microsoft Distributed Transaction Coordinator (MSDTC) perché con questi sistemi operativi MSMQ richiede MSDTC .

Se il servizio MSMQ non è in esecuzione, rimuovere manualmente le code al termine dell'aggiornamento. Per ulteriori informazioni sulla rimozione di code, vedere la documentazione di Windows.

Modifiche di rilievo alla replica di merge

Le modifiche seguenti si applicano alla replica di merge in SQL Server 2005.

Funzionalità Descrizione

Pubblicazione da SQL Server Express

SQL Server MSDE è in grado di fungere da server di pubblicazione per le pubblicazioni di tipo merge. SQL Server Express, ovvero la funzionalità utilizzata per sostituire MSDE, non è in grado di fungere da server di pubblicazione, tuttavia consente la sottoscrizione di pubblicazioni di tipo merge, transazionali e snapshot. La replica di tipo merge e la replica transazionale con sottoscrizioni aggiornabili consentono entrambe la propagazione delle modifiche dai Sottoscrittori al server di pubblicazione. Per ulteriori informazioni sulla replica in SQL Server Express, vedere Replica di dati in SQL Server Express.

Esecuzione in batch delle modifiche

Nelle versioni precedenti di SQL Server le modifiche apportate dall'agente di merge vengono eseguite riga per riga. In SQL Server 2005 le modifiche vengono apportate in batch per migliorare le prestazioni. Di conseguenza, all'interno di una singola istruzione è possibile inserire, aggiornare o eliminare più righe. Se i database di pubblicazione o di sottoscrizione contengono tabelle pubblicate che presentano trigger, verificare che i trigger siano in grado di gestire gli inserimenti, gli aggiornamenti e le eliminazioni di più righe. Per ulteriori informazioni, vedere Considerazioni sulle istruzioni che interessano più righe.

Ricreazione di tabelle con conflitti

In seguito all'aggiornamento a SQL Server 2005, le tabelle con conflitti vengono ricreate con DBO come proprietario. Se in SQL Server 2000 una tabella è di proprietà di un altro utente, è necessario modificare l'applicazione.

La replica di merge crea una tabella con conflitti per ogni articolo di una pubblicazione, con un nome in formato conflict_PublicationName_ArticleName. Tutte le tabelle di metadati vengono ricreate in seguito all'aggiornamento e tutte le tabelle con conflitti vengono create nello schema DBO.

Assegnazione di nuovi intervalli di valori Identity

Per le tabelle che utilizzano la gestione automatica degli intervalli di valori Identity, è possibile che in seguito all'aggiornamento la replica assegni nuovi intervalli. Se a una tabella è stato assegnato un intervallo di valori Identity più ampio per il Sottoscrittore rispetto al server di pubblicazione, durante la replica verrà assegnato per il server di pubblicazione un intervallo uguale a quello del Sottoscrittore.

Per determinare gli intervalli da utilizzare per ogni articolo, eseguire sp_helpmergearticle (Transact-SQL) nel database di pubblicazione e controllare le colonne pub_identity_range e identity_range.

Vedere anche

Concetti

Compatibilità con le versioni precedenti della replica

Altre risorse

Miglioramenti delle funzionalità di replica

Guida in linea e informazioni

Assistenza su SQL Server 2005