Creazione di una pubblicazione da un database OracleCreate a Publication from an Oracle Database

In questo argomento viene descritto come creare una pubblicazione da un database Oracle in SQL Server 2017SQL Server 2017 tramite SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.This topic describes how to create a publication from an Oracle database in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

Contenuto dell'argomentoIn This Topic

Prima di iniziare Before You Begin

Prerequisiti Prerequisites

  • Prima di creare una pubblicazione, è necessario installare il software Oracle nel database di distribuzione MicrosoftMicrosoft SQL ServerSQL Server e configurare il database Oracle.Before creating a publication, you must install Oracle software on the MicrosoftMicrosoft SQL ServerSQL Server Distributor, and you must configure the Oracle database. Per altre informazioni, vedere Configurare un server di pubblicazione Oracle.For more information, see Configure an Oracle Publisher.

Utilizzo di SQL Server Management Studio Using SQL Server Management Studio

Creare una pubblicazione snapshot o transazionale da un database Oracle con la Creazione guidata nuova pubblicazione.Create a snapshot or transactional publication from an Oracle Database with the New Publication Wizard.

La prima volta che si crea una pubblicazione da un database Oracle, è necessario identificare il server di pubblicazione Oracle nel database di distribuzione SQL ServerSQL Server . Non è necessario ripetere l'operazione per le pubblicazioni successive provenienti dallo stesso database.The first time you create a publication from an Oracle database, you must identify the Oracle Publisher at the SQL ServerSQL Server Distributor (you do not need to do this for subsequent publications from the same database.). L'identificazione del server di pubblicazione Oracle può essere effettuata tramite la Creazione guidata nuova pubblicazione o nella finestra di dialogo Proprietà database di distribuzione - <DatabaseDistribuzione>. In questo argomento viene illustrata la finestra di dialogo Proprietà database di distribuzione - <DatabaseDistribuzione>.Identifying the Oracle Publisher can be accomplished from the New Publication Wizard or the Distributor Properties - <Distributor> dialog box; this topic shows the Distributor Properties - <Distributor> dialog box.

Per identificare il server di pubblicazione Oracle nel server di distribuzione SQL ServerTo identify the Oracle Publisher at the SQL Server Distributor

  1. In SQL Server Management StudioSQL Server Management Studioconnettersi all'istanza di SQL ServerSQL Server che verrà utilizzata dal server di pubblicazione Oracle come server di distribuzione e quindi espandere il nodo del server.In SQL Server Management StudioSQL Server Management Studio, connect to the SQL ServerSQL Server instance that the Oracle Publisher will use as a Distributor, and then expand the server node.

  2. Fare clic con il pulsante destro del mouse sulla cartella Replica e quindi scegliere Proprietà server di distribuzione.Right-click the Replication folder, and then click Distributor Properties.

  3. Nella pagina Server di pubblicazione della finestra di dialogo Proprietà database di distribuzione - <DatabaseDistribuzione> fare clic su Aggiungi e quindi su Aggiungi server di pubblicazione Oracle.On the Publishers page of the Distributor Properties - <Distributor> dialog box, click Add, and then click Add Oracle Publisher.

  4. Nella finestra di dialogo Connetti al server fare clic sul pulsante Opzioni .In the Connect to Server dialog box, click the Options button.

  5. Nella scheda Account di accesso :On the Login tab:

    1. Immettere il nome dell'istanza del database Oracle oppure selezionare Cerca nella casella combinata relativa all' istanza del server.Enter the Oracle database instance name or select Browse for more in the Server instance combo box.

    2. Consente di selezionare l' Autenticazione standard Oracle (scelta consigliata) oppure l' Autenticazione di Windows.Select Oracle Standard Authentication (recommended) or Windows Authentication.

      Se si seleziona Autenticazione di Windows, è necessario che il server Oracle sia configurato per consentire le connessioni utilizzando le credenziali di Windows (per ulteriori informazioni, vedere la documentazione Oracle) ed è inoltre necessario essere connessi con lo stesso account di MicrosoftMicrosoft Windows specificato per lo schema utente di amministrazione della replica.If you select Windows Authentication: the Oracle server must be configured to allow connections using Windows credentials (for more information, see the Oracle documentation); and you must be currently logged in with the same MicrosoftMicrosoft Windows account you specified for the replication administrative user schema.

    3. Se si seleziona Autenticazione standard Oracle, immettere il nome dell'account di accesso e la password dello schema utente di amministrazione della replica creato nel server di pubblicazione Oracle durante la configurazione.If you select Oracle Standard Authentication, enter the login and password of the replication administrative user schema you created on the Oracle Publisher during configuration.

  6. Nella scheda Proprietà connessione selezionare un tipo di server di pubblicazione scegliendo tra Gateway o Complete.On the Connection Properties tab, select a Publisher type of Gateway or Complete.

    L'opzione Completa è progettata per offrire pubblicazioni snapshot e transazionali con il set completo di caratteristiche supportate per la pubblicazione Oracle.The Complete option is designed to provide snapshot and transactional publications with the complete set of supported features for Oracle publishing. L'opzione Gateway consente l'ottimizzazione della progettazione specifica per migliorare le prestazioni per i casi in cui la replica funge da gateway tra i sistemi.The Gateway option provides specific design optimizations to improve performance for cases where replication serves as a gateway between systems. Non è possibile usare l'opzione Gateway se si intende pubblicare la stessa tabella in più pubblicazioni transazionali.The Gateway option cannot be used if you plan to publish the same table in multiple transactional publications. Se si seleziona Gateway, una tabella può essere presente al massimo in una pubblicazione transazionale e in un numero qualsiasi di pubblicazioni snapshot.A table can appear in at most one transactional publication and any number of snapshot publications if you select Gateway.

  7. Fare clic su Connettiper creare una connessione al server di pubblicazione Oracle e configurarla per la replica.Click Connect, which creates a connection to the Oracle Publisher and configures it for replication. La finestra di dialogo Connetti al server verrà chiusa e verrà visualizzata di nuovo la finestra di dialogo Proprietà database di distribuzione - <DatabaseDistribuzione>.The Connect to Server dialog box closes and you are returned to the Distributor Properties - <Distributor> dialog box.

    Nota

    Se si verificano problemi con la configurazione di rete, a questo punto verrà visualizzato un errore.If there are any problems with the network configuration, you will receive an error at this point. Se si verificano problemi durante la connessione al database Oracle, vedere la sezione relativa all'impossibilità di connessione del server di distribuzione SQL Server all'istanza del database Oracle in Troubleshooting Oracle Publishers.If you experience problems connecting to the Oracle database, see the section "The SQL Server Distributor cannot connect to the Oracle database instance" in Troubleshooting Oracle Publishers.

  8. Fare clic su OK.Click OK.

Per creare una pubblicazione da un database OracleTo create a publication from an Oracle database

  1. Connettersi all'istanza di SQL ServerSQL Server che verrà utilizzata dal server di pubblicazione Oracle come server di distribuzione e quindi espandere il nodo del server.Connect to the SQL ServerSQL Server instance that the Oracle Publisher will use as a Distributor, and then expand the server node.

  2. Espandere la cartella Replica .Expand the Replication folder.

  3. Fare clic con il pulsante destro del mouse sulla cartella Pubblicazioni locali e scegliere Nuova pubblicazione Oracle.Right-click the Local Publications folder, and then click New Oracle Publication.

  4. Nella pagina Server di pubblicazione Oracle della Creazione guidata nuova pubblicazione selezionare il server di pubblicazione Oracle.On the Oracle Publisher page of the New Publication Wizard, select the Oracle Publisher. Se il server di pubblicazione Oracle non è disponibile, fare clic su Aggiungi server di pubblicazione Oracleper visualizzare i passaggi della procedura precedente.If the Oracle Publisher is not displayed, click Add Oracle Publisher, which takes you through the steps from the previous procedure.

  5. Nella pagina Tipo di pubblicazione selezionare Pubblicazione snapshot o Pubblicazione transazionale.On the Publication Type page, select Snapshot publication or Transactional publication.

  6. Nella pagina Articoli selezionare gli oggetti di database che si desidera pubblicare.On the Articles page, select the database objects you want to publish.

    Facoltativamente, scegliere di filtrare le colonne della tabella espandendo una tabella e quindi deselezionando le caselle di controllo per una o più colonne.Optionally, filter out table columns by expanding a table and then clearing the checkbox for one or more columns. Fare clic su Proprietà articolo per visualizzare e modificare le proprietà dell'articolo e per specificare, se necessario, mapping dei tipi di dati alternativi.Click Article Properties to view and modify article properties and to specify alternative data type mappings if necessary. Per altre informazioni sui mapping di tipi di dati, vedere Specificare i mapping tra i tipi di dati di un server di pubblicazione Oracle.For more information about data type mappings, see Specify Data Type Mappings for an Oracle Publisher.

  7. Nella pagina Filtro righe tabella è possibile applicare i filtri per pubblicare un subset di dati da una o più tabelle.On the Filter Table Rows page, optionally apply filters to publish a subset of data from one or more tables.

  8. Nella pagina Agente snapshot deselezionare la casella di controllo Crea snapshot immediatamente solo se nel database di sottoscrizione sono stati creati tutti gli oggetti e aggiunti tutti i dati necessari.On the Snapshot Agent page, clear Create a snapshot immediately only if you have created all objects and added all required data in the subscription database.

  9. Nella pagina Sicurezza agente specificare le credenziali per l'agente snapshot per tutte le pubblicazioni e per l'agente di lettura log per le pubblicazioni transazionali.On the Agent Security page, specify credentials for the Snapshot Agent (for all publications) and the Log Reader Agent (for transactional publications). Gli agenti vengono eseguiti e si connettono al server di distribuzione SQL ServerSQL Server utilizzando il contesto dell'account di MicrosoftMicrosoft Windows specificato.The agents run and make connections to the SQL ServerSQL Server Distributor using the context of the MicrosoftMicrosoft Windows account you specify. Gli agenti si connettono al database Oracle utilizzando il contesto dell'account specificato come schema utente di amministrazione della replica.The agents make connections to the Oracle database using the context of the account you specified as the replication administrative user schema. Per altre informazioni, vedere Configurare un server di pubblicazione Oracle.For more information, see Configure an Oracle Publisher.

    Per ulteriori informazioni sulle autorizzazioni richieste per ogni agente, vedere Replication Agent Security Model e Replication Security Best Practices.For more information about the permissions required by each agent, see Replication Agent Security Model and Replication Security Best Practices.

  10. Nella pagina Azioni procedura guidata creare, se lo si desidera, uno script per la pubblicazione.On the Wizard Actions page, optionally script the publication. Per altre informazioni, vedere Scripting Replication.For more information, see Scripting Replication.

  11. Nella pagina Completamento procedura guidata specificare un nome per la pubblicazione.On the Complete the Wizard page, specify a name for the publication.

Utilizzo di Transact-SQL Using Transact-SQL

Dopo aver configurato il database Oracle come server di pubblicazione, è possibile creare una pubblicazione transazionale o snapshot in modo analogo a quanto possibile con un server di pubblicazione MicrosoftMicrosoft SQL ServerSQL Server , utilizzando stored procedure di sistema.After the Oracle database has been configured as a Publisher, you can create a transactional or snapshot publication the same way that you would from a MicrosoftMicrosoft SQL ServerSQL Server Publisher, by using system stored procedures.

Per creare una pubblicazione OracleTo create an Oracle Publication

  1. Configurare il database Oracle come server di pubblicazione.Configure the Oracle database as a Publisher. Per altre informazioni, vedere Configurare un server di pubblicazione Oracle.For more information, see Configure an Oracle Publisher.

  2. Se non esiste un server di distribuzione remoto, configurarlo.If a remote Distributor does not exist, configure the remote Distributor. Per altre informazioni, vedere Configure Publishing and Distribution.For more information, see Configure Publishing and Distribution.

  3. Nel server di distribuzione remoto che verrà usato dal server di pubblicazione Oracle, eseguire sp_adddistpublisher (Transact-SQL).At the remote Distributor that the Oracle Publisher will use, execute sp_adddistpublisher (Transact-SQL). Specificare il nome TNS (Transparent Network Substrate) dell'istanza del database Oracle per @publisher , il valore ORACLE o ORACLE GATEWAY per @publisher_type.Specify the Transparent Network Substrate (TNS) name of the Oracle database instance for @publisher and a value of ORACLE or ORACLE GATEWAY for @publisher_type. Specify la modalità di sicurezza utilizzata per la connessione dal server di pubblicazione Oracle al database di distribuzione SQL ServerSQL Server remoto. I possibili valori sono i seguenti:Specify the security mode used when connecting from the Oracle Publisher to the remote SQL ServerSQL Server Distributor as one of the following:

    • Per utilizzare l'autenticazione standard di Oracle, che corrisponde all'impostazione predefinita, specificare il valore 0 per @security_mode, l'account di accesso dello schema utente di amministrazione della replica creato nel server di pubblicazione Oracle durante la configurazione per @logine la password per @password.To use Oracle Standard Authentication, the default, specify a value of 0 for @security_mode, the login of the replication administrative user schema you created on the Oracle Publisher during configuration for @login, and the password for @password.

      Importante

      Se possibile, richiedere agli utenti di immettere le credenziali di sicurezza in fase di esecuzione.When possible, prompt users to enter security credentials at runtime. Se si archiviano le credenziali in un file di script, è necessario proteggere il file per impedire l'accesso non autorizzato.If you store credentials in a script file, you must secure the file to prevent unauthorized access.

    • Per utilizzare l'autenticazione di Windows, specificare il valore 1 per @security_mode.To use Windows Authentication, specify a value of 1 for @security_mode.

      Nota

      Per utilizzare l'autenticazione di Windows, è necessario che il server Oracle sia configurato per consentire le connessioni utilizzando le credenziali di Windows (per ulteriori informazioni, vedere la documentazione Oracle) ed è inoltre necessario essere connessi con lo stesso account di Microsoft Windows specificato per lo schema utente di amministrazione della replica.To use Windows Authentication, the Oracle server must be configured to allow connections using Windows credentials (for more information, see the Oracle documentation); and you must be currently logged in with the same Microsoft Windows account you specified for the replication administrative user schema..

  4. Creare un processo dell'agente di lettura log per il database di pubblicazione.Create a Log Reader Agent job for the publication database.

    • Per sapere se un processo dell'agente di lettura log esiste per un database pubblicato, eseguire sp_helplogreader_agent (Transact-SQL) nel database di distribuzione del server di distribuzione usato dal server di pubblicazione Oracle.If you are unsure whether a Log Reader Agent job exists for a published database, execute sp_helplogreader_agent (Transact-SQL) at the Distributor used by the Oracle Publisher on the distribution database. Specificare il nome del server di pubblicazione Oracle per @publisher.Specify the name of the Oracle Publisher for @publisher. Se il set di risultati è vuoto, sarà necessario creare un processo dell'agente di lettura log.If the result set is empty, then a Log Reader Agent job must be created.

    • Se per il database di pubblicazione esiste già un processo dell'agente di lettura log, procedere con il passaggio 5.If a Log Reader Agent job already exists for the publication database, proceed to step 5.

    • Nel database di distribuzione del server di distribuzione usato dal server di pubblicazione Oracle eseguire sp_addlogreader_agent (Transact-SQL).At the Distributor used by the Oracle Publisher on the distribution database, execute sp_addlogreader_agent (Transact-SQL). Specificare le credenziali di Windows per l'esecuzione dell'agente nei parametri @job_login e @job_password.Specify the Windows credentials under which the agent runs for @job_login and @job_password.

      Nota

      L'opzione @job_login deve corrispondere all'account di accesso specificato al passaggio 3.The @job_login parameter must match the login supplied in step 3. Non specificare informazioni sulla sicurezza del server di pubblicazione.Do not supply publisher security information. L'agente di lettura log si connette al server di pubblicazione utilizzando le informazioni sulla sicurezza specificate al passaggio 3.The Log Reader agent connects to the Publisher using the security information provided in step 3.

  5. Nel database di distribuzione del server di distribuzione eseguire sp_addpublication (Transact-SQL) per creare la pubblicazione.At the Distributor on the distribution database, execute sp_addpublication (Transact-SQL) to create the publication. Per altre informazioni, vedere Create a Publication.For more information, see Create a Publication.

  6. Nel database di distribuzione del server di distribuzione eseguire sp_addpublication_snapshot (Transact-SQL).At the Distributor on the distribution database, execute sp_addpublication_snapshot (Transact-SQL). Specificare il nome della pubblicazione utilizzato al passaggio 4 per @publication e le credenziali di Windows utilizzate per l'agente snapshot per @job_name e @password.Specify the publication name used in step 4 for @publication and the Windows credentials under which the Snapshot Agent runs for @job_name and @password. Per utilizzare l'autenticazione standard di Oracle per la connessione al server di pubblicazione, è inoltre necessario specificare il valore 0 per @publisher_security_mode e le informazioni sull'account di accesso di Oracle per @publisher_login e @publisher_password.To use Oracle Standard Authentication when connecting to the Publisher, you must also specify a value of 0 for @publisher_security_mode and the Oracle login information for @publisher_login and @publisher_password. Verrà creato un processo dell'agente snapshot per la pubblicazione.This creates a Snapshot Agent job for the publication.

Vedere ancheSee Also

Configurare un server di pubblicazione Oracle Configure an Oracle Publisher
Pubblicare dati e oggetti di database Publish Data and Database Objects
Configurare il processo del set di transazioni per un server di pubblicazione Oracle (programmazione Transact-SQL della replica) Configure the Transaction Set Job for an Oracle Publisher (Replication Transact-SQL Programming)
Panoramica della pubblicazione Oracle Oracle Publishing Overview
Script to Grant Oracle Permissions Script to Grant Oracle Permissions