Partager via


Abonnés Oracle

À compter de SQL Server 2005, SQL Server prend en charge les abonnements Push vers Oracle via le fournisseur Oracle OLE DB fourni par Oracle.

Configuration d’un abonné Oracle

Pour configurer un Abonné Oracle, procédez comme suit :

  1. Installez et configurez le logiciel de mise en réseau du client Oracle et le fournisseur Oracle OLE DB sur le serveur de distribution SQL Server, afin que le serveur de distribution puisse établir des connexions à l’abonné Oracle. Le logiciel de mise en réseau du client Oracle doit être la version la plus récente disponible. Oracle recommande aux utilisateurs d’installer les versions les plus récentes du logiciel client. Le logiciel client est donc souvent une version plus récente que le logiciel de base de données. Le moyen le plus simple d’installer le logiciel consiste à utiliser le programme d’installation universel Oracle sur le disque client Oracle. Dans le programme d’installation d’Oracle Universal, vous fournissez les informations suivantes :

    Informations Descriptif
    Accueil Oracle Il s’agit du chemin d’accès au répertoire d’installation du logiciel Oracle. Acceptez la valeur par défaut (C :\oracle\ora90 ou similaire) ou entrez un autre chemin. Pour plus d’informations sur la page d’accueil Oracle, consultez la section « Considérations relatives à Oracle Home » plus loin dans cette rubrique.
    Nom d’accueil Oracle L'alias pour le chemin principal Oracle.
    Type d’installation Dans Oracle 10g, sélectionnez l’option d’installation du runtime ou de l’administrateur .
  2. Créez un nom TNS pour l’Abonné. TNS (Transparent Network Substrate) est une couche de communication utilisée par les bases de données Oracle. Le nom du service TNS est le nom par lequel une instance de base de données Oracle est connue sur un réseau. Vous attribuez un nom de service TNS lorsque vous configurez la connectivité à la base de données Oracle. La réplication utilise le nom du service TNS pour identifier l’Abonné et établir des connexions.

    Une fois le programme d’installation universel Oracle terminé, utilisez l’Assistant Configuration Net pour configurer la connectivité réseau. Vous devez fournir quatre informations pour configurer la connectivité réseau. L’administrateur de base de données Oracle configure la configuration réseau lors de la configuration de la base de données et de l’écouteur et doit être en mesure de fournir ces informations si vous ne l’avez pas. Procédez comme suit :

    Action Descriptif
    Identifier la base de données Il existe deux méthodes pour identifier la base de données. La première méthode utilise l’identificateur système Oracle (SID) et est disponible dans chaque version d’Oracle. La deuxième méthode utilise le nom du service, qui est disponible à partir de la version Oracle 8.0. Les deux méthodes utilisent une valeur configurée lors de la création de la base de données et il est important que la configuration réseau du client utilise la même méthode d’affectation de noms que celle utilisée par l’administrateur lors de la configuration de l’écouteur pour la base de données.
    Identifier un alias réseau pour la base de données Vous devez spécifier un alias réseau, qui est utilisé pour accéder à la base de données Oracle. L’alias réseau est essentiellement un pointeur vers le SID distant ou le nom du service configuré lors de la création de la base de données ; il a été référencé par plusieurs noms dans différentes versions et produits Oracle, y compris Net Service Name et TNS Alias. SQL*Plus vous invite à entrer cet alias en tant que paramètre « Chaîne hôte » lorsque vous vous connectez.
    Sélectionner le protocole réseau Sélectionnez les protocoles appropriés que vous souhaitez prendre en charge. La plupart des applications utilisent TCP.
    Spécifier les informations de l’hôte pour identifier l’écouteur de base de données L’hôte est le nom ou l’alias DNS de l’ordinateur sur lequel l’écouteur Oracle est en cours d’exécution, qui est généralement le même ordinateur sur lequel réside la base de données. Pour certains protocoles, vous devez fournir des informations supplémentaires. Par exemple, si vous sélectionnez TCP, vous devez fournir le port sur lequel l’écouteur écoute les demandes de connexion à la base de données cible. La configuration TCP par défaut utilise le port 1521.
  3. Créez une publication transactionnelle ou d’instantané, activez-la pour les abonnés non-SQL Server, puis créez un abonnement Push pour l’Abonné. Pour plus d’informations, consultez Créer un abonnement pour un abonné non-SQL Server.

Définition des autorisations de répertoire

Le compte sous lequel le service SQL Server sur le serveur de distribution s’exécute doit recevoir des autorisations de lecture et d’exécution pour le répertoire (et tous les sous-répertoires) où le logiciel de mise en réseau du client Oracle est installé.

Test de connectivité entre le serveur de distribution SQL Server et le serveur de publication Oracle

Près de la fin de l’Assistant Configuration Net, il peut y avoir une option permettant de tester la connexion à l’Abonné Oracle. Avant de tester la connexion, vérifiez que l’instance de base de données Oracle est en ligne et que l’écouteur Oracle est en cours d’exécution. Si le test échoue, contactez l’administrateur de base de données Oracle responsable de la base de données à laquelle vous essayez de vous connecter.

Une fois que vous avez effectué une connexion réussie à l’Abonné Oracle, essayez de vous connecter à la base de données à l’aide du même compte et mot de passe que vous avez configurés pour l’Agent de distribution pour l’abonnement :

  1. Cliquez sur Démarrer, puis cliquez sur Exécuter.

  2. Tapez cmd et cliquez sur OK.

  3. À l’invite de commandes, tapez :

    sqlplus <UserSchemaLogin>/<UserSchemaPassword>@<NetServiceName>

    Par exemple : sqlplus replication/$tr0ngPasswerd@Oracle90Server

  4. Si la configuration réseau a réussi, la connexion réussit et une invite s’affiche SQL .

Considérations relatives à Oracle Home

Oracle prend en charge l’installation côte à côte des fichiers binaires d’application, mais un seul ensemble de fichiers binaires peut être utilisé par la réplication à un moment donné. Chaque ensemble de fichiers binaires est associé à une page d’accueil Oracle ; les fichiers binaires se trouvent dans le répertoire %ORACLE_HOME%\bin. Vous devez vous assurer que l’ensemble correct de fichiers binaires (en particulier la dernière version du logiciel de mise en réseau client) est utilisé lorsque la réplication établit des connexions à l’Abonné Oracle.

Connectez-vous au serveur de distribution avec les comptes utilisés par le service SQL Server et le service SQL Server Agent et définissez les variables d’environnement appropriées. La variable %ORACLE_HOME% doit être définie pour faire référence au point d’installation que vous avez spécifié lors de l’installation du logiciel réseau client. Le %PATH% doit inclure le répertoire %ORACLE_HOME% \bin comme première entrée Oracle rencontrée. Pour plus d’informations sur la définition des variables d’environnement, consultez la documentation Windows.

Remarque

Si vous avez plusieurs serveurs Oracle sur le serveur de distribution SQL Server, vérifiez que l’Agent de distribution utilise le fournisseur ORACLE OLE DB le plus récent. Dans certains cas, Oracle ne met pas à jour le fournisseur OLE DB par défaut lorsque vous mettez à jour les composants clients sur le serveur de distribution SQL Server. Désinstallez l’ancien fournisseur OLE DB et installez le dernier fournisseur OLE DB. Pour plus d’informations sur l’installation et la désinstallation du fournisseur, consultez la documentation Oracle.

Considérations relatives aux abonnés Oracle

En plus des considérations abordées dans la rubrique Abonnés non-SQL Server, tenez compte des problèmes suivants lors de la réplication vers les abonnés Oracle :

  • Oracle traite les chaînes vides et les valeurs NULL comme NULL. Cela est important si vous définissez une colonne SQL Server comme NOT NULL et que vous répliquez la colonne sur un abonné Oracle. Pour éviter les échecs lors de l’application de modifications à l’Abonné Oracle, vous devez effectuer l’une des opérations suivantes :

    • Vérifiez que les chaînes vides ne sont pas insérées dans la table publiée en tant que valeurs de colonne.

    • Utilisez le paramètre -SkipErrors pour l’Agent de distribution s’il est acceptable d’être averti des échecs dans le journal d’historique de l’Agent de distribution et de poursuivre le traitement. Spécifiez le code d’erreur Oracle 1400 (-SkipErrors1400).

    • Modifiez le script de création de table généré, en supprimant l’attribut NOT NULL de toutes les colonnes de caractères susceptibles d’avoir associé des chaînes vides et en fournissant le script modifié en tant que script de création personnalisé pour l’article à l’aide du @creation_script paramètre de sp_addarticle.

  • Les abonnés Oracle prennent en charge une option de schéma, 0x4071. Pour plus d’informations sur les options de schéma, consultez sp_addarticle (Transact-SQL).

Mappage des types de données de SQL Server à Oracle

Le tableau suivant montre les mappages de types de données utilisés lorsque les données sont répliquées sur un Abonné exécutant Oracle.

Type de données SQL Server Type de données Oracle
bigint NOMBRE(19,0)
binary(1-2000) RAW(1-2000)
binary(2001-8000) Objet Binaire de Grande Taille (BLOB)
bit NUMÉRO(1)
char(1-2000) CHAR(1-2000)
char(2001-4000) VARCHAR2(2001-4000)
char(4001-8000) CLOB
date DATE
datetime DATE
datetime2(0-7) TIMESTAMP(7) pour Oracle 9 et Oracle 10 ; VARCHAR(27) pour Oracle 8
datetimeoffset(0-7) TIMESTAMP(7) WITH TIME ZONE pour Oracle 9 et Oracle 10 ; VARCHAR(34) pour Oracle 8
decimal(1-38, 0-38) NOMBRE(1-38, 0-38)
float(53) FLOTTER
float FLOTTER
geography Objet Binaire de Grande Taille (BLOB)
geometry Objet Binaire de Grande Taille (BLOB)
hierarchyid Objet Binaire de Grande Taille (BLOB)
image Objet Binaire de Grande Taille (BLOB)
int NOMBRE(10,0)
money NOMBRE(19,4)
nchar(1-1000) CHAR(1-1000)
nchar(1001-4000) NCLOB
ntext NCLOB
numeric(1-38, 0-38) NOMBRE(1-38, 0-38)
nvarchar(1-1000) VARCHAR2(1-2000)
nvarchar(1001-4000) NCLOB
nvarchar(max) NCLOB
real RÉEL
smalldatetime DATE
smallint NOMBRE(5,0)
smallmoney NOMBRE(10,4)
sql_variant N/A
sysname VARCHAR2(128)
text CLOB
time(0-7) VARCHAR(16)
timestamp RAW(8)
tinyint NUMBER(3,0)
uniqueidentifier CHAR(38)
varbinary(1-2000) RAW(1-2000)
varbinary(2001-8000) Objet Binaire de Grande Taille (BLOB)
varchar(1-4000) VARCHAR2(1-4000)
varchar(4001-8000) CLOB
varbinary(max) Objet Binaire de Grande Taille (BLOB)
varchar(max) CLOB
xml NCLOB

Voir aussi

Abonnés non-SQL Server
S’abonner aux Publications