Configurer la synchronisation WebConfigure Web Synchronization

CETTE RUBRIQUE S’APPLIQUE À :ouiSQL Server (à partir de la version 2008)nonAzure SQL DatabasenonAzure SQL Data Warehouse nonParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

L'option de synchronisation Web de la réplication de fusion SQL ServerSQL Server permet de répliquer les données à l'aide du protocole HTTPS sur Internet.The Web synchronization option for SQL ServerSQL Server Merge Replication enables data replication using the HTTPS protocol over the Internet. Pour utiliser la synchronisation Web, vous devez d'abord effectuer les actions de configuration suivantes :To use Web synchronization, you first need to perform the following configuration actions:

  1. Créez de nouveaux comptes de domaine et mappez les connexions SQL ServerSQL Server .Create new domain accounts and map SQL ServerSQL Server logins.

  2. Configurez l'ordinateur qui exécute MicrosoftMicrosoft Internet Information Services (IIS) pour synchroniser les abonnements.Configure the computer that is running MicrosoftMicrosoft Internet Information Services (IIS) to synchronize subscriptions.

  3. Configurez une publication de fusion pour autoriser la synchronisation Web.Configure a merge publication to allow Web synchronization.

  4. Configurez un ou plusieurs abonnements de sorte qu'ils utilisent la synchronisation Web.Configure one or more subscriptions to use Web synchronization.

Note

Si vous envisagez de répliquer d'importants volumes de données ou d'utiliser des types de données volumineuses, tels que varchar(max), lisez la section « Réplication d'importants volumes de données » dans cette rubrique.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.

Pour configurer correctement la synchronisation Web, vous devez décider comment configurer la sécurité pour répondre à vos besoins et stratégies spécifiques.To successfully set up Web synchronization, you must decide how you will configure security to meet your particular requirements and policies. Il est préférable de prendre ces décisions et de créer les comptes nécessaires avant d'essayer de configurer IIS, la publication et les abonnements.It is best to make these decisions and create the necessary accounts before you attempt to configure IIS, the publication, and subscriptions.

Dans les procédures qui suivent, une configuration de la sécurité simplifiée utilisant des comptes locaux est décrite, pour des raisons de concision.In the procedures that follow, a simplified security configuration using local accounts is described, for brevity. Cette configuration simplifiée est appropriée pour les installations où IIS, le serveur de publication et le serveur de distribution SQL ServerSQL Server s'exécutent sur le même ordinateur, bien que l'utilisation d'une topologie à plusieurs serveurs soit beaucoup plus vraisemblable (et recommandée) pour une installation de production.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. Vous pouvez substituer des comptes de domaine aux comptes locaux dans les procédures.You can substitute domain accounts for the local accounts in the procedures.

Création de nouveaux comptes et mappage des connexions SQL ServerCreating New Accounts and Mapping SQL Server Logins

L'écouteur de réplication SQL ServerSQL Server (replisapi.dll) se connecte au serveur de publication en empruntant l'identité du compte spécifié pour le pool d'applications associé au site Web de réplication.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.

Le compte utilisé pour l'écouteur de réplication SQL ServerSQL Server doit avoir les autorisations décrites dans Merge Agent Security, sous la section « Connexion au serveur de publication ou au serveur de distribution ».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." En résumé, le compte doit :In summary, the account must:

  • être membre de la liste d'accès à la publication (PAL) ;Be a member of the Publication Access List (PAL).

  • être mappé à une connexion associée à un utilisateur enregistré dans la base de données de publication ;Be mapped to a login associated with a user in the publication database.

  • être mappé à une connexion associée à un utilisateur enregistré dans la base de données de distribution ;Be mapped to a login associated with a user in the distribution database.

  • être autorisé à lire sur le partage de fichiers d'instantanés.Have Read permissions on the snapshot share.

    Si vous utilisez la réplication SQL ServerSQL Server pour la première fois, vous devez également créer des comptes et des connexions pour les agents de réplication.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. Pour plus d'informations, consultez les sections « Configuration de la publication » et « Configuration de l'abonnement » dans cette rubrique.For more information, see the "Configuring the Publication" and "Configuring the Subscription" sections in this topic.

    Avant de configurer la synchronisation Web, il est recommandé de lire la section « Meilleures pratiques de sécurité pour la synchronisation Web » plus loin dans cette rubrique.Before you configure Web synchronization, we recommend that you read the "Security Best Practices for Web Synchronization" section in this topic. Pour plus d'informations sur la sécurité de la synchronisation Web, consultez Security Architecture for Web Synchronization.For more information about Web synchronization security, see Security Architecture for Web Synchronization.

Configuration de l'ordinateur qui exécute IISConfiguring the Computer That Is Running IIS

La synchronisation Web requiert l'installation et la configuration d'IIS.Web synchronization requires that you install and configure IIS. Vous devez connaître l'URL du site web de réplication pour pouvoir configurer une publication en vue d'utiliser la synchronisation web.You will need the URL to the replication Web site before you can configure a publication to use Web synchronization.

La synchronisation web est prise en charge sur IIS à compter de la version 5.0.Web synchronization is supported on IIS beginning with version 5.0. L'Assistant Configuration de la synchronisation Web n'est pas pris en charge sur IIS version 7.0.The Configure Web Synchronization Wizard is not supported on IIS version 7.0. À partir de SQL Server 2012, nous recommandons aux utilisateurs d’installer SQL Server avec la réplication pour utiliser le composant de synchronisation web sur le serveur IIS.Beginning with SQL Server 2012, to use the web sync component on IIS server, we recommend users install SQL Server with replication. Il peut s’agir de l’édition gratuite de SQL Server Express.This can be the free SQL Server Express edition.

SSL est obligatoire pour la synchronisation web.SSL is required for Web synchronization. Vous aurez besoin d'un certificat de sécurité délivré par une autorité de certification.You will need a security certificate issued by a certification authority. Vous pouvez utiliser un certificat de sécurité auto-émis à des fins de test uniquement.For testing purposes only, you can use a self-issued security certificate.

Pour configurer IIS pour la synchronisation WebTo configure IIS for Web synchronization

Création d'un domaine privé WebCreating a Web Garden

L'écouteur de réplication SQL ServerSQL Server prend en charge deux opérations de synchronisation simultanées par thread.The SQL ServerSQL Server Replication Listener supports two concurrent synchronization operations per thread. Si cette limite est dépassée, l'écouteur de réplication risque de cesser de répondre.Exceeding this limit may cause the Replication Listener to stop responding. Le nombre de threads alloués à replisapi.dll est déterminé par la propriété Nombre maximal de processus de travail du pool d'applications.The number of threads allocated to replisapi.dll is determined by the application pool Maximum Worker Processes property. Par défaut, cette propriété a la valeur 1.By default, this property is set at 1.

Vous pouvez prendre en charge un nombre supérieur d'opérations de synchronisation simultanées par UC en augmentant la valeur de la propriété Nombre maximal de processus de travail.You can support a greater number of concurrent synchronization operations per CPU by increasing the Maximum Worker Process property value. La montée en puissance parallèle en augmentant le nombre de processus de travail par UC s'appelle la création d'un « domaine privé Web ».Scaling out by increasing the number of worker processes per CPU is known as creating a "Web garden."

Le domaine privé Web autorisera plus de deux abonnés à se synchroniser en même temps.Web gardening will allow more than two Subscribers to synchronize at the same time. Cela augmente également l'utilisation du processeur par replisapi.dll, ce qui peut nuire aux performances générales du serveur.It will also increase CPU utilization by replisapi.dll, which can negatively impact overall server performance. Il est important de prendre ces éléments en compte lorsque vous choisissez une valeur pour Nombre maximal de processus de travail.It is important to balance these considerations when you choose a value for Maximum Worker Processes.

Pour augmenter le nombre maximal de processus de travail dans IIS 7To increase Maximum Worker Processes in IIS 7

  1. Dans Gestionnaire des services Internet (IIS), développez le nœud du serveur local, puis cliquez sur le nœud Pool d'applications .In Internet Information Services (IIS) Manager, expand the local server node, and then click on the Application Pool node.

  2. Sélectionnez le pool d'applications associé au site de synchronisation Web, puis cliquez sur Paramètres avancés dans le volet Actions .Select the application pool associated with the Web synchronization site, and then click Advanced Settings on the Actions pane.

  3. Dans la boîte de dialogue Paramètres avancés, sous l'en-tête Traiter le modèle , cliquez sur la ligne intitulée Nombre maximal de processus de travail.On the Advanced Settings dialog, under the Process Model heading, click the row labeled Maximum Worker Processes. Modifiez la valeur de la propriété, puis cliquez sur OK.Change the property value, and then click OK.

Configuration de la publicationConfiguring the Publication

Pour utiliser la synchronisation Web, vous devez créer une publication de la même manière que pour une topologie de fusion standard.To use Web synchronization, create a publication in the same way that you would for a standard merge topology. Pour plus d’informations, consultez Publier des données et des objets de base de données.For more information, see Publish Data and Database Objects.

Une fois la publication créée, activez l'option permettant d'autoriser la synchronisation Web à l'aide d'une des méthodes suivantes : SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQLou les objets 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). Pour activer la synchronisation Web, vous devez fournir l'adresse du serveur Web pour les connexions des abonnés.To enable Web synchronization, you will need to supply the Web server address for Subscriber connections.

Si vous utilisez un serveur de publication pour la première fois, vous devez également configurer un serveur de distribution et un partage de fichiers d'instantanés.If you are using a Publisher for the first time, you must also configure a Distributor and a snapshot share. L'Agent de fusion de chaque Abonné doit disposer d'autorisations de lecture sur le partage d'instantanés.The Merge Agent at each Subscriber must have read permissions on the snapshot share. Pour plus d’informations, consultez Configurer la distribution et Sécuriser le dossier d’instantanés.For more information, see Configure Distribution and Secure the Snapshot Folder.

gen est un mot réservé dans les fichiers XML de websync.gen is a reserved word in websync xml files. Ne pas tentez de publier des tables contenant des colonnes nommées gen.Do not attempt to publish tables containing columns named gen.

Configuration de l'abonnementConfiguring the Subscription

Après avoir activé une publication et configuré IIS, créez un abonnement par extraction et spécifiez que cet abonnement doit être synchronisé à l'aide d'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 synchronisation Web est prise en charge uniquement pour les abonnements par extraction de données.)(Web synchronization is supported only for pull subscriptions.)

Mise à niveau à partir d'une version antérieure de SQL ServerUpgrading from an Earlier Version of SQL Server

Si vous disposez d'une topologie de la synchronisation Web existante configurée et si vous mettez à niveau SQL ServerSQL Server, vous devez vous assurer que la version la plus récente de Replisapi.dll est copiée dans le répertoire virtuel utilisé par la synchronisation 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. Par défaut, la version la plus récente de Replisapi.dll se trouve dans C:\Program Files\Microsoft SQL Server\<nnn>\COM.By default, the latest version of Replisapi.dll is located in C:\Program Files\Microsoft SQL Server\<nnn>\COM.

Réplication d'importants volumes de donnéesReplicating Large Volumes of Data

Pour éviter les problèmes de mémoire au niveau des ordinateurs des abonnés, la synchronisation Web utilise une taille maximale par défaut de 100 Mo pour le fichier XML utilisé pour le transfert des modifications.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. La limite peut être augmentée en définissant la clé de Registre suivante :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

La plage des valeurs acceptables pour cette clé est de 100 Mo à 4 Go.The range of acceptable values for this key is 100 MB to 4GB. La valeur est spécifiée en Ko.The value is specified in KB. Définir ce paramètre avec une valeur élevée ne garantit pas que vous puissiez synchroniser ce volume de données.Setting this parameter to a high value does not guarantee that you can synchronize that amount of data. La limite effective est contrainte par la mémoire contiguë qui est disponible sur l'ordinateur de l'Abonné.The effective limit is constrained by how much contiguous memory is available on the Subscriber computer. Si vous avez besoin d'une valeur supérieure à 100 Mo, nous vous recommandons d'augmenter la valeur de façon incrémentielle et de tester la consommation de mémoire avec une charge de travail standard au niveau de l'Abonné.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 taille maximale du fichier XML est de 4 Go, mais la réplication synchronise les modifications de ce fichier dans des lots.The maximum size for the XML file is 4 GB, but replication synchronizes the changes from that file in batches. La taille maximale des lots de données et de métadonnées est de 25 Mo.The maximum batch size of data and metadata is 25 MB. Vous devez vous assurer que le volume de données de chaque lot ne dépasse pas approximativement 20 Mo, ce qui permet de prendre en charge les métadonnées et toute surcharge additionnelle.You must ensure that the data in each batch does not exceed approximately 20 MB, which allows for metadata and any other overhead. Cette limite a les conséquences suivantes :This limit has the following implications:

  • Vous ne pouvez pas répliquer une colonne qui générerait un volume de données et de métadonnées supérieur à 25 Mo.You cannot replicate any column that causes the data and metadata to exceed 25 MB. Cela peut être un problème lors de la réplication de lignes contenant des types de données volumineuses, tels que varchar(max).This might be an issue when you are replicating rows that contain large data types, such as varchar(max).

  • Si vous répliquez d'importants volumes de données, vous pouvez être amené à ajuster la taille de lot de l'Agent de fusion.If you replicate large volumes of data, you might have to adjust the Merge Agent batch size.

    La taille de lot pour la réplication de fusion est mesurée en générations, lesquelles sont des collections de modifications par article.Batch size for merge replication is measured in generations, which are collections of changes per article. Le nombre de générations dans un lot est spécifié à l’aide des paramètres –DownloadGenerationsPerBatch et –UploadGenerationsPerBatch de l’Agent de fusion.The number of generations in a batch is specified by using the–DownloadGenerationsPerBatch and –UploadGenerationsPerBatch parameters of the Merge Agent. Pour plus d’informations, voir Replication Merge Agent.For more information, see Replication Merge Agent.

    Pour d'importants volumes de données, spécifiez un petit nombre pour chaque paramètre de traitement par lot.For large volumes of data, specify a small number for each of the batching parameters. Nous vous recommandons de commencer avec une valeur de 10, puis d'ajuster cette valeur selon les besoins et les performances des applications.We recommend that you start with a value of 10, and then tune based on application needs and performance. En général, ces paramètres sont spécifiés dans un profil d'agent.Typically, these parameters are specified in an agent profile. Pour plus d'informations sur ces profils, consultez Replication Agent Profiles.For more information about profiles, see Replication Agent Profiles.

Meilleures pratiques de sécurité pour la synchronisation WebSecurity Best Practices for Web Synchronization

La synchronisation Web propose un vaste choix de paramètres associés à la sécurité.There are many choices for security-related settings in Web synchronization. Nous vous recommandons l'approche suivante :We recommend the following approach:

  • Le serveur de distribution et le serveur de publication SQL ServerSQL Server peuvent se trouver sur le même ordinateur (configuration courante pour la réplication de fusion).The SQL ServerSQL Server Distributor and Publisher can be on the same computer (a typical setup for merge replication). IIS doit cependant être installé sur un ordinateur distinct.However, IIS should be installedon a separate computer.

  • Utilisez SSL (Secure Sockets Layer) pour chiffrer la connexion entre l'Abonné et l'ordinateur exécutant IIS.Use Secure Sockets Layer (SSL) to encrypt the connection between the Subscriber and the computer running IIS. Ceci est obligatoire pour la synchronisation Web.This is required for Web synchronization.

  • Utilisez l'authentification de base pour les connexions de l'Abonné vers IIS.Use Basic Authentication for connections from the Subscriber to IIS. En utilisant l'authentification de base, IIS peut établir des connexions au serveur de publication/distribution au nom de l'Abonné sans recourir à la délégation.Using Basic Authentication, IIS can make connections to the Publisher/Distributor on behalf of the Subscriber without requiring delegation. La délégation est nécessaire en cas d'utilisation de l'authentification intégrée.Delegation is required if you use Integrated Authentication.

    Note

    L'authentification de base est la méthode servant à transmettre les informations d'identification à IIS.Basic Authentication is the method by which credentials are passed to IIS. L'authentification de base n'empêche pas de spécifier des comptes de domaine Windows pour les connexions qui sont établies vers IIS.Basic Authentication does not prevent specifying Windows domain accounts for connections that are made to IIS.

  • Spécifiez que l'Agent d'instantané doit s'exécuter sous un compte de domaine Windows et qu'il doit se connecter sous ce compte.Specify that the Snapshot Agent should run under a Windows domain account, and specify that the agent should make connections as that account. (Il s'agit de la configuration par défaut.) Spécifiez que chaque Agent de fusion doit s'exécuter sous le compte de domaine de l'utilisateur utilisant l'ordinateur de l'Abonné et qu'il doit se connecter sous ce compte.(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.

    Pour plus d'informations sur les autorisations requises par les agents, consultez Replication Agent Security Model.For more information about the permissions that are required by agents, see Replication Agent Security Model.

  • Spécifiez le même compte de domaine que celui utilisé par l'Agent de fusion lorsque vous indiquez un compte et un mot de passe dans la page Informations sur le serveur Web de l'Assistant Nouvel abonnement ou lorsque vous indiquez des valeurs pour les paramètres @internet_url et @internet_login de 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. Ce compte doit disposer d'autorisations en lecture pour le partage des instantanés.This account must have read permissions for the snapshot share.

  • Chaque publication doit utiliser un répertoire virtuel distinct pour IIS.Each publication should use a separate virtual directory for IIS.

  • Le compte sous lequel s'exécute l'écouteur de réplication SQL ServerSQL Server (Replisapi.dll) est également le compte qui se connecte au serveur de publication et au serveur de distribution lors de la synchronisation.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. Ce compte doit être mappé à un compte de connexion SQL sur le serveur de publication et le serveur de distribution.This account must be mapped to a SQL Login account on the Publisher and Distributor. Pour plus d’informations, consultez la section « Définition des autorisations pour l’écouteur de réplication SQL Server » dans la rubrique Configurer IIS pour la synchronisation Web.For more information, see the "Setting Permissions for the SQL Server Replication Listener" section in the Configure IIS for Web Synchronization.

  • Vous pouvez utiliser FTP pour remettre l'instantané du serveur de publication à l'ordinateur exécutant IIS.You can use FTP to deliver the snapshot from the Publisher to the computer that is running IIS. L'instantané est toujours remis de l'ordinateur exécutant IIS à l'Abonné au moyen du protocole HTTPS.The snapshot is always delivered from the computer that is running IIS to the Subscriber by using HTTPS. Pour plus d’informations, consultez Transférer des instantanés via FTP.For more information, see Transfer Snapshots Through FTP.

  • Si les serveurs de la topologie de réplication se trouvent derrière un pare-feu, vous devrez peut-être ouvrir les ports dans le pare-feu afin d'activer la synchronisation Web.If servers in the replication topology are behind a firewall, you might need to open ports in the firewall to enable Web synchronization.

    • L'ordinateur de l'abonné se connecte à l'ordinateur qui exécute IIS sur HTTPS à l'aide du protocole SSL, qui est généralement configuré pour utiliser le port 443.The Subscriber computer connects to the computer that is running IIS over HTTPS using SSL, which is typically configured to use port 443. Les abonnés SQL Server CompactSQL Server Compact peuvent également se connecter via le protocole HTTP, qui utilise en règle générale le port 80. SQL Server CompactSQL Server Compact Subscribers can also connect over HTTP, which is typically configured to use port 80.

    • L'ordinateur chargé d'exécuter IIS se connecte généralement au serveur de publication ou au serveur de distribution via le port 1433 (instance par défaut).The computer that is running IIS typically connects to the Publisher or Distributor using port 1433 (default instance). Lorsque le serveur de publication ou le serveur de distribution correspond à une instance nommée sur un serveur avec une autre instance par défaut, le système utilise habituellement le port 1500 pour se connecter à l'instance nommée.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.

    • Si l'ordinateur exécutant IIS est séparé du serveur de distribution par un pare-feu et si un partage FTP est employé pour la remise des instantanés, vous devez ouvrir les ports utilisés pour le partage 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. Pour plus d’informations, consultez Transférer des instantanés via FTP.For more information, see Transfer Snapshots Through FTP.

Important

L'ouverture de ports dans votre pare-feu peut exposer votre serveur à des attaques malveillantes.Opening ports in your firewall can leave your server exposed to malicious attacks. Assurez-vous de comprendre le fonctionnement des systèmes de pare-feu avant d'ouvrir des ports.Make sure that you understand firewall systems before you open ports. Pour plus d'informations, consultez Security Considerations for a SQL Server Installation.For more information, see Security Considerations for a SQL Server Installation.

Voir aussiSee Also

Synchronisation web pour la réplication de fusionWeb Synchronization for Merge Replication