Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
L'opzione di sincronizzazione Web per SQL Server Merge Replication consente la replicazione dei dati utilizzando il protocollo HTTPS su Internet. Per utilizzare la sincronizzazione Web, si completano prima i seguenti passaggi di configurazione:
Creare nuovi account di dominio ed eseguire il mapping degli account di accesso di SQL Server.
Configurare il computer che esegue Microsoft Internet Information Services (IIS) per la sincronizzazione delle sottoscrizioni.
Configurare una pubblicazione di tipo merge per consentire la sincronizzazione Web.
Configurare una o più sottoscrizioni per l'utilizzo della sincronizzazione Web.
Nota
Se si intende replicare volumi elevati di dati o utilizzare tipi di dati di grandi dimensioni, ad esempio varchar(max), leggere la sezione "Replica di volumi elevati di dati" in questo argomento.
Per configurare con successo la sincronizzazione Web, devi decidere come configurare la sicurezza per soddisfare i tuoi requisiti e politiche specifiche. Prendi queste decisioni e crea gli account necessari prima di tentare di configurare IIS, la pubblicazione e gli abbonamenti.
Le seguenti procedure descrivono una configurazione di sicurezza semplificata che utilizza account locali. Questa configurazione semplificata è adatta per installazioni in cui sia IIS che il SQL Server Publisher e Distributore girano sullo stesso computer, anche se è molto più probabile (e consigliato) che si utilizzi una topologia a più server per un'installazione di produzione. È possibile sostituire gli account locali indicati nelle procedure con account di dominio.
Creazione di nuovi account e mappatura degli accessi di SQL Server
L'ascoltatore di replica SQL Server (replisapi.dll) si collega al Publisher impersonando l'account che specifichi per il pool di applicazioni associato al sito web di replica.
L'account che usi per l'ascoltatore di replica di SQL Server necessita dei permessi descritti in agente di merge Security, nella sezione "Connettiti al Publisher o al Distributore." In sintesi, l'account deve:
Essere membro dell'Elenco di accesso alla pubblicazione (PAL).
Essere mappato a un login associato a un utente nel database di pubblicazione.
Essere associato a un account di accesso associato a un utente nel database di distribuzione.
disponga delle autorizzazioni di lettura per la condivisione snapshot.
Se è la prima volta che usi SQL Server Replication, devi anche creare account e login per gli agenti di replicazione. Per maggiori informazioni, consulta le sezioni "Configurare la pubblicazione" e "Configurare l'abbonamento" in questo articolo.
Prima di configurare la sincronizzazione Web, leggi la sezione "Best Practices di Sicurezza per la Sincronizzazione Web" in questo articolo. Per ulteriori informazioni sulla sicurezza della sincronizzazione Web, vedere Security Architecture for Web Synchronization.
Configurazione del computer che esegue IIS
La sincronizzazione Web richiede l'installazione e la configurazione di IIS. Serve l'URL del sito web di replica prima di poter configurare una pubblicazione per usare la sincronizzazione Web.
La sincronizzazione Web è supportata in IIS a partire dalla versione 5.0. La Configura Web Synchronization Wizard non è supportata nella versione 7.0 di IIS. A partire da SQL Server 2012, per utilizzare la componente Web Sync su IIS Server, installa SQL Server con replica. Ad esempio, è possibile installare l'edizione gratuita SQL Server Express.
Per la sincronizzazione Web è richiesto TLS. Serve un certificato di sicurezza rilasciato da un'autorità di certificazione. Solo ai fini del test, è possibile utilizzare un certificato di sicurezza autocertificato.
Per configurare IIS per la sincronizzazione Web
SQL Server Management Studio: Configurare IIS per la sincronizzazione Web
SQL Server Management Studio: Configurare IIS 7 per la sincronizzazione Web
Creare un giardino web
Il listener per la replica di SQL Server supporta due operazioni di sincronizzazione simultanee per thread. Superare questo limite può far smettere l'ascoltatore di replica di rispondere. La proprietà del pool di applicazioni Maximum Worker Processes determina il numero di thread allocati a replisapi.dll. Di default, questa proprietà è impostata su 1.
È possibile supportare un numero maggiore di operazioni di sincronizzazione simultanee per CPU aumentando il valore della proprietà Numero massimo di processi di lavoro. L'operazione di scalabilità orizzontale applicata attraverso l'aumento del numero di processi di lavoro per CPU è nota come creazione di un Web garden.
Il giardinaggio web permette a più di due abbonati di sincronizzarsi contemporaneamente. Aumenta inoltre l'utilizzo della CPU di replisapi.dll, il che può influire negativamente sulle prestazioni complessive del server. Bilancia queste considerazioni quando scegli un valore per Numero massimo di processi di lavoro.
Per aumentare il numero massimo di processi di lavoro in IIS 7
In Gestione Internet Information Services (IIS), espandere il nodo del server locale, quindi fare clic sul nodo Pool di applicazioni.
Selezionare il pool di applicazioni associato al sito di sincronizzazione Web, quindi fare clic su Impostazioni avanzate nel riquadro Azioni .
Nella finestra di dialogo Impostazioni avanzate, sotto l'intestazione Elabora modello , fare clic sulla riga Numero massimo di processi di lavoro. Modificare il valore della proprietà, quindi fare clic su OK.
Configurazione della pubblicazione
Per utilizzare la sincronizzazione Web, crea una pubblicazione allo stesso modo in cui crei una pubblicazione con topologia di fusione standard. Per altre informazioni, vedere Pubblicare dati e oggetti di database.
Dopo aver creato la pubblicazione, abilita l'opzione per consentire la sincronizzazione Web utilizzando uno dei seguenti metodi: SQL Server Management Studio, Transact-SQL o Replication Management Objects (RMO). Per abilitare la sincronizzazione Web, è necessario fornire l'indirizzo del server Web per le connessioni degli abbonati.
Se usi un Publisher per la prima volta, devi anche configurare un Distributore e una condivisione snapshot. L'Agente di merge in ciascun Sottoscrittore deve avere autorizzazioni di lettura per la condivisione snapshot. Per altre informazioni, vedere Configurare la distribuzione e Proteggere la cartella snapshot.
Gen è una parola riservata nei file XML websync. Non tentare di pubblicare tabelle contenenti colonne chiamate gen.
Configurazione dell'abbonamento
Dopo avere abilitato una pubblicazione e configurato IIS, creare una sottoscrizione pull e specificare che deve essere sincronizzata utilizzando IIS. La sincronizzazione Web è supportata solo per le sottoscrizioni pull.
Aggiornamento da una versione precedente di SQL Server
Se hai configurato una topologia di sincronizzazione Web già esistente e aggiorni SQL Server, assicurati che l'ultima versione venga replisapi.dll copiata nella directory virtuale utilizzata dalla sincronizzazione Web. Di default, l'ultima versione di replisapi.dll si trova in C:\Program Files\Microsoft SQL Server\<nnn>\COM.
Replicare grandi volumi di dati
Per aiutare a evitare potenziali problemi di memoria sui computer abbonati, la sincronizzazione Web utilizza una dimensione massima predefinita di 100 MB per il file XML utilizzato per trasferire le modifiche. Aumenta il limite impostando la seguente chiave del registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\Replication
WebSyncMaxXmlSize DWORD 2000000
L'intervallo di valori accettabili per questa chiave è di 100 MB a 4 GB. Il valore è espresso in KB. Impostare questo parametro su un valore alto non garantisce che tu possa sincronizzare quella quantità di dati. Il limite effettivo è vincolato dalla quantità di memoria contigua disponibile nel computer del Sottoscrittore. Se devi avere un valore superiore a 100 MB, aumenta incrementalmente il valore e testa il consumo di memoria con un tipico carico di lavoro sull'abbonato.
La dimensione massima per il file XML è 4 GB, ma la replica sincronizza le modifiche di quel file in batch. La dimensione massima dei batch di dati e metadati è di 25 MB. Devi assicurarti che i dati in ogni lotto non superino circa 20 MB, il che consente metadati e qualsiasi altro sovraccarico. Questo limite presenta le implicazioni seguenti:
Non puoi replicare nessuna colonna che faccia superare i dati e i metadati di 25 MB. Questo limite potrebbe essere un problema quando replichi righe che contengono grandi tipi di dati, come varchar(max).
Se replichi grandi volumi di dati, potresti dover modificare la dimensione del batch del agente di merge.
La dimensione dei batch per la replica di tipo merge è misurata in generazioni, ovvero raccolte di modifiche per ogni articolo. Usa i parametri -DownloadGenerationsPerBatch e -UploadGenerationsPerBatch dell'agente di merge per specificare il numero di generazioni in un batch. Per altre informazioni, vedere Replication agente di merge.
Per volumi elevati di dati, specificare un numero basso per ognuno dei parametri di batch. Inizia con un valore di 10, poi modifica in base alle esigenze e alle prestazioni dell'applicazione. Tipicamente, specifichi questi parametri in un profilo agente. Per ulteriori informazioni sui profili, vedere Replication Agent Profiles.
Migliori pratiche di sicurezza per la sincronizzazione Web
La sincronizzazione web offre molte opzioni per le impostazioni legate alla sicurezza. Usare l'approccio seguente:
SQL Server Distributor e Publisher possono trovarsi nello stesso computer (configurazione tipica nella replica di tipo merge). Tuttavia, installa IIS su un computer separato.
Usare TLS (Transport Layer Security), noto in precedenza come SSL (Secure Sockets Layer), per la crittografia della connessione tra il sottoscrittore e il computer che esegue IIS. La sincronizzazione web richiede questa crittografia.
Utilizzare l'autenticazione di base per le connessioni dal sottoscrittore a IIS. Utilizzando l'Autenticazione Base, IIS può stabilire connessioni con l'Publisher/Distributore per conto dell'Abbonato senza richiedere delega. La delega è necessaria se si utilizza l'autenticazione integrata.
Nota
L'autenticazione di base è il metodo mediante il quale vengono passate le credenziali a IIS. L'autenticazione di base non impedisce di specificare gli account di dominio Windows per le connessioni effettuate con IIS.
Specifica che lo agente di snapshot venga eseguito con un account di dominio Windows e che l'agente stabilisca connessioni usando tale account. (Questa è la configurazione predefinita.) Specifica che ogni agente di merge esegue sotto l'account di dominio dell'utente che utilizza il computer Subscriber, e specifica che l'agente effettui connessioni come quell'account.
Per maggiori informazioni sui permessi richiesti dagli agenti, vedi Replication Agent Security Model.
Specificare lo stesso account di dominio utilizzato dall'Agente di merge quando si specificano un account e una password nella pagina Informazioni sul server Web della Creazione guidata Nuova sottoscrizione o quando si specificano i valori dei parametri
@internet_urle@internet_logindi sp_addpullsubscription_agent. Questo account deve disporre delle autorizzazioni di lettura per la condivisione snapshot.Ogni pubblicazione deve utilizzare una directory virtuale separata per IIS.
L'account sotto cui viene eseguito il SQL Server Replication Listener (
replisapi.dll) è anche l'account che si collega al Publisher e al Distributore durante la sincronizzazione. Questo account deve essere mappato a un account di login SQL Server su Publisher e Distributor. Per altre informazioni, vedere la sezione "Impostazione delle autorizzazioni per il listener di replica di SQL Server" in Configurare IIS per la sincronizzazione Web.Puoi usare FTP per consegnare lo snapshot dal Publisher al computer che esegue IIS. Il computer che esegue IIS fornisce sempre l'istantaneo all'Abbonato utilizzando HTTPS. Per altre informazioni, vedere Trasferire snapshot tramite FTP.
Se i server nella topologia di replica sono protetti da un firewall, potrebbe essere necessario aprire porte nel firewall per consentire la sincronizzazione Web.
Il computer abbonato si collega al computer che esegue IIS su HTTPS utilizzando TLS, che è tipicamente configurato per usare la porta 443. Gli abbonati a SQL Server Compact possono inoltre connettersi tramite HTTP, in genere configurato per l'utilizzo della porta 80.
Il computer che esegue IIS di solito si collega al Publisher o al Distributore utilizzando la porta 1433 (istanza predefinita). Quando il server di pubblicazione o di distribuzione corrisponde a un'istanza denominata in un server con un'altra istanza predefinita, per la connessione all'istanza denominata viene in genere utilizzata la porta 1500.
Se il computer che esegue IIS è separato dal Distributore da un firewall e per il recapito dello snapshot viene utilizzata una condivisione FTP, è necessario aprire le porte utilizzate da FTP. Per altre informazioni, vedere Trasferire snapshot tramite FTP.
Importante
L'apertura di porte nel firewall potrebbe esporre il server ad attacchi dannosi. Prima di aprire una porta, verificare di comprenderne le implicazioni per un sistema firewall. Per altre informazioni, vedere Security Considerations for a SQL Server Installation.