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.
Cette rubrique explique comment créer un abonnement pour un abonné non-SQL Server dans SQL Server 2014 à l’aide de SQL Server Management Studio ou de Transact-SQL. La réplication transactionnelle et par instantané prend en charge la publication de données vers des abonnés autres que SQL Server. Pour plus d’informations sur les plateformes d’Abonné prises en charge, consultez Abonnés non-SQL Server.
Dans cette rubrique
Pour créer un abonnement pour un abonné non-SQL Server, utilisez :
Utilisation de SQL Server Management Studio
Pour créer un abonnement pour un abonné non-SQL Server :
Installez et configurez les logiciels clients appropriés et les fournisseurs OLE DB sur le serveur de distribution SQL Server. Pour plus d’informations, consultez Abonnés Oracle et Abonnés IBM DB2.
Créez une publication à l’aide de l’Assistant "Nouvelle Publication". Pour plus d’informations sur la création de publications, consultez Créer une publication et créer une publication à partir d’une base de données Oracle. Spécifiez les options suivantes dans l’Assistant de nouvelle publication :
Dans la page Type de publication, sélectionnez Publication d’instantané ou Publication transactionnelle.
Dans la page Agent d’instantané , désactivez immédiatement Créer un instantané.
Vous créez l’instantané une fois la publication activée pour les abonnés non-SQL Server pour vous assurer que l’Agent d’instantané génère un instantané et des scripts d’initialisation adaptés aux 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 publication - <Nom de> publication. Pour plus d’informations sur cette étape , consultez Propriétés de publication, Options d’abonnement .
Créez un abonnement à l’aide de l’Assistant de création de Nouvel Abonnement. Cette rubrique fournit plus d’informations sur cette étape.
(Facultatif) Modifiez la propriété de l'article pre_creation_cmd pour conserver les tables sur l'abonné. Cette rubrique fournit plus d’informations sur cette étape.
Générez un instantané pour la publication. Cette rubrique fournit plus d’informations sur cette étape.
Synchronisez l’abonnement. Pour plus d’informations, consultez Synchroniser un abonnement Push.
Pour activer une publication pour les 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 développez le dossier Publications locales .
Cliquez avec le bouton droit sur la publication, puis cliquez 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. La sélection de cette option modifie un certain nombre de propriétés afin que la publication soit compatible avec les abonnés non-SQL Server.
Remarque
La sélection de True définit la valeur de la propriété d'article pre_creation_cmd sur « drop ». Ce paramètre spécifie que la réplication doit supprimer une table sur le serveur abonné si elle correspond au nom de la table dans l’article. Si vous avez des tables existantes sur l’Abonné que vous souhaitez conserver, utilisez la procédure stockée sp_changearticle pour chaque article ; spécifiez une valeur 'none' pour pre_creation_cmd :
sp_changearticle @publication= 'MyPublication', @article= 'MyArticle', @property='pre_creation_cmd', @value='none'.Cliquez sur OK. Vous serez invité à créer un instantané pour la publication. Si vous ne souhaitez pas en créer un pour l’instant, utilisez les étapes décrites dans la procédure suivante « how to » à une date ultérieure.
Pour créer un abonnement pour un abonné non-SQL Server
Développez le dossier Réplication , puis développez le dossier Publications locales .
Cliquez avec le bouton droit sur la publication appropriée, puis cliquez sur Nouveaux abonnements.
Sur la page Emplacement de l’agent de distribution, assurez-vous que Exécuter tous les agents sur le serveur du distributeur est sélectionné. Les abonnés non-SQL Server ne prennent pas en charge l’exécution d’agents sur 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 le nom de la source de données :
Pour Oracle, il s’agit du nom TNS (Transparent Network Substrate) que vous avez configuré.
Pour IBM, il peut s’agir de n’importe quel nom. Il est courant de spécifier l’adresse réseau de l’Abonné.
Le nom de la source de données entré dans cette étape et les informations d’identification spécifiées à l’étape 9 ne sont pas validées par cet Assistant. Ils ne sont pas utilisés par la réplication tant que l’Agent de distribution ne fonctionne pas pour l’abonnement. Vérifiez 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 désormais dans la colonne Abonné, avec une mention en lecture seule (destination par défaut) dans la colonne Base de données d’abonnement :
Pour Oracle, un serveur possède au plus une base de données. 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écrites plus loin dans ce processus.
Dans la page Sécurité de l’Agent de distribution , cliquez sur le bouton Propriétés (...) en regard 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 Traiter le compte, le mot de passe et confirmer le mot de passe , entrez le compte Microsoft Windows et le mot de passe sous lesquels l’Agent de distribution doit s’exécuter et établir des connexions locales au serveur de distribution.
Le compte requiert ces autorisations minimales : membre du rôle de base de données fixe db_owner dans la base de données de distribution ; membre de la liste d’accès aux publications (PAL) ; autorisations de lecture sur le partage d’instantanés ; et l’autorisation de lecture sur le répertoire d’installation du fournisseur OLE DB. Pour plus d'informations sur le PAL, consultez Sécuriser l'éditeur.
Sous Se connecter à l’Abonné, dans les champs Connexion, Mot de passe et Confirmer le mot de passe , entrez la connexion et le mot de passe qui doivent être utilisés pour se connecter à l’Abonné. Cette connexion doit déjà être configurée et doit disposer 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 options de connexion de l’Abonné sous la forme d’une chaîne de connexion (Oracle ne nécessite pas d’options supplémentaires). Chaque option doit être séparée par un point-virgule. Voici un exemple de chaîne de connexion DB2 (les sauts de ligne sont à des fins de 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 la chaîne sont spécifiques au serveur DB2 que vous configurez, mais l’option Traiter binaire en tant que caractère doit toujours être définie sur False. Une valeur est requise 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 dans le menu Planification de l’agent (la planification est généralement exécutée en continu).
Dans la page Initialiser les abonnements , spécifiez si l’abonnement doit être initialisé et, le cas échéant, quand il doit être initialisé :
Désactivez Initialiser uniquement si vous avez créé tous les objets et ajouté toutes les données requises dans la base de données d’abonnement.
Sélectionnez Immédiatement dans la liste déroulante de la colonne Initialize When afin que l'Agent de distribution transfère les fichiers instantanés vers l'Abonné après l'achèvement de cet Assistant. Sélectionnez À la première synchronisation pour que l’agent transfère les fichiers lors de la prochaine exécution planifiée.
Dans la page Actions de l’Assistant , vous pouvez éventuellement scripter l’abonnement. Pour plus d’informations, consultez La réplication de script.
Pour conserver les tables sur l’Abonné
- Par défaut, l’activation d’une publication pour les abonnés non-SQL Server définit la valeur de la propriété d’article pre_creation_cmd sur « drop ». Ce paramètre spécifie que la réplication doit supprimer une table sur l’Abonné si elle correspond au nom de la table dans l’article. Si vous avez des tables existantes sur l’Abonné que vous souhaitez conserver, utilisez la procédure stockée sp_changearticle pour chaque article ; spécifiez une valeur 'none' pour pre_creation_cmd.
sp_changearticle @publication= 'MyPublication', @article= 'MyArticle', @property='pre_creation_cmd', @value='none'.
Pour générer un instantané pour la publication
Développez le dossier Réplication , puis développez 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 d’instantané - <Publication> , cliquez sur Démarrer.
Une fois l’Agent d’instantané terminé la génération de l’instantané, un message s’affiche, par exemple « [100%] Un instantané de 17 articles a été généré ».
Utilisation de Transact-SQL
Vous pouvez créer des abonnements push vers des abonnés sans SQL Server de manière programmée à l’aide de procédures stockées de réplication.
Important
Si possible, invitez les utilisateurs à entrer des informations d’identification de sécurité au moment de l’exécution. Si vous devez stocker des informations d’identification dans un fichier de script, vous devez sécuriser le fichier pour empêcher l’accès non autorisé.
Pour créer un abonnement Push pour une publication transactionnelle ou d’instantané auprès d’un abonné non-SQL Server
Installez le fournisseur OLE DB le plus récent pour l’abonné non-SQL Server sur le serveur de publication et le serveur de distribution. Pour connaître les exigences de réplication pour un fournisseur OLE DB, consultez Abonnés non-SQL Server, Abonnés Oracle, AbonnésIBM DB2.
Sur la base de données de publication du serveur de publication, vérifiez que la publication prend en charge les abonnés non-SQL Server en exécutant sp_helppublication (Transact-SQL).
Si la valeur est
enabled_for_het_sub1, les abonnés non-SQL Server sont pris en charge.Si la valeur est
enabled_for_het_sub0, exécutez sp_changepublication (Transact-SQL), en spécifiantenabled_for_het_subpour @property ettruepour @value.Remarque
Avant de passer
enabled_for_het_subàtrue, vous devez supprimer tous les abonnements existants à la publication. Vous ne pouvez pas attribuerenabled_for_het_subàtruelorsque la publication prend également en charge la mise à jour des abonnements. La modificationenabled_for_het_subaffecte d’autres propriétés de publication. Pour plus d’informations, consultez Abonnés non-SQL Server.
Sur l'éditeur de la base de données de publication, exécutez sp_addsubscription (Transact-SQL). Spécifiez @publication, @subscriber, une valeur (destination par défaut) pour @destination_db, une valeur push pour@subscription_type et une valeur de 3 pour @subscriber_type (spécifie un fournisseur OLE DB).
Dans la base de données de publication du serveur de publication, exécutez sp_addpushsubscription_agent (Transact-SQL). Spécifiez les éléments suivants :
Paramètres @subscriberet @publication .
Valeur (destination par défaut) pour @subscriber_db,
Propriétés de la source de données non-SQL Server pour @subscriber_provider, @subscriber_datasrc, @subscriber_location, @subscriber_provider_string et @subscriber_catalog.
Informations d’identification Microsoft Windows sous lesquelles l’Agent de distribution sur le serveur de distribution s’exécute pour @job_login et @job_password.
Remarque
Les connexions effectuées à l’aide de l’authentification intégrée Windows utilisent toujours les informations d’identification Windows spécifiées par @job_login et @job_password. L’Agent de distribution établit toujours la connexion locale au serveur de distribution à l’aide de l’authentification intégrée Windows. Par défaut, l’agent se connecte à l’Abonné à l’aide de l’authentification intégrée Windows.
Valeur 0 pour @subscriber_security_mode et les informations de connexion du fournisseur OLE DB pour @subscriber_login et @subscriber_password.
Planification du travail de l’Agent de distribution pour cet abonnement. Pour plus d’informations, consultez Spécifier des planifications de synchronisation.
Important
Lors de la création d’un abonnement Push sur un serveur de publication avec un serveur de distribution distant, les valeurs fournies pour tous les paramètres, notamment job_login et job_password, sont envoyées au serveur de distribution sous forme de texte brut. Vous devez chiffrer la connexion entre le serveur de publication et son serveur de distribution distant avant d’exécuter cette procédure stockée. Pour plus d’informations, consultez Activer des connexions chiffrées dans le moteur de base de données (Gestionnaire de configuration SQL Server).
Voir aussi
Abonnés IBM DB2
Abonnés Oracle
Autres abonnés non-SQL Server
Concepts liés aux procédures stockées système de réplication
Meilleures pratiques en matière de sécurité de réplication