Procédure : créer un abonnement pour un Abonné non-SQL Server (SQL Server Management Studio)
Mis à jour : 12 décembre 2006
Le réplication transactionnelle et la réplication de capture instantanée prennent en charge la publication de données vers des Abonnés non-Microsoft SQL Server. Pour créer une publication destinée à un Abonné non-SQL Server :
- Installez et configurez le logiciel client et le ou les fournisseurs OLE DB approprié sur le serveur de distribution SQL Server. Pour plus d'informations, consultez Abonnés Oracle et Abonnés IBM DB2.
- Créez une publication avec l'Assistant Nouvelle publication. Pour plus d'informations sur la création de publications, consultez Procédure : créer une publication et définir des articles (SQL Server Management Studio) et Procédure : créer une publication à partir d'une base de données Oracle (SQL Server Management Studio). Spécifiez les options suivantes dans l'Assistant Nouvelle publication :
- Dans la page Type de publication, sélectionnez Publication de capture instantanée ou Publication transactionnelle.
- Dans la page Agent de capture instantanée, désactivez Créer une capture instantanée immédiatement.
Vous devez créer la capture instantanée après avoir activé la publication pour les Abonnés non-SQL Server afin de garantir que l'Agent de capture instantanée génère une capture instantanée et des scripts d'initialisation qui conviennent pour des Abonnés non-SQL Server.
- Activez la publication pour les Abonnés non-SQL Server à l'aide de la boîte de dialogue Propriétés de la publication - <PublicationName>. Cette rubrique fournit des informations sur cette étape.
- Créez un abonnement avec l'Assistant Nouvel abonnement. Cette rubrique fournit des informations sur cette étape.
- (Facultatif) Modifiez la propriété d'article pre_creation_cmd pour conserver les tables sur l'Abonné. Cette rubrique fournit des informations sur cette étape.
- Générez une capture instantanée de la publication. Cette rubrique fournit des informations sur cette étape.
- Synchronisez l'abonnement. Pour plus d'informations, consultez Procédure : synchroniser un abonnement par envoi de données (SQL Server Management Studio).
Remarque : |
---|
Ce processus s'applique aux serveurs de publication exécutant Microsoft SQL Server 2005 et version ultérieure. |
Pour activer une publication pour des Abonnés non-SQL Server
Connectez-vous au serveur de publication dans SQL Server Management Studio, puis développez le nœud du serveur.
Développez le dossier Réplication, puis le dossier Publications locales.
Cliquez avec le bouton droit sur la publication, puis sur Propriétés.
Dans la page Options d'abonnement, sélectionnez la valeur True pour l'option Autoriser les Abonnés non-SQL Server. Cette option modifie certaines propriétés afin que la publication soit compatible avec les Abonnés non SQL Server.
Remarque : Le choix de la valeur True définit alors la valeur de l'article pre_creation_cmd à « drop ». Ce paramètre indique que la réplication doit supprimer une table au niveau de l'Abonné si elle correspond au nom de la table dans l'article. Si vous disposez de tables existantes au niveau de l'Abonné que vous souhaitez conserver, utilisez la procédure stockée sp_changearticle de chaque article ; précisez une valeur « none » pour pre_creation_cmd : sp_changearticle @publication= 'MyPublication', @article= 'MyArticle', @property='pre_creation_cmd', @value='none'
.Cliquez sur OK. Vous êtes invité à créer une nouvelle capture instantanée de la publication. Si vous ne souhaitez pas le faire immédiatement, vous utiliserez plus tard la procédure décrite plus loin dans la prochaine procédure.
Pour créer une publication destinée à un Abonné non-SQL Server
Développez le dossier Réplication, puis le dossier Publications locales.
Cliquez avec le bouton droit sur la publication appropriée, puis sur Nouveaux abonnements.
Dans la page Emplacement de l'Agent de distribution, vérifiez que Exécuter tous les agents sur le serveur de distribution est bien sélectionné. Les Abonnés non-SQL Server ne prennent pas en charge les agents qui s'exécutent au niveau de l'Abonné.
Dans la page Abonnés, cliquez sur Ajouter un Abonné puis sur Ajouter un Abonné non-SQL Server.
Dans la boîte de dialogue Ajouter un Abonné non-SQL Server, sélectionnez le type d'Abonné.
Entrez une valeur dans Nom de la source de données :
- Pour Oracle, cette valeur est le nom du TNS (transparent network substrate) que vous avez configuré.
- Pour IBM, ce peut être n'importe quel nom. En règle générale, spécifiez l'adresse réseau de l'Abonné.
Le nom de la source de données entré à cette étape et les informations de connexion spécifiées à l'étape 9 ne sont pas validés par cet Assistant. Ils ne sont pas utilisés par la réplication avant que l'Agent de distribution ne s'exécute pour l'abonnement. Assurez-vous que toutes les valeurs ont été testées en vous connectant à l'Abonné à l'aide d'un outil client (par exemple sqlplus pour Oracle). Pour plus d'informations, consultez Abonnés Oracle et Abonnés IBM DB2.
Cliquez sur OK. Dans la page Abonnés de l'Assistant, l'Abonné s'affiche maintenant dans la colonne Abonné avec une (destination par défaut) en lecture seule dans la colonne Base de données d'abonnement :
- Pour Oracle, un serveur a au plus une base de données, et il n'est donc pas nécessaire de spécifier la base de données.
- Pour IBM DB2, la base de données est spécifiée dans la propriété Catalogue initial de la chaîne de connexion DB2, qui peut être entrée dans le champ Options de connexion supplémentaires décrit plus loin.
Dans la page Sécurité de l'Agent de distribution, cliquez sur le bouton de propriétés (…) à côté de l'Abonné pour accéder à la boîte de dialogue Sécurité de l'Agent de distribution.
Dans la boîte de dialogue Sécurité de l'Agent de distribution :
Dans les champs Compte de processus, Mot de passe et Confirmer le mot de passe, entrez le compte Microsoft Windows et le mot de passe sous lequel l'Agent de distribution doit s'exécuter et se connecter en local sur le serveur de distribution.
Ce compte a besoin des autorisations minimales suivantes : membre du rôle de base de données fixe db_owner dans la base de données de distribution ; membre de la PAL (liste d'accès de publication) ; autorisations de lecture sur le partage de capture instantanée ; et autorisation de lecture sur le répertoire d'installation du fournisseur OLE DB. Pour plus d'informations sur la PAL, consultez Sécurisation du serveur de publication.Sous Connexion à l'Abonné, dans les champs Connexion, Mot de passe et Confirmer le mot de passe, entrez la connexion et le mot de passe à utiliser pour se connecter à l'Abonné. Cette connexion devrait déjà être configurée et devrait avoir des autorisations suffisantes pour créer des objets dans la base de données d'abonnement.
Dans le champ Options de connexion supplémentaires, spécifiez les autres options de connexion pour l'Abonné sous la forme d'une chaîne de connexion (Oracle ne nécessite pas d'options supplémentaires). Les options doivent être séparées par un point-virgule Voici un exemple de chaîne de connexion DB2 (les retours à la ligne facilitent la lisibilité) :
Provider=DB2OLEDB;Initial Catalog=MY_SUBSCRIBER_DB;Network Transport Library=TCP;Host CCSID=1252; PC Code Page=1252;Network Address=MY_SUBSCRIBER;Network Port=50000;Package Collection=MY_PKGCOL; Default Schema=MY_SCHEMA;Process Binary as Character=False;Units of Work=RUW;DBMS Platform=DB2/NT; Persist Security Info=False;Connection Pooling=True;
La plupart des options de cette chaîne sont spécifiques au serveur DB2 que vous êtes en train de configurer, mais l'option Process Binary as Character (Traiter la valeur binaire en tant que caractère) doit toujours être définie à False. Une valeur est nécessaire pour l'option Catalogue initial pour identifier la base de données d'abonnement.
Dans la page Planification de synchronisation, sélectionnez une planification pour l'Agent de distribution à partir du menu Planification de l'agent (en règle générale, Exécuter en continu).
Dans la page Initialiser les abonnements, spécifiez si l'abonnement doit être initialisé et, dans ce cas, quand l'initialiser :
- Ne désactivez Initialiser que si vous avez créé tous les objets et ajouté toutes les données nécessaires dans la base de données d'abonnement.
- Sélectionnez Immédiatement dans la liste déroulante de la colonne À quel moment pour que l'Agent de distribution transfère les fichiers de capture instantanée à l'Abonné lorsque l'Assistant se termine. Sélectionnez Lors de la première synchronisation pour que l'Agent transfère les fichiers lors de la prochaine exécution planifiée.
Sur la page Actions de l'Assistant, scriptez en option l'abonnement. Pour plus d'informations, consultez Création de scripts de réplication.
Pour conserver les tables sur l'Abonné
- Par défaut, le fait d'activer une publication pour des Abonnés non SQL Server définit la valeur de la propriété d'article pre_creation_cmd à 'drop'. Ce paramètre indique que la réplication doit supprimer une table au niveau de l'Abonné si elle correspond au nom de la table dans l'article. Si vous disposez de tables existantes au niveau de l'Abonné que vous souhaitez conserver, utilisez la procédure stockée sp_changearticle pour chaque article ; précisez une valeur 'none' pour pre_creation_cmd.
sp_changearticle @publication= 'MyPublication', @article= 'MyArticle', @property='pre_creation_cmd', @value='none'
.
Pour générer une capture instantanée de la publication.
Développez le dossier Réplication, puis le dossier Publications locales.
Cliquez avec le bouton droit sur la publication, puis cliquez sur Afficher l'état de l'Agent de capture instantanée.
Dans la boîte de dialogue Afficher l'état de l'Agent de capture instantanée - <Publication> cliquez sur Démarrer.
Lorsque l'Agent de capture instantanée a terminé, un message s'affiche, par exemple, « [100%] Une capture instantanée de 17 articles a été générée. »
Voir aussi
Concepts
Autres ressources
How to: Create a Subscription for a Non-SQL Server Subscriber (Replication Transact-SQL Programming)