Configurazione della sincronizzazione WebConfigure Web Synchronization

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2008)noDatabase SQL di AzurenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

L'opzione di sincronizzazione Web per la replica di tipo merge di SQL ServerSQL Server consente la replica dei dati tramite il protocollo HTTPS su Internet.The Web synchronization option for SQL ServerSQL Server Merge Replication enables data replication using the HTTPS protocol over the Internet. Per utilizzare la sincronizzazione Web, è innanzitutto necessario eseguire le azioni di configurazione riportate di seguito:To use Web synchronization, you first need to perform the following configuration actions:

  1. Creare nuovi account di dominio ed eseguire il mapping degli account di accesso di SQL ServerSQL Server .Create new domain accounts and map SQL ServerSQL Server logins.

  2. Configurare il computer che esegue MicrosoftMicrosoft Internet Information Services (IIS) per la sincronizzazione delle sottoscrizioni.Configure the computer that is running MicrosoftMicrosoft Internet Information Services (IIS) to synchronize subscriptions.

  3. Configurare una pubblicazione di tipo merge per consentire la sincronizzazione Web.Configure a merge publication to allow Web synchronization.

  4. Configurare una o più sottoscrizioni per l'utilizzo della sincronizzazione Web.Configure one or more subscriptions to use Web synchronization.

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.If you plan to replicate large volumes of data or use large data types such as varchar(max), read the section "Replicating Large Volumes of Data" in this topic.

Per configurare correttamente la sincronizzazione Web, è necessario decidere come verrà configurata la sicurezza per soddisfare requisiti e criteri specifici.To successfully set up Web synchronization, you must decide how you will configure security to meet your particular requirements and policies. È preferibile prendere queste decisioni e creare gli account necessari prima di configurare IIS, la pubblicazione e le sottoscrizioni.It is best to make these decisions and create the necessary accounts before you attempt to configure IIS, the publication, and subscriptions.

Nelle procedure riportate di seguito viene descritta una configurazione della sicurezza semplificata in cui vengono utilizzati account locali, per motivi di brevità.In the procedures that follow, a simplified security configuration using local accounts is described, for brevity. Questa configurazione semplificata è adatta per installazioni in cui sia IIS sia il server di pubblicazione e il server di distribuzione SQL ServerSQL Server vengono eseguiti nello stesso computer, anche se è più probabile (e consigliabile) utilizzare una topologia a più server per un'installazione di produzione.This simplified configuration is suitable for installations where both IIS and the SQL ServerSQL Server Publisher and Distributor are running on the same computer, even though it is much more likely (and recommended) that you will use a multiple-server topology for a production installation. È possibile sostituire gli account locali indicati nelle procedure con account di dominio.You can substitute domain accounts for the local accounts in the procedures.

Creazione di nuovi account e mapping di account di accesso di SQL ServerCreating New Accounts and Mapping SQL Server Logins

Il listener per la replica di SQL ServerSQL Server (replisapi.dll) si connette al server di pubblicazione rappresentando l'account specificato per il pool di applicazioni associato al sito Web di replica.The SQL ServerSQL Server Replication Listener (replisapi.dll) connects to the Publisher by impersonating the account specified for the application pool that is associated with the replication web site.

L'account utilizzato per il listener per la replica di SQL ServerSQL Server deve disporre di autorizzazioni come descritto in Merge Agent Security, nella sezione relativa alla connessione al server di pubblicazione o al server di distribuzione".The account used for the SQL ServerSQL Server Replication Listener must have permissions as described in Merge Agent Security, under the section "Connect to the Publisher or Distributor." In breve è necessario che l'account:In summary, the account must:

  • sia membro dell'elenco di accesso alla pubblicazione;Be a member of the Publication Access List (PAL).

  • sia sottoposto a mapping a un account di accesso associato a un utente nel database di pubblicazione;Be mapped to a login associated with a user in the publication database.

  • sia sottoposto a mapping a un account di accesso associato a un utente nel database di distribuzione;Be mapped to a login associated with a user in the distribution database.

  • disponga delle autorizzazioni di lettura per la condivisione snapshot.Have Read permissions on the snapshot share.

    Se si utilizza la replica di SQL ServerSQL Server per la prima volta è inoltre necessario creare account e account di accesso per gli agenti di replica.If this is the first time you are using SQL ServerSQL Server Replication, you will also need to create accounts and logins for the replication agents. Per ulteriori informazioni, vedere le sezioni "Configurazione della pubblicazione" e "Configurazione della sottoscrizione" in questo argomento.For more information, see the "Configuring the Publication" and "Configuring the Subscription" sections in this topic.

    Prima di configurare la sincronizzazione Web, vedere la sezione "Procedure consigliate per la sicurezza nella sincronizzazione Web" in questo argomento.Before you configure Web synchronization, we recommend that you read the "Security Best Practices for Web Synchronization" section in this topic. Per ulteriori informazioni sulla sicurezza della sincronizzazione Web, vedere Security Architecture for Web Synchronization.For more information about Web synchronization security, see Security Architecture for Web Synchronization.

Configurazione del computer che esegue IISConfiguring the Computer That Is Running IIS

La sincronizzazione Web richiede l'installazione e la configurazione di IIS.Web synchronization requires that you install and configure IIS. Prima di poter configurare una pubblicazione per l'utilizzo della sincronizzazione Web, è necessario l'URL del sito Web di replica.You will need the URL to the replication Web site before you can configure a publication to use Web synchronization.

La sincronizzazione Web è supportata in IIS a partire dalla versione 5.0.Web synchronization is supported on IIS beginning with version 5.0. La Configurazione guidata sincronizzazione Web non è supportata in IIS versione 7.0.The Configure Web Synchronization Wizard is not supported on IIS version 7.0. A partire da SQL Server 2012, per usare il componente di sincronizzazione Web nel server IIS, è consigliabile installare SQL Server con la replica.Beginning with SQL Server 2012, to use the web sync component on IIS server, we recommend users install SQL Server with replication. Ad esempio, è possibile installare l'edizione gratuita SQL Server Express.This can be the free SQL Server Express edition.

Per la sincronizzazione Web è richiesto SSL.SSL is required for Web synchronization. È necessario un certificato di sicurezza rilasciato da un'autorità di certificazione.You will need a security certificate issued by a certification authority. Solo ai fini del test, è possibile utilizzare un certificato di sicurezza autocertificato.For testing purposes only, you can use a self-issued security certificate.

Per configurare IIS per la sincronizzazione WebTo configure IIS for Web synchronization

Creazione di un Web gardenCreating a Web Garden

Il listener per la replica di SQL ServerSQL Server supporta due operazioni di sincronizzazione simultanee per thread.The SQL ServerSQL Server Replication Listener supports two concurrent synchronization operations per thread. Il superamento di questo limite potrebbe causare interruzioni nella risposta del listener.Exceeding this limit may cause the Replication Listener to stop responding. Il numero di thread allocato a replisapi.dll è determinato dalla proprietà Numero massimo di processi di lavoro del pool di applicazioni.The number of threads allocated to replisapi.dll is determined by the application pool Maximum Worker Processes property. Il valore predefinito della proprietà è 1.By default, this property is set at 1.

È possibile supportare un numero maggiore di operazioni di sincronizzazione simultanee per CPU aumentando il valore della proprietà Numero massimo di processi di lavoro.You can support a greater number of concurrent synchronization operations per CPU by increasing the Maximum Worker Process property value. L'operazione di scalabilità orizzontale applicata attraverso l'aumento del numero di processi di lavoro per CPU è nota come creazione di un Web garden.Scaling out by increasing the number of worker processes per CPU is known as creating a "Web garden."

Il Web garden consente la sincronizzazione di più di due sottoscrittori contemporaneamente.Web gardening will allow more than two Subscribers to synchronize at the same time. Aumenterà inoltre l'utilizzo della CPU da parte di replisapi.dll, con un potenziale impatto negativo sulle prestazioni complessive del server.It will also increase CPU utilization by replisapi.dll, which can negatively impact overall server performance. È importante valutare queste considerazioni quando si sceglie un valore per la proprietà Numero massimo di processi di lavoro.It is important to balance these considerations when you choose a value for Maximum Worker Processes.

Per aumentare il valore di Numero massimo di processi di lavoro in IIS 7To increase Maximum Worker Processes in IIS 7

  1. In Gestione Internet Information Services (IIS)espandere il nodo del server locale, quindi fare clic sul nodo Pool di applicazioni .In Internet Information Services (IIS) Manager, expand the local server node, and then click on the Application Pool node.

  2. Selezionare il pool di applicazioni associato al sito di sincronizzazione Web, quindi fare clic su Impostazioni avanzate nel riquadro Azioni .Select the application pool associated with the Web synchronization site, and then click Advanced Settings on the Actions pane.

  3. Nella finestra di dialogo Impostazioni avanzate, sotto l'intestazione Elabora modello , fare clic sulla riga Numero massimo di processi di lavoro.On the Advanced Settings dialog, under the Process Model heading, click the row labeled Maximum Worker Processes. Modificare il valore della proprietà, quindi fare clic su OK.Change the property value, and then click OK.

Configurazione della pubblicazioneConfiguring the Publication

Per utilizzare la sincronizzazione Web, creare una pubblicazione con le stesse modalità utilizzate per una topologia di merge standard.To use Web synchronization, create a publication in the same way that you would for a standard merge topology. Per altre informazioni, vedere Pubblicare dati e oggetti di database.For more information, see Publish Data and Database Objects.

Dopo la creazione della pubblicazione, abilitare l'opzione che consente la sincronizzazione Web utilizzando SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQLo gli oggetti RMO (Replication Management Objects).After the publication is created, enable the option to allow for Web synchronization by using one of the following methods: SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or Replication Management Objects (RMO). Per abilitare la sincronizzazione Web, è necessario fornire l'indirizzo del server Web per le connessioni del sottoscrittore.To enable Web synchronization, you will need to supply the Web server address for Subscriber connections.

Se si utilizza un server di pubblicazione per la prima volta, è necessario configurare un server di distribuzione e una condivisione snapshot.If you are using a Publisher for the first time, you must also configure a Distributor and a snapshot share. L'agente di merge in ogni sottoscrittore deve disporre delle autorizzazioni di lettura per la condivisione snapshot.The Merge Agent at each Subscriber must have read permissions on the snapshot share. Per altre informazioni, vedere Configurare la distribuzione e Proteggere la cartella snapshot.For more information, see Configure Distribution and Secure the Snapshot Folder.

gen è una parola riservata nei file XML websync.gen is a reserved word in websync xml files. Non tentare di pubblicare tabelle contenenti colonne denominate gen.Do not attempt to publish tables containing columns named gen.

Configurazione della sottoscrizioneConfiguring the Subscription

Dopo avere abilitato una pubblicazione e configurato IIS, creare una sottoscrizione pull e specificare che deve essere sincronizzata utilizzando IIS.After you enable a publication and configure IIS, create a pull subscription and specify that the pull subscription should synchronize by using IIS. La sincronizzazione Web è supportata solo per le sottoscrizioni pull.(Web synchronization is supported only for pull subscriptions.)

Aggiornamento da una versione precedente di SQL ServerUpgrading from an Earlier Version of SQL Server

Se una topologia di sincronizzazione Web è presente e configurata e si aggiorna SQL ServerSQL Server, è necessario assicurarsi che la versione più recente di Replisapi.dll venga copiata nella directory virtuale utilizzata dalla sincronizzazione Web.If you have an existing Web synchronization topology configured and you upgrade SQL ServerSQL Server, you must ensure that the latest version of Replisapi.dll is copied to the virtual directory used by Web synchronization. Per impostazione predefinita, la versione più recente di Replisapi.dll si trova in C:\Programmi\ Microsoft SQL Server\\COM.By default, the latest version of Replisapi.dll is located in C:\Program Files\Microsoft SQL Server\\COM.

Replica di volumi elevati di datiReplicating Large Volumes of Data

Per evitare potenziali problemi di memoria nei computer sottoscrittori, nella sincronizzazione Web si utilizza una dimensione massima predefinita di 100 MB per il file XML utilizzato per trasferire le modifiche.To help avoid potential memory problems on Subscriber computers Web synchronization uses a default maximum size of 100 MB for the XML file used to transfer changes. Il limite può essere aumentato impostando la chiave del Registro di sistema seguente:The limit can be raised by setting the following registry key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\ReplicationHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\Replication

WebSyncMaxXmlSize DWORD 2000000WebSyncMaxXmlSize DWORD 2000000

L'intervallo di valori accettabili per questa chiave è compreso tra 100 MB e 4 GB.The range of acceptable values for this key is 100 MB to 4GB. Il valore è espresso in KB.The value is specified in KB. L'impostazione di questo parametro su un valore elevato non garantisce che sia possibile sincronizzare tale quantità di dati.Setting this parameter to a high value does not guarantee that you can synchronize that amount of data. Il limite effettivo è vincolato dalla quantità di memoria contigua disponibile nel computer del Sottoscrittore.The effective limit is constrained by how much contiguous memory is available on the Subscriber computer. Se è necessario impostare un valore maggiore di 100 MB, si consiglia di aumentare il valore in modo incrementale e testare l'utilizzo della memoria con un carico di lavoro tipico nel Sottoscrittore.If you must have a value larger than 100 MB, we recommend that you increase the value incrementally and test memory consumption with a typical workload on the Subscriber.

La dimensione massima per il file XML è 4 GB, ma la replica sincronizza le modifiche di quel file in batch.The maximum size for the XML file is 4 GB, but replication synchronizes the changes from that file in batches. La dimensione massima dei batch di dati e metadati è di 25 MB.The maximum batch size of data and metadata is 25 MB. È necessario assicurarsi che i dati di ciascun batch non superino approssimativamente i 20 MB di dimensioni, per tenere conto dell'overhead dei metadati e di altro tipo.You must ensure that the data in each batch does not exceed approximately 20 MB, which allows for metadata and any other overhead. Questo limite presenta le implicazioni seguenti:This limit has the following implications:

  • Non è possibile replicare colonne che causano il superamento del limite di 25 MB per dati e metadati.You cannot replicate any column that causes the data and metadata to exceed 25 MB. Questo potrebbe essere un problema quando si replicano righe contenenti tipi di dati di grandi dimensioni, ad esempio varchar(max).This might be an issue when you are replicating rows that contain large data types, such as varchar(max).

  • Se si replicano volumi elevati di dati, può essere necessario regolare la dimensione dei batch dell'agente di merge.If you replicate large volumes of data, you might have to adjust the Merge Agent batch size.

    La dimensione dei batch per la replica di tipo merge è misurata in generazioni, ovvero raccolte di modifiche per ogni articolo.Batch size for merge replication is measured in generations, which are collections of changes per article. Il numero di generazioni in un batch è specificato utilizzando i parametri -DownloadGenerationsPerBatch e -UploadGenerationsPerBatch dell'agente di merge.The number of generations in a batch is specified by using the–DownloadGenerationsPerBatch and –UploadGenerationsPerBatch parameters of the Merge Agent. Per altre informazioni, vedere Replication Merge Agent.For more information, see Replication Merge Agent.

    Per volumi elevati di dati, specificare un numero basso per ognuno dei parametri di batch.For large volumes of data, specify a small number for each of the batching parameters. Si consiglia di iniziare con il valore 10, quindi regolarlo in base alle esigenze e alle prestazioni dell'applicazione.We recommend that you start with a value of 10, and then tune based on application needs and performance. In genere, questi parametri sono specificati in un profilo dell'agente.Typically, these parameters are specified in an agent profile. Per ulteriori informazioni sui profili, vedere Replication Agent Profiles.For more information about profiles, see Replication Agent Profiles.

Procedure consigliate per la sicurezza nella sincronizzazione WebSecurity Best Practices for Web Synchronization

Sono disponibili numerose impostazioni relative alla sicurezza nella sincronizzazione Web.There are many choices for security-related settings in Web synchronization. È consigliabile adottare l'approccio seguente:We recommend the following approach:

  • Il server di distribuzione e il server di pubblicazione SQL ServerSQL Server devono trovarsi nello stesso computer. Si tratta della configurazione tipica nella replica di tipo merge.The SQL ServerSQL Server Distributor and Publisher can be on the same computer (a typical setup for merge replication). È tuttavia necessario che IIS sia installato in un computer separato.However, IIS should be installedon a separate computer.

  • Utilizzare SSL (Secure Sockets Layer) per la crittografia della connessione tra il sottoscrittore e il computer che esegue IIS.Use Secure Sockets Layer (SSL) to encrypt the connection between the Subscriber and the computer running IIS. Questa operazione è necessaria per la sincronizzazione Web.This is required for Web synchronization.

  • Utilizzare l'autenticazione di base per le connessioni dal sottoscrittore a IIS.Use Basic Authentication for connections from the Subscriber to IIS. Con l'autenticazione di base, IIS è in grado di eseguire connessioni al server di pubblicazione/distribuzione per conto del Sottoscrittore senza alcuna delega.Using Basic Authentication, IIS can make connections to the Publisher/Distributor on behalf of the Subscriber without requiring delegation. La delega è necessaria se si utilizza l'autenticazione integrata.Delegation is required if you use Integrated Authentication.

    Nota

    L'autenticazione di base è il metodo mediante il quale vengono passate le credenziali a IIS.Basic Authentication is the method by which credentials are passed to IIS. L'autenticazione di base non impedisce di specificare account di dominio di Windows per le connessioni a IIS.Basic Authentication does not prevent specifying Windows domain accounts for connections that are made to IIS.

  • Specificare che l'agente snapshot deve essere eseguito con un account di dominio di Windows e che deve utilizzare tale account per le connessioni.Specify that the Snapshot Agent should run under a Windows domain account, and specify that the agent should make connections as that account. Si tratta della configurazione predefinita. Specificare che ogni agente di merge deve essere eseguito con l'account di dominio dell'utente che utilizza il computer Sottoscrittore e che deve utilizzare tale account per le connessioni.(This is the default configuration.) Specify that each Merge Agent should run under the domain account of the user that uses the Subscriber computer, and specify that the agent should make connections as that account.

    Per ulteriori informazioni sulle autorizzazioni richieste dagli agenti, vedere Replication Agent Security Model.For more information about the permissions that are required by agents, see Replication Agent Security Model.

  • Specificare lo stesso account di dominio utilizzato dall'agente di merge quando si specifica un account e una password nella pagina Informazioni sul server Web della Creazione guidata nuova sottoscrizione o quando si specificano i valori per i parametri @internet_url e @internet_login di sp_addpullsubscription_agent.Specify the same domain account as the one the Merge Agent uses when you specify an account and password on the Web Server Information page of the New Subscription Wizard or when you specify values for the @internet_url and @internet_login parameters of sp_addpullsubscription_agent. Questo account deve disporre delle autorizzazioni di lettura per la condivisione snapshot.This account must have read permissions for the snapshot share.

  • Ogni pubblicazione deve utilizzare una directory virtuale separata per IIS.Each publication should use a separate virtual directory for IIS.

  • L'account con cui viene eseguito il listener per la replica di SQL ServerSQL Server (Replisapi.dll) è anche l'account utilizzato per la connessione al server di pubblicazione e al server di distribuzione durante la sincronizzazione.The account under which the SQL ServerSQL Server Replication Listener (Replisapi.dll) runs is also the account that will connect to the Publisher and Distributor during synchronization. Deve essere eseguito il mapping di questo account a un account di accesso di SQL nel server di pubblicazione e nel server di distribuzione.This account must be mapped to a SQL Login account on the Publisher and Distributor. Per altre informazioni, vedere la sezione "Impostazione delle autorizzazioni per Listener per la replica di SQL Server" in Configurare IIS per la sincronizzazione Web.For more information, see the "Setting Permissions for the SQL Server Replication Listener" section in the Configure IIS for Web Synchronization.

  • È possibile utilizzare la connessione FTP per trasferire lo snapshot dal server di pubblicazione al computer che esegue IIS.You can use FTP to deliver the snapshot from the Publisher to the computer that is running IIS. Lo snapshot viene sempre trasferito dal computer che esegue IIS al Sottoscrittore tramite HTTPS.The snapshot is always delivered from the computer that is running IIS to the Subscriber by using HTTPS. Per altre informazioni, vedere Trasferire snapshot tramite FTP.For more information, see Transfer Snapshots Through 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.If servers in the replication topology are behind a firewall, you might need to open ports in the firewall to enable Web synchronization.

    • Il computer sottoscrittore si connette al computer che esegue IIS tramite HTTPS utilizzando SSL. In questo caso è in genere configurato l'utilizzo della porta 443.The Subscriber computer connects to the computer that is running IIS over HTTPS using SSL, which is typically configured to use port 443. I Sottoscrittori di SQL Server CompactSQL Server Compact possono inoltre connettersi tramite HTTP, in genere configurato per l'utilizzo della porta 80. SQL Server CompactSQL Server Compact Subscribers can also connect over HTTP, which is typically configured to use port 80.

    • Il computer che esegue IIS si connette in genere al server di pubblicazione o al server di distribuzione mediante la porta 1433 (istanza predefinita).The computer that is running IIS typically connects to the Publisher or Distributor using port 1433 (default instance). 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.When the Publisher or Distributor is a named instance on a server with another default instance, port 1500 is typically used to connect to the named instance.

    • Se il computer che esegue IIS e il server di distribuzione sono separati da un firewall e per il recapito di snapshot viene utilizzata una condivisione FTP, è necessario aprire le porte utilizzate per FTP.If the computer running IIS is separated from the Distributor by a firewall and an FTP share is used for snapshot delivery, the ports used for FTP must be opened. Per altre informazioni, vedere Trasferire snapshot tramite FTP.For more information, see Transfer Snapshots Through FTP.

Importante

L'apertura di porte nel firewall potrebbe esporre il server ad attacchi dannosi.Opening ports in your firewall can leave your server exposed to malicious attacks. Prima di aprire una porta, verificare di comprenderne le implicazioni per un sistema firewall.Make sure that you understand firewall systems before you open ports. Per altre informazioni, vedere Security Considerations for a SQL Server Installation.For more information, see Security Considerations for a SQL Server Installation.

Vedere ancheSee Also

Sincronizzazione Web per la replica di tipo mergeWeb Synchronization for Merge Replication