Condividi tramite


Sottoscrittori Oracle

A partire da SQL Server 2005, SQL Server supporta le sottoscrizioni push a Oracle tramite il provider Oracle OLE DB fornito da Oracle.

Configurazione di un Sottoscrittore Oracle

Per configurare un Sottoscrittore Oracle, seguire questa procedura:

  1. Installare e configurare il software di rete client Oracle e il provider Oracle OLE DB nel server di distribuzione SQL Server, in modo che il server di distribuzione possa stabilire connessioni al Sottoscrittore Oracle. Il software di rete client Oracle deve essere la versione più recente disponibile. Oracle consiglia agli utenti di installare le versioni più recenti del software client. Il software client è quindi spesso una versione più recente del software di database. Il modo più semplice per installare il software consiste nell'usare il programma di installazione universale Oracle sul disco del client Oracle. In Oracle Universal Installer verranno fornite le informazioni seguenti:

    Informazione Descrizione
    Oracle Home Questo è il percorso della directory di installazione per il software Oracle. Accettare il valore predefinito (C:\oracle\ora90 o simile) o immettere un altro percorso. Per ulteriori informazioni su Oracle Home, vedere la sezione "Considerazioni per Oracle Home" più avanti in questo argomento.
    Nome Oracle home Alias per il percorso home di Oracle.
    Tipo di installazione In Oracle 10g, selezionare l'opzione di installazione Runtime o Administrator.
  2. Creare un nome TNS per il Sottoscrittore. TNS (Transparent Network Substrate) è un livello di comunicazione usato dai database Oracle. Il nome del servizio TNS è il nome in base al quale un'istanza del database Oracle è nota in una rete. Quando si configura la connettività al database Oracle, si assegna un nome di servizio TNS. La replica usa il nome del servizio TNS per identificare il Sottoscrittore e stabilire le connessioni.

    Al termine del programma di installazione universale Oracle, usare Net Configuration Assistant per configurare la connettività di rete. È necessario fornire quattro informazioni per configurare la connettività di rete. L'amministratore del database Oracle configura la configurazione di rete durante la configurazione del database e del listener e deve essere in grado di fornire queste informazioni se non è disponibile. Eseguire le operazioni seguenti:

    Azione Descrizione
    Identificare il database Esistono due metodi per identificare il database. Il primo metodo usa il SID (Oracle System Identifier) ed è disponibile in ogni versione oracle. Il secondo metodo usa il nome del servizio, disponibile a partire dalla versione Oracle 8.0. Entrambi i metodi usano un valore configurato al momento della creazione del database ed è importante che la configurazione di rete client usi lo stesso metodo di denominazione usato dall'amministratore durante la configurazione del listener per il database.
    Identificare un alias di rete per il database È necessario specificare un alias di rete, che viene usato per accedere al database Oracle. L'alias di rete è essenzialmente un puntatore al SID remoto o al nome del servizio configurato al momento della creazione del database; è stato fatto riferimento a diversi nomi in versioni e prodotti Oracle diversi, tra cui Net Service Name e TNS Alias. SQL*Plus richiede questo alias come parametro "Stringa host" al momento dell'accesso.
    Selezionare il protocollo di rete Selezionare i protocolli appropriati da supportare. La maggior parte delle applicazioni usa TCP.
    Specificare le informazioni sull'host per identificare il listener del database L'host è il nome o l'alias DNS del computer in cui è in esecuzione il listener Oracle, che in genere è lo stesso computer in cui risiede il database. Per alcuni protocolli, è necessario fornire informazioni aggiuntive. Ad esempio, se si seleziona TCP, è necessario specificare la porta in cui il listener è in ascolto delle richieste di connessione al database di destinazione. La configurazione TCP predefinita usa la porta 1521.
  3. Creare una pubblicazione snapshot o transazionale, abilitarla per i sottoscrittori che non utilizzano SQL Server e quindi creare una sottoscrizione push per il sottoscrittore. Per altre informazioni, vedere Creare una sottoscrizione per un Sottoscrittore non SQL Server.

Impostazione delle autorizzazioni della directory

All'account con cui viene eseguito il servizio SQL Server nel server di distribuzione devono essere concesse autorizzazioni di lettura ed esecuzione per la directory (e tutte le sottodirectory) in cui è installato il software di rete client Oracle.

Test della connettività tra il server di distribuzione SQL Server e il server di pubblicazione Oracle

Alla fine di Net Configuration Assistant potrebbe essere disponibile un'opzione per testare la connessione al Sottoscrittore Oracle. Prima di testare la connessione, verificare che l'istanza del database Oracle sia online e che il listener Oracle sia in esecuzione. Se il test non riesce, contattare l'amministratore di database Oracle responsabile del database a cui si sta tentando di connettersi.

Dopo aver effettuato una connessione corretta al Sottoscrittore Oracle, tentare di accedere al database usando lo stesso account e la stessa password configurati per l'agente di distribuzione per la sottoscrizione:

  1. Fare clic su Start, quindi scegliere Esegui.

  2. Digitare cmd e fare clic su OK.

  3. Al prompt dei comandi digitare:

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

    Ad esempio: sqlplus replication/$tr0ngPasswerd@Oracle90Server

  4. Se la configurazione di rete ha esito positivo, l'accesso avrà esito positivo e verrà visualizzato un SQL prompt.

Considerazioni per Oracle Home

Oracle supporta l'installazione side-by-side dei file binari dell'applicazione, ma solo un set di file binari può essere usato dalla replica in un determinato momento. Ogni set di file binari è associato a una home page Oracle; i file binari si trovano nella directory %ORACLE_HOME%\bin. È necessario assicurarsi che il set corretto di file binari (in particolare la versione più recente del software di rete client) venga usato quando la replica stabilisce connessioni al Sottoscrittore Oracle.

Accedere al server di distribuzione con gli account usati dal servizio SQL Server e dal servizio SQL Server Agent e impostare le variabili di ambiente appropriate. La variabile %ORACLE_HOME% deve essere impostata per fare riferimento al punto di installazione specificato durante l'installazione del software di rete client. Il %PATH% deve includere la directory %ORACLE_HOME% \bin come prima voce Oracle rilevata. Per informazioni sull'impostazione delle variabili di ambiente, vedere la documentazione di Windows.

Annotazioni

Se nel server di distribuzione di SQL Server sono presenti più di una Oracle home, Assicurarsi che l'agente di distribuzione usi il provider Oracle OLE DB più recente. In alcuni casi Oracle non aggiorna il provider OLE DB per impostazione predefinita quando si aggiornano i componenti client nel server di distribuzione DI SQL Server. Disinstallare il provider OLE DB precedente e installare il provider OLE DB più recente. Per altre informazioni sull'installazione e la disinstallazione del provider, vedere la documentazione di Oracle.

Considerazioni per i Sottoscrittori Oracle

Oltre alle considerazioni illustrate nell'argomento Sottoscrittori non SQL Server, prendere in considerazione i seguenti problemi quando si replica verso i Sottoscrittori Oracle.

  • Oracle considera sia stringhe vuote che valori NULL come NULL. Questa operazione è importante se si definisce una colonna di SQL Server come NOT NULL e si replica la colonna in un Sottoscrittore Oracle. Per evitare errori durante l'applicazione di modifiche al Sottoscrittore Oracle, è necessario eseguire una delle operazioni seguenti:

    • Assicurarsi che le stringhe vuote non vengano inserite nella tabella pubblicata come valori di colonna.

    • Usare il parametro -SkipErrors per l'agente di distribuzione se è accettabile ricevere una notifica degli errori nel log della cronologia dell'agente di distribuzione e continuare l'elaborazione. Specificare il codice di errore Oracle 1400 (-SkipErrors1400).

    • Modificare lo script di creazione tabella generato, rimuovendo l'attributo NOT NULL da qualsiasi colonna di caratteri che può avere associato stringhe vuote e specificando lo script modificato come script di creazione personalizzato per l'articolo usando il @creation_script parametro di sp_addarticle.

  • I Sottoscrittori Oracle supportano un'opzione di schema di 0x4071. Per altre informazioni sulle opzioni dello schema, vedere sp_addarticle (Transact-SQL).

Mapping dei tipi di dati da SQL Server a Oracle

Nella tabella seguente vengono illustrati i mapping dei tipi di dati usati quando i dati vengono replicati in un Sottoscrittore che esegue Oracle.

Tipo di dati di SQL Server Tipo di dati Oracle
bigint NUMBER(19,0)
binary(1-2000) RAW(1-2000)
binary(2001-8000) BLOB
bit NUMERO(1)
char(1-2000) CHAR(1-2000)
char(2001-4000) VARCHAR2(2001-4000)
char(4001-8000) CLOB
date DATTERO
datetime DATTERO
datetime2(0-7) TIMESTAMP(7) per Oracle 9 e Oracle 10; VARCHAR(27) per Oracle 8
datetimeoffset(0-7) TIMESTAMP(7) CON FUSO ORARIO per Oracle 9 e Oracle 10; VARCHAR(34) per Oracle 8
decimal(1-38, 0-38) NUMBER(1-38, 0-38)
float(53) Galleggiare
float Galleggiare
geography BLOB
geometry BLOB
hierarchyid BLOB
image BLOB
int NUMBER(10,0)
money NUMBER(19,4)
nchar(1-1000) CHAR(1-1000)
nchar(1001-4000) NCLOB
ntext NCLOB
numeric(1-38, 0-38) NUMERO(1-38, 0-38)
nvarchar(1-1000) VARCHAR2(1-2000)
nvarchar(1001-4000) NCLOB
nvarchar(max) NCLOB
real REALE
smalldatetime DATTERO
smallint NUMBER(5,0)
smallmoney NUMBER(10,4)
sql_variant Non disponibile
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) BLOB
varchar(1-4000) VARCHAR2(1-4000)
varchar(4001-8000) CLOB
varbinary(max) BLOB
varchar(max) CLOB
xml NCLOB

Vedere anche

Sottoscrittori non SQL Server
Sottoscrivere pubblicazioni