Sottoscrittori OracleOracle Subscribers

In questo argomento si applica a: SìSQL ServernonDatabase SQL di AzurenonAzure SQL Data Warehouse non Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse A partire da SQL Server 2005SQL Server 2005, SQL ServerSQL Server supporta le sottoscrizioni push a Oracle tramite il provider Oracle OLE DB fornito da Oracle. Beginning with SQL Server 2005SQL Server 2005, SQL ServerSQL Server supports push subscriptions to Oracle through the Oracle OLE DB provider supplied by Oracle.

Configurazione di un Sottoscrittore OracleConfiguring an Oracle Subscriber

Per configurare un Sottoscrittore Oracle, eseguire la procedura seguente:To configure an Oracle Subscriber, follow these steps:

  1. Installare e configurare il software client Oracle di rete e il provider OLE DB appropriato sul server di distribuzione SQL ServerSQL Server in modo che questo possa connettersi al Sottoscrittore Oracle.Install and configure Oracle client networking software and the Oracle OLE DB provider on the SQL ServerSQL Server Distributor, so that the Distributor can make connections to the Oracle Subscriber. Il software client Oracle di rete deve essere dell'ultima versione disponibile.The Oracle client networking software should be the most recent version available. È consigliabile installare l'ultima versione del software client.Oracle recommends that users install the most recent versions of client software. Per tale motivo, la versione del software client è spesso successiva a quella del software del database.The client software is therefore often a more recent version than the database software. Il modo più diretto per installare e configurare il software consiste nell'utilizzare Oracle Universal Installer presente nel disco di Oracle Client.The most straightforward way to install the software is to use the Oracle Universal Installer on the Oracle Client disk. In Oracle Universal Installer, è necessario inserire le informazioni seguenti:In the Oracle Universal Installer, you will supply the following information:

    InformazioniInformation DescrizioneDescription
    Oracle HomeOracle Home Percorso della directory di installazione del software Oracle.This is the path to the install directory for the Oracle software. Accettare il percorso predefinito (C:\oracle\ora90 o simile) o inserirne un altro.Accept the default (C:\oracle\ora90 or similar) or enter another path. Per ulteriori informazioni su Oracle Home, vedere la sezione relativa alle considerazioni su Oracle Home più avanti in questo argomento.For more information about the Oracle Home, see the section "Considerations for Oracle Home" later in this topic.
    Oracle home nameOracle home name Alias del percorso di Oracle Home.An alias for the Oracle home path.
    Installation typeInstallation type In Oracle 10g, selezionare l'opzione di installazione Runtime o Administrator .In Oracle 10g, select the Runtime or Administrator installation option.
  2. Creare un nome TNS per il Sottoscrittore.Create a TNS name for the Subscriber. TNS (Transparent Network Substrate) è un livello di comunicazione utilizzato dai database Oracle.TNS (Transparent Network Substrate) is a communication layer used by Oracle databases. Il nome del servizio TNS è il nome con cui un'istanza di database Oracle viene riconosciuta in una rete.The TNS Service Name is the name by which an Oracle database instance is known on a network. Il nome del servizio TNS viene assegnato durante la configurazione della connettività per il database Oracle.You assign a TNS Service Name when you configure connectivity to the Oracle database. La replica utilizza il TNS Service Name per identificare il Sottoscrittore e per stabilire le connessioni.Replication uses the TNS Service name to identify the Subscriber and to establish connections.

    Dopo aver completato la procedura di Oracle Universal Installer, utilizzare Net Configuration Assistant per configurare la connettività di rete.After the Oracle Universal Installer is complete, use the Net Configuration Assistant to configure network connectivity. È necessario indicare quattro informazioni per configurare la connettività di rete.You must supply four pieces of information to configure network connectivity. L'amministratore del database Oracle definisce la configurazione di rete quando imposta il database e il listener e deve essere in grado di offrire queste informazioni se l'utente non le possiede.The Oracle database administrator configures the network configuration when setting up the database and listener and should be able to provide this information if you do not have it. Eseguire le operazioni seguenti:You must do the following:

    AzioneAction DescrizioneDescription
    Identificazione del databaseIdentify the database Per l'identificazione del database sono disponibili due modalità.There are two methods for identifying the database. La prima modalità utilizza il SID (Oracle System Identifier) ed è disponibile in ogni release di Oracle.The first method uses the Oracle System Identifier (SID) and is available in every Oracle release. La seconda utilizza il Service Name, disponibile a partire da Oracle 8.0.The second method uses the Service Name, which is available starting with Oracle release 8.0. Entrambe le modalità utilizzano un valore configurato alla creazione del database ed è importante che la configurazione di rete del client utilizzi la stessa modalità di denominazione utilizzata dall'amministratore nella configurazione del listener per il database.Both methods use a value that is configured when the database is created and it is important that the client networking configuration use the same naming method that the administrator used when configuring the listener for the database.
    Identificazione di un alias di rete per il databaseIdentify a network alias for the database È necessario specificare un alias di rete che verrà utilizzato per accedere al database Oracle.You must specify a network alias, which is used to access the Oracle database. Si tratta in sostanza di un puntatore al Service Name o al SID remoto che è stato configurato quando è stato creato il database. Per l'alias di rete sono stati utilizzati diversi nomi nelle diverse release e nei diversi prodotti Oracle, tra cui Net Service Name e TNS Alias.The network alias is essentially a pointer to the remote SID or Service Name that was configured when the database was created; it has been referred to by several names in different Oracle releases and products, including Net Service Name and TNS Alias. SQLPlus richiede questo alias come parametro "Host String" al momento dell'accesso.SQLPlus prompts for this alias as the "Host String" parameter when you log in.
    Selezione del protocollo di reteSelect the network protocol Selezionare i protocolli appropriati che si desidera supportare.Select the appropriate protocols you would like to support. La maggioranza delle applicazioni utilizza il protocollo TCP.Most applications use TCP.
    Inserimento dei dati host per identificare il listener del databaseSpecify the host information to identify the database listener L'host è il nome o l'alias DNS del computer su cui viene eseguito il listener Oracle, in genere lo stesso computer contenente il database.The host is the name or DNS alias of the computer on which the Oracle listener is running, which is typically the same computer on which the database resides. Per alcuni protocolli è necessario indicare informazioni aggiuntive.For some protocols, you must provide additional information. Ad esempio, se si seleziona il protocollo TCP è necessario indicare la porta su cui il listener rimane in attesa di richieste di connessione al database di destinazione.For example, if you select TCP, you must supply the port on which the listener is listening for connection requests to the target database. La configurazione TCP predefinita utilizza la porta 1521.The default TCP configuration uses port 1521.
  3. Creare uno snapshot o una pubblicazione transazionale, abilitarlo per i Sottoscrittori non SQL ServerSQL Server , quindi creare una sottoscrizione push per il Sottoscrittore.Create a snapshot or transactional publication, enable it for non- SQL ServerSQL Server Subscribers, and then create a push subscription for the Subscriber. Per altre informazioni, vedere Creazione di una sottoscrizione per un Sottoscrittore non SQL Server.For more information, see Create a Subscription for a Non-SQL Server Subscriber.

Impostazione delle autorizzazioni di directorySetting directory permissions

All'account con cui viene eseguito il servizio SQL ServerSQL Server disponibile nel server di distribuzione devono essere concesse le autorizzazioni di lettura ed esecuzione per la directory e tutte le sottodirectory in cui è installato il software client Oracle di rete.The account under which the SQL ServerSQL Server service on the Distributor runs must be granted read and execute permissions for the directory (and all subdirectories) where the Oracle client networking software is installed.

Verifica della connettività tra il server di distribuzione SQL Server e il server di pubblicazione OracleTesting connectivity between the SQL Server Distributor and the Oracle Publisher

In una delle fasi conclusive di Net Configuration Assistant potrebbe essere disponibile l'opzione di verifica della connessione al Sottoscrittore Oracle.Near the end of the Net Configuration Assistant there might be an option to test the connection to the Oracle Subscriber. Prima di verificare la connessione, verificare che l'istanza del database Oracle sia online e che il listener Oracle sia in esecuzione.Before you test the connection, ensure that the Oracle database instance is online and that the Oracle Listener is running. Se la verifica non riesce, rivolgersi al DBA Oracle responsabile del database a cui si tenta di connettersi.If the test is unsuccessful, contact the Oracle DBA responsible for the database to which you are trying to connect.

Dopo essere riusciti a stabilire la connessione con il Sottoscrittore Oracle, tentare di accedere al database utilizzando l'account e la password configurati per l'agente di distribuzione per la sottoscrizione:After you have made a successful connection to the Oracle Subscriber, attempt to log in to the database using the same account and password as you configured for the Distribution Agent for the subscription:

  1. Fare clic sul pulsante Starte quindi scegliere Esegui.Click Start, and then click Run.

  2. Digitare cmd e fare clic su OK.Type cmd and click OK.

  3. Al prompt dei comandi digitare:At the command prompt, type:

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

    Ad esempio sqlplus replication/$tr0ngPasswerd@Oracle90ServerFor example: sqlplus replication/$tr0ngPasswerd@Oracle90Server

  4. Se la configurazione di rete è riuscita, sarà possibile accedere e verrà visualizzato il prompt SQL .If the networking configuration was successful, the login will succeed and you will see a SQL prompt.

Considerazioni su Oracle HomeConsiderations for Oracle Home

Oracle supporta l'installazione side-by-side di file binari dell'applicazione, ma la replica può utilizzare un solo set di file binari alla volta.Oracle supports side-by-side installation of application binaries, but only one set of binaries can be used by replication at a given time. Ogni set di file binari è associato a un Oracle Home; tali file si trovano nella directory %ORACLE_HOME%\bin.Each set of binaries is associated with an Oracle Home; the binaries are in the directory %ORACLE_HOME%\bin. È necessario verificare che quando la replica effettua connessioni al Sottoscrittore Oracle venga utilizzato il set di file binari corretto, in particolare, l'ultima versione del software client di rete.You must ensure that the correct set of binaries (specifically the latest version of the client networking software) is used when replication makes connections to the Oracle Subscriber.

Accedere al server di distribuzione con gli account utilizzati dal servizio SQL ServerSQL Server e dal servizio SQL ServerSQL Server Agent e impostare le corrette variabili d'ambiente.Log into the Distributor with the accounts used by the SQL ServerSQL Server service and the SQL ServerSQL Server Agent service and set the appropriate environment variables. La variabile %ORACLE_HOME% deve essere impostata in modo da fare riferimento al punto di installazione specificato quando è stato installato il software client di rete.The %ORACLE_HOME% variable should be set to refer to the installation point you specified when you installed the client networking software. %PATH% deve includere la directory %ORACLE_HOME% \bin come prima voce Oracle rilevata.The %PATH% must include the %ORACLE_HOME% \bin directory as the first Oracle entry that is encountered. Per informazioni sull'impostazione delle variabili d'ambiente, vedere la documentazione di Windows.For information about setting environment variables, see the Windows documentation.

Nota

Se sul server di distribuzione SQL ServerSQL Server sono presenti più Oracle Home, verificare che l'agente di distribuzione utilizzi il provider OLE DB Oracle più recente.If you have more than one Oracle home on the SQL ServerSQL Server Distributor, ensure that the Distribution Agent is using the most recent Oracle OLE DB provider. In alcuni casi, Oracle non aggiorna il provider OLE DB per impostazione predefinita quando vengono aggiornati i componenti del client sul server di distribuzione SQL ServerSQL Server .In some cases, Oracle does not update the OLE DB provider by default when you update the client components on the SQL ServerSQL Server Distributor. Disinstallare il vecchio provider OLE DB e installare l'ultimo provider OLE DB.Uninstall the old OLE DB provider and install the latest OLE DB provider. Per ulteriori informazioni sull'installazione e sulla disinstallazione del provider, vedere la documentazione di Oracle.For more information about installing and uninstalling the provider, see the Oracle documentation.

Considerazioni sui Sottoscrittori OracleConsiderations for Oracle Subscribers

Oltre alle considerazioni trattate nell'argomento Non-SQL Server Subscribers, è necessario considerare i seguenti problemi relativi alla replica nei Sottoscrittori Oracle:In addition to the considerations covered in the topic Non-SQL Server Subscribers, consider the following issues when replicating to Oracle Subscribers:

  • Oracle considera sia le stringhe vuote sia i valori NULL come NULL.Oracle treats both empty strings and NULL values as NULL. Questo è importante se una colonna di SQL ServerSQL Server viene definita come NOT NULL e si replica tale colonna in un Sottoscrittore Oracle.This is important if you define a SQL ServerSQL Server column as NOT NULL, and are replicating the column to an Oracle Subscriber. Per evitare errori quando si applicano le modifiche al Sottoscrittore Oracle, è necessario eseguire una delle operazioni seguenti:To avoid failures when applying changes to the Oracle Subscriber, you must do one of the following:

    • Verificare che le stringhe vuote non vengano inserite nella tabella pubblicata come valori di colonna.Ensure that empty strings are not inserted into the published table as column values.

    • 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.Use the –SkipErrors parameter for the Distribution Agent if it is acceptable to be notified of failures in the Distribution Agent history log and to continue processing. Specificare il codice errore Oracle 1400 (-SkipErrors1400).Specify the Oracle error code 1400 (-SkipErrors1400).

    • Modificare lo script di creazione tabelle generato, rimuovendo l'attributo NOT NULL da qualsiasi colonna di tipo carattere a cui possano essere associate stringhe vuote e fornire lo script modificato come script di creazione personalizzato per l'articolo utilizzando il parametro @creation_script di sp_addarticle.Modify the generated create table script, removing the NOT NULL attribute from any character columns that may have associated empty strings, and supply the modified script as a custom create script for the article using the @creation_script parameter of sp_addarticle.

  • I Sottoscrittori Oracle supportano un'opzione di schema 0x4071.Oracle Subscribers support a schema option of 0x4071. Per altre informazioni sulle opzioni di schema, vedere sp_addarticle (Transact-SQL).For more information about schema options, see sp_addarticle (Transact-SQL).

Mapping di tipi di dati da SQL Server ad OracleMapping Data Types from SQL Server to Oracle

Nella tabella seguente vengono mostrati i mapping dei tipi di dati utilizzati per la replica di dati in un Sottoscrittore in cui è eseguito Oracle.The following table shows the data type mappings that are used when data is replicated to a Subscriber running Oracle.

Tipo di dati di SQL ServerSQL Server data type Tipo di dati OracleOracle Data type
bigintbigint NUMBER(19,0)NUMBER(19,0)
binary(1-2000)binary(1-2000) RAW(1-2000)RAW(1-2000)
binary(2001-8000)binary(2001-8000) BLOBBLOB
bitbit NUMBER(1)NUMBER(1)
char(1-2000)char(1-2000) CHAR(1-2000)CHAR(1-2000)
char(2001-4000)char(2001-4000) VARCHAR2(2001-4000)VARCHAR2(2001-4000)
char(4001-8000)char(4001-8000) CLOBCLOB
datedate DATEDATE
datetimedatetime DATEDATE
datetime2(0-7)datetime2(0-7) TIMESTAMP(7) per Oracle 9 e Oracle 10; VARCHAR(27) per Oracle 8TIMESTAMP(7) for Oracle 9 and Oracle 10; VARCHAR(27) for Oracle 8
datetimeoffset(0-7)datetimeoffset(0-7) TIMESTAMP(7) WITH TIME ZONE per Oracle 9 e Oracle 10; VARCHAR(34) per Oracle 8TIMESTAMP(7) WITH TIME ZONE for Oracle 9 and Oracle 10; VARCHAR(34) for Oracle 8
decimal(1-38, 0-38)decimal(1-38, 0-38) NUMBER(1-38, 0-38)NUMBER(1-38, 0-38)
float(53)float(53) FLOATFLOAT
floatfloat FLOATFLOAT
geographygeography BLOBBLOB
geometrygeometry BLOBBLOB
hierarchyidhierarchyid BLOBBLOB
imageimage BLOBBLOB
intint NUMBER(10,0)NUMBER(10,0)
moneymoney NUMBER(19,4)NUMBER(19,4)
nchar(1-1000)nchar(1-1000) CHAR(1-1000)CHAR(1-1000)
nchar(1001-4000)nchar(1001-4000) NCLOBNCLOB
ntextntext NCLOBNCLOB
numeric(1-38, 0-38)numeric(1-38, 0-38) NUMBER(1-38, 0-38)NUMBER(1-38, 0-38)
nvarchar(1-1000)nvarchar(1-1000) VARCHAR2(1-2000)VARCHAR2(1-2000)
nvarchar(1001-4000)nvarchar(1001-4000) NCLOBNCLOB
nvarchar(max)nvarchar(max) NCLOBNCLOB
realreal REALREAL
smalldatetimesmalldatetime DATEDATE
smallintsmallint NUMBER(5,0)NUMBER(5,0)
smallmoneysmallmoney NUMBER(10,4)NUMBER(10,4)
sql_variantsql_variant N/DN/A
sysnamesysname VARCHAR2(128)VARCHAR2(128)
texttext CLOBCLOB
time(0-7)time(0-7) VARCHAR(16)VARCHAR(16)
timestamptimestamp RAW(8)RAW(8)
tinyinttinyint NUMBER(3,0)NUMBER(3,0)
uniqueidentifieruniqueidentifier CHAR(38)CHAR(38)
varbinary(1-2000)varbinary(1-2000) RAW(1-2000)RAW(1-2000)
varbinary(2001-8000)varbinary(2001-8000) BLOBBLOB
varchar(1-4000)varchar(1-4000) VARCHAR2(1-4000)VARCHAR2(1-4000)
varchar(4001-8000)varchar(4001-8000) CLOBCLOB
varbinary(max)varbinary(max) BLOBBLOB
varchar(max)varchar(max) CLOBCLOB
xmlxml NCLOBNCLOB

Vedere ancheSee Also

Non-SQL Server Subscribers Non-SQL Server Subscribers
Sottoscrivere le pubblicazioniSubscribe to Publications