Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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:
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. 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. 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:
Fare clic su Start, quindi scegliere Esegui.
Digitare
cmde fare clic su OK.Al prompt dei comandi digitare:
sqlplus <UserSchemaLogin>/<UserSchemaPassword>@<NetServiceName>Ad esempio:
sqlplus replication/$tr0ngPasswerd@Oracle90ServerSe la configurazione di rete ha esito positivo, l'accesso avrà esito positivo e verrà visualizzato un
SQLprompt.
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 |