Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’option de synchronisation web pour la réplication de fusion SQL Server permet la réplication des données à l’aide du protocole HTTPS sur Internet. Pour utiliser la synchronisation web, vous devez d’abord effectuer les actions de configuration suivantes :
Créez des comptes de domaine et mappez des connexions SQL Server.
Configurez l’ordinateur exécutant Microsoft Internet Information Services (IIS) pour synchroniser les abonnements.
Configurez une publication de fusion pour autoriser la synchronisation web.
Configurez un ou plusieurs abonnements pour utiliser la synchronisation web.
Remarque
Si vous envisagez de répliquer de grands volumes de données ou d’utiliser des types de données volumineux tels que varchar(max), lisez la section « Réplication de grands volumes de données » dans cette rubrique.
Pour configurer correctement la synchronisation web, vous devez décider de la façon dont vous allez configurer la sécurité pour répondre à vos exigences et stratégies particulières. Il est préférable de prendre ces décisions et de créer les comptes nécessaires avant de tenter de configurer IIS, la publication et les abonnements.
Dans les procédures qui suivent, une configuration de sécurité simplifiée à l’aide de comptes locaux est décrite, à des fins de concision. Cette configuration simplifiée est adaptée aux installations où IIS et SQL Server Publisher et le serveur de distribution s’exécutent sur le même ordinateur, même s’il est beaucoup plus probable (et recommandé) d’utiliser une topologie à plusieurs serveurs pour une installation de production. Vous pouvez remplacer les comptes de domaine pour les comptes locaux dans les procédures.
Création de comptes et mappage de connexions SQL Server
L’écouteur de réplication SQL 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.
Le compte utilisé pour le service d'écoute de réplication de SQL Server doit disposer d’autorisations, comme décrit dans Merge Agent Security, dans la section « Connexion au serveur de publication ou au serveur de distribution ». En résumé, le compte doit :
être membre de la liste d'accès à la publication (PAL) ;
Être mappé à une connexion associée à un utilisateur enregistré dans la base de données de publication.
Être mappé à une connexion associée à un utilisateur enregistré dans la base de données de distribution.
Avoir les droits de lecture sur le partage instantané.
Si c’est la première fois que vous utilisez la réplication SQL Server, vous devez également créer des comptes et des connexions pour les agents de réplication. Pour plus d’informations, consultez les sections « Configuration de la publication » et « Configuration de l’abonnement » de cette rubrique.
Avant de configurer la synchronisation web, nous vous recommandons de lire la section « Meilleures pratiques de sécurité pour la synchronisation web » dans cette rubrique. Pour plus d’informations sur la sécurité de la synchronisation web, consultez Architecture de sécurité pour la synchronisation web.
Configuration de l’ordinateur exécutant IIS
La synchronisation web nécessite l’installation et la configuration d’IIS. Vous aurez besoin de l’URL du site web de réplication avant de pouvoir configurer une publication pour utiliser la synchronisation web.
La synchronisation web est prise en charge sur IIS à compter de la version 5.0. L'Assistant de configuration de la synchronisation web n'est pas pris en charge sur IIS version 7.0. À compter de SQL Server 2012, pour utiliser le composant de synchronisation web sur le serveur IIS, nous vous recommandons d’installer SQL Server avec la réplication. Il peut s’agir de l’édition GRATUITE de SQL Server Express.
SSL est requis pour la synchronisation web. Vous aurez besoin d’un certificat de sécurité émis par une autorité de certification. À des fins de test uniquement, vous pouvez utiliser un certificat de sécurité auto-émis.
Pour configurer IIS pour la synchronisation web
SQL Server Management Studio : Configurer IIS pour la synchronisation web
SQL Server Management Studio : Configurer IIS 7 pour la synchronisation web
Création d’un jardin web
L’écouteur de réplication SQL Server prend en charge deux opérations de synchronisation simultanées par thread. Le dépassement de cette limite peut entraîner l’arrêt de réponse de l’écouteur de réplication. Le nombre de threads alloués à replisapi.dll est déterminé par la propriété Processus de travail maximum du pool d’applications. Par défaut, cette propriété est définie à 1.
Vous pouvez prendre en charge un plus grand nombre d’opérations de synchronisation simultanées par processeur en augmentant la valeur de propriété Processus de travail maximale. Le scale-out en augmentant le nombre de processus de travail par processeur est appelé création d’un « jardin web ».
Le jardinage web permettra à plus de deux Abonnés de se synchroniser en même temps. Il augmente également l’utilisation du processeur par replisapi.dll, ce qui peut avoir un impact négatif sur les performances globales du serveur. Il est important d’équilibrer ces considérations lorsque vous choisissez une valeur pour les processus de travail maximum.
Pour augmenter le nombre maximal de processus de travail dans IIS 7
Dans le Gestionnaire IIS (Internet Information Services), développez le nœud de serveur local, puis cliquez sur le nœud de Pool d’applications.
Sélectionnez le pool d’applications associé au site de synchronisation web, puis cliquez sur Paramètres avancés dans le volet Actions .
Dans la boîte de dialogue Paramètres avancés, sous le titre Modèle de processus , cliquez sur la ligne intitulée Nombre maximal de processus de travail. Modifiez la valeur de la propriété, puis cliquez sur OK.
Configuration de la publication
Pour utiliser la synchronisation web, créez une publication de la même façon que vous le feriez pour une topologie de fusion standard. Pour plus d’informations, consultez Publier des données et des objets de base de données.
Une fois la publication créée, activez l’option permettant la synchronisation web à l’aide de l’une des méthodes suivantes : SQL Server Management Studio, Transact-SQL ou Replication Management Objects (RMO). Pour activer la synchronisation web, vous devez fournir l’adresse du serveur web pour les connexions de l’Abonné.
Si vous utilisez un Éditeur pour la première fois, vous devez également configurer un Distributeur et un partage d’instantanés. L’Agent de fusion sur chaque Souscripteur doit disposer d’autorisations de lecture sur le partage instantané. Pour plus d’informations, consultez Configurer la distribution et Sécuriser le dossier d’instantanés.
gen est un mot réservé dans les fichiers xml websync. N’essayez pas de publier des tables contenant des colonnes nommées gen.
Configuration de l’abonnement
Après avoir activé une publication et configuré IIS, créez un abonnement par extraction et spécifiez que l’abonnement par extraction doit se synchroniser à l’aide d’Internet Information Services (IIS). (La synchronisation web est prise en charge uniquement pour les abonnements par extraction.)
Mise à niveau à partir d’une version antérieure de SQL Server
Si vous disposez d’une topologie de synchronisation Web existante configurée et que vous mettez à niveau SQL Server, vous devez vous assurer que la dernière version de Replisapi.dll est copiée dans le répertoire virtuel utilisé par la synchronisation web. Par défaut, la dernière version de Replisapi.dll se trouve dans C :\Program Files\Microsoft SQL Server\<nnn>\COM.
Réplication de grands volumes de données
Pour éviter les problèmes de mémoire potentiels sur les ordinateurs abonnés, la synchronisation web utilise une taille maximale par défaut de 100 Mo pour le fichier XML utilisé pour transférer les modifications. La limite peut être levée en définissant la clé de Registre suivante :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\Replication
WebSyncMaxXmlSize DWORD 20000000
La plage de valeurs acceptables pour cette clé est de 100 Mo à 4 Go. La valeur est spécifiée en Ko. La définition de ce paramètre sur une valeur élevée ne garantit pas que vous pouvez synchroniser cette quantité de données. La limite effective est limitée par la quantité de mémoire contiguë disponible sur l’ordinateur abonné. Si vous devez avoir une valeur supérieure à 100 Mo, nous vous recommandons d’augmenter la valeur de manière incrémentielle et de tester la consommation de mémoire avec une charge de travail classique sur l’Abonné.
La taille maximale du fichier XML est de 4 Go, mais la réplication synchronise les modifications de ce fichier par lots. La taille maximale des données et des métadonnées est de 25 Mo. Vous devez vous assurer que les données de chaque lot ne dépassent pas environ 20 Mo, ce qui laisse la place aux métadonnées et autres surcharges éventuelles. Cette limite a les implications suivantes :
Vous ne pouvez pas répliquer une colonne qui provoque le dépassement de 25 Mo de données et de métadonnées. Il peut s’agir d’un problème lorsque vous répliquez des lignes qui contiennent des types de données volumineux, tels que
varchar(max).Si vous répliquez de grands volumes de données, vous devrez peut-être ajuster la taille du lot de l’Agent de fusion.
La taille du lot pour la réplication de fusion est mesurée en générations, qui sont des collections de modifications par 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. Pour plus d’informations, consultez l’Agent de fusion de réplication.
Pour les grands volumes de données, spécifiez un petit nombre pour chacun des paramètres de traitement par lots. Nous vous recommandons de commencer par une valeur de 10, puis d’ajuster en fonction des besoins et des performances de l’application. En règle générale, ces paramètres sont spécifiés dans un profil d’agent. Pour plus d’informations sur les profils, consultez Profils de l’agent de réplication.
Meilleures pratiques de sécurité pour la synchronisation web
Il existe de nombreux choix pour les paramètres liés à la sécurité dans la synchronisation Web. Nous vous recommandons l’approche suivante :
Le serveur de distribution et le serveur de publication SQL Server peuvent se trouver sur le même ordinateur (configuration classique pour la réplication de fusion). Toutefois, IIS doit être installé sur un ordinateur distinct.
Utilisez SSL (Secure Sockets Layer) pour chiffrer la connexion entre l’Abonné et l’ordinateur exécutant IIS. Cette opération est requise pour la synchronisation web.
Utilisez l’authentification de base pour les connexions de l’Abonné à IIS. À l’aide de l’authentification de base, IIS peut établir des connexions au serveur de publication/serveur de distribution pour le compte de l’Abonné sans nécessiter de délégation. La délégation est requise si vous utilisez l’authentification intégrée.
Remarque
L’authentification de base est la méthode par laquelle les informations d’identification sont transmises à IIS. L’authentification de base n’empêche pas la spécification de comptes de domaine Windows pour les connexions effectuées à IIS.
Spécifiez que l’Agent d’instantané doit s’exécuter sous un compte de domaine Windows et spécifier que l’agent doit établir des connexions en tant que compte. (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 qui utilise l’ordinateur abonné et spécifier que l’agent doit établir des connexions en tant que compte.
Pour plus d’informations sur les autorisations requises par les agents, consultez le modèle de sécurité de l’agent de réplication.
Spécifiez le même compte de domaine que celui que l’Agent de fusion utilise lorsque vous spécifiez un compte et un mot de passe dans la page Informations du serveur web de l’Assistant Nouvel abonnement ou lorsque vous spécifiez des valeurs pour les paramètres @internet_url et @internet_login de sp_addpullsubscription_agent. Ce compte doit disposer d’autorisations de lecture pour le partage d’instantanés.
Chaque publication doit utiliser un répertoire virtuel distinct pour IIS.
Le compte sous lequel l’écouteur de réplication SQL Server (Replisapi.dll) s’exécute est également le compte qui se connecte au serveur de publication et au serveur de distribution pendant le processus de synchronisation. Ce compte doit être mappé à un compte de connexion SQL sur le serveur de publication et le serveur de distribution. Pour plus d’informations, consultez la section « Définition des autorisations pour l’écouteur de réplication SQL Server » dans la section Configurer IIS pour la synchronisation web.
Vous pouvez utiliser FTP pour transférer l’instantané de l’éditeur à l’ordinateur exécutant IIS. L’instantané est toujours remis à partir de l’ordinateur exécutant IIS sur l’Abonné à l’aide du protocole HTTPS. Pour plus d’informations, consultez Transférer des instantanés via FTP.
Si les serveurs de la topologie de réplication se trouvent derrière un pare-feu, vous devrez peut-être ouvrir des ports dans le pare-feu pour activer la synchronisation web.
L’ordinateur abonné se connecte à l’ordinateur exécutant IIS via HTTPS à l’aide de SSL, qui est généralement configuré pour utiliser le port 443. Les abonnés SQL Server Compact peuvent également se connecter via HTTP, qui est généralement configuré pour utiliser le port 80.
L’ordinateur exécutant IIS se connecte généralement au serveur de publication ou au serveur de distribution à l’aide du port 1433 (instance par défaut). Lorsque le serveur de publication ou le serveur de distribution est une instance nommée sur un serveur avec une autre instance par défaut, le port 1500 est généralement utilisé pour se connecter à l’instance nommée.
Si l’ordinateur exécutant IIS est séparé du serveur de distribution par un pare-feu et qu’un partage FTP est utilisé pour la remise d’instantanés, les ports utilisés pour FTP doivent être ouverts. Pour plus d’informations, consultez Transférer des instantanés via FTP.
Important
L'ouverture de ports dans votre pare-feu peut exposer votre serveur à des attaques malveillantes. Assurez-vous de comprendre le fonctionnement des systèmes de pare-feu avant d'ouvrir des ports. Pour plus d'informations, consultez Security Considerations for a SQL Server Installation.