Risoluzione dei problemi dei server di pubblicazione OracleTroubleshooting Oracle Publishers

In questo argomento vengono elencati alcuni problemi che possono verificarsi durante la configurazione e l'uso di un server di pubblicazione Oracle.This topic lists a number of issues that might arise when configuring and using an Oracle Publisher.

Viene generato un errore relativo al software di rete e client OracleAn Error Is Raised Regarding Oracle Client and Networking Software

L'account con cui viene eseguito MicrosoftMicrosoft SQL ServerSQL Server nel server di distribuzione deve disporre di autorizzazioni di lettura ed esecuzione per la directory e tutte le sottodirectory in cui è installato il software di rete client Oracle.The account under which MicrosoftMicrosoft SQL ServerSQL Server runs on the Distributor must be granted read and execute permissions for the directory (and all subdirectories) in which the Oracle client networking software is installed. Se tali autorizzazioni non vengono concesse o i componenti client Oracle non sono installati correttamente, verrà visualizzato il messaggio di errore seguente:If the permissions are not granted or the Oracle client components are not installed properly, you will receive the following error message:

"Impossibile connettersi al server con [provider Microsoft OLE DB per Oracle]."Connection to server failed with [Microsoft OLE DB Provider for Oracle]. Impossibile trovare il client e i componenti di rete Oracle.Oracle client and networking components were not found. Tali componenti vengono forniti da Oracle Corporation e fanno parte dell'installazione del software client Oracle versione 7.3.3 o successive.These components are supplied by Oracle Corporation and are part of the Oracle Version 7.3.3 or later client software installation. Se non si installano tali componenti, non sarà possibile utilizzare questo provider."Provider is unable to function until these components are installed."

Se nel server di distribuzione è installato un client Oracle appropriato, assicurarsi che SQL ServerSQL Server sia stato arrestato e riavviato al termine dell'installazione del client.If an appropriate Oracle client has been installed at the Distributor, ensure that SQL ServerSQL Server was stopped and then restarted after the client installation completed. Questa operazione è necessaria affinché SQL ServerSQL Server riconosca i componenti del client.This is required in order for SQL ServerSQL Server to recognize the client components.

Se l'errore persiste nonostante siano state verificate la concessione delle autorizzazioni e la corretta installazione dei componenti, verificare che le impostazioni del Registro di sistema in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI siano corrette.If you have verified that permissions are granted and that components are installed correctly, but this error persists, verify that the registry settings at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI are correct:

  • Impostazioni corrette per Oracle 10g:For Oracle 10g, the correct settings are

    • OracleOciLib = oci.dllOracleOciLib = oci.dll

    • OracleSqlLib = orasql10.dllOracleSqlLib = orasql10.dll

    • OracleXaLib = oraclient10.dllOracleXaLib = oraclient10.dll

  • Impostazioni corrette per Oracle 9i:For Oracle 9i, the correct settings are

    • OracleOciLib = oci.dllOracleOciLib = oci.dll

    • OracleSqlLib = orasql9.dllOracleSqlLib = orasql9.dll

    • OracleXaLib = oraclient9.dllOracleXaLib = oraclient9.dll

Il server di distribuzione SQL Server non è in grado di connettersi all'istanza del database OracleThe SQL Server Distributor Cannot Connect to the Oracle Database Instance

Se il server di distribuzione SQL ServerSQL Server non è in grado di connettersi al server di pubblicazione Oracle, verificare le condizioni seguenti:If the SQL ServerSQL Server Distributor cannot connect to the Oracle Publisher, ensure that:

  • Nel server di distribuzione è installato il software Oracle necessario.The necessary Oracle software is installed on the Distributor.

  • Il database Oracle è online ed è possibile connettersi a tale database mediante uno strumento come SQLPlus.The Oracle database is online and you can connect to it using a tool like SQLPlus.

  • L'account di accesso utilizzato nella replica per la connessione al server di pubblicazione Oracle dispone di autorizzazioni sufficienti.The login replication uses to connect to the Oracle Publisher has sufficient permissions. Per altre informazioni, vedere Configurare un server di pubblicazione Oracle.For more information, see Configure an Oracle Publisher.

  • I nomi TNS definiti durante la configurazione del server di pubblicazione Oracle sono elencati nel file tnsnames.ora.The TNS names defined during configuration of the Oracle Publisher are listed in the tnsnames.ora file.

  • Vengono utilizzati i valori corretti di percorso e Oracle Home.The correct Oracle Home and path are used. Anche in caso di installazione di un solo set di file binari Oracle nel server di distribuzione SQL ServerSQL Server , assicurarsi che le variabili di ambiente relative a Oracle Home siano state impostate correttamente.Even if you have only one set of Oracle binaries installed on the SQL ServerSQL Server Distributor, ensure that the environment variables related to the Oracle Home are set properly. Se le variabili di ambiente vengono modificate, per rendere effettiva la modifica è necessario arrestare e riavviare SQL ServerSQL Server .If you change environment variable values, you must stop and restart SQL ServerSQL Server for the change to take effect.

    Per altre informazioni sulla configurazione e sul test della connettività, vedere la sezione relativa all'installazione e alla configurazione del software di rete client Oracle nel server di distribuzione SQL ServerSQL Server in Configurare un server di pubblicazione Oracle.For more information about configuring and testing connectivity, see "Installing and Configuring Oracle Client Networking Software on the SQL ServerSQL Server Distributor" in Configure an Oracle Publisher.

Il server di pubblicazione Oracle è associato a un altro server di distribuzioneThe Oracle Publisher Is Associated with Another Distributor

Un server di pubblicazione Oracle può essere associato soltanto a un server di distribuzione SQL ServerSQL Server .An Oracle Publisher can only be associated with one SQL ServerSQL Server Distributor. Se al server di pubblicazione Oracle è associato un diverso server di distribuzione, questo deve essere eliminato per poterne utilizzare un altro.If a different Distributor is associated with the Oracle Publisher, it must be dropped before another Distributor can be used. Se non viene innanzitutto eliminato il server di distribuzione, verrà visualizzato uno dei messaggi di errore seguenti:If the Distributor is not dropped first, you will receive one of the following error messages:

  • "L'istanza del server Oracle '<NomeServerPubblicazioneOracle>' è stata precedentemente configurata per l'uso di '<NomeDatabaseDistribuzioneSQLServer>' come database di distribuzione."Oracle server instance '<OraclePublisherName>' has been previously configured to use '<SQLServerDistributorName>' as its Distributor. Per iniziare a usare '<NuovoDatabaseDistribuzioneSQLServer>' come database di distribuzione, è necessario rimuovere la configurazione corrente della replica nell'istanza del server Oracle, eliminando così tutte le pubblicazioni presenti in tale istanza del server."To begin using '<NewSQLServerDistributorName>' as its Distributor, you must remove the current replication configuration on the Oracle server instance, which will delete all publications on that server instance."

  • "Il server Oracle '<NomeServerOracleServer>' è già definito come server di pubblicazione '<NomeServerPubblicazioneOracle>' nel database di distribuzione '<NomeDatabaseDistribuzioneSQL>.<NomeDatabaseDistribuzione>'."Oracle server '<OracleServerName>' is already defined as publisher '<OraclePublisherName>' on distributor '<SQLServerDistributorName>.<DistributionDatabaseName>'. Eliminare il server di pubblicazione oppure eliminare il sinonimo public '<NomeSinonimo' per ricrearlo."Drop the publisher or drop the public synonym '<SynonymName>' to recreate."

    Con l'eliminazione di un server di pubblicazione Oracle, vengono automaticamente rimossi gli oggetti di replica nel database Oracle.When an Oracle Publisher is dropped, the replication objects in the Oracle database are automatically cleaned up. In alcuni casi è tuttavia necessario eseguire manualmente la pulizia degli oggetti di replica Oracle.However, manual cleanup of the Oracle replication objects is necessary in some cases. Per rimuovere manualmente gli oggetti di replica Oracle creati con la replica:To manually clean up Oracle replication objects created by replication:

  1. Connettersi al server di pubblicazione Oracle con autorizzazioni DBA.Connect to the Oracle publisher with DBA permissions.

  2. Eseguire il comando SQL DROP PUBLIC SYNONYM MSSQLSERVERDISTRIBUTOR;.Issue the SQL command DROP PUBLIC SYNONYM MSSQLSERVERDISTRIBUTOR;.

  3. Eseguire il comando SQL DROP USER <replication_administrative_user_schema>``CASCADE;.Issue the SQL command DROP USER <replication_administrative_user_schema>``CASCADE;.

Viene generato l'errore SQL Server 21663 relativo alla mancanza di una chiave primariaSQL Server Error 21663 Is Raised Regarding the Lack of a Primary Key

Gli articoli delle pubblicazioni transazionali devono disporre di una chiave primaria valida.Articles in transactional publications must have a valid primary key. In assenza di una chiave primaria valida, quando si tenta di aggiungere un articolo viene visualizzato il messaggio di errore seguente:If they do not have a valid primary key, you will receive the following error message when you attempt to add an article:

"Impossibile trovare una chiave primaria valida per la tabella di origine [<ProprietarioTabella>].[<NomeTabella>]""No valid primary key found for source table [<TableOwner>].[<TableName>]"

Per informazioni sui requisiti delle chiavi primarie, vedere la sezione relativa a vincoli e indici univoci nell'argomento Design Considerations and Limitations for Oracle Publishers.For information about requirements for primary keys, see the section "Unique Indexes and Constraints" in the topic Design Considerations and Limitations for Oracle Publishers.

Viene generato l'errore SQL Server 21642 relativo all'accesso a un server collegato duplicatoSQL Server Error 21642 Is Raised Regarding a Duplicate Linked Server Login

Durante la configurazione iniziale di un server di pubblicazione Oracle, viene creata una voce di server collegato per la connessione tra server di pubblicazione e server di distribuzione.When an Oracle Publisher is initially configured, a linked server entry is created for the connection between the Publisher and the Distributor. Il nome del server collegato corrisponde al nome del servizio TNS Oracle.The linked server has the same name as the Oracle TNS service name. Se si tenta di creare un server collegato con lo stesso nome, viene visualizzato il messaggio di errore seguente:If you attempt to create a linked server with the same name, the following error message is shown:

'Per i server di pubblicazione eterogenei è necessario un server collegato."Heterogeneous publishers require a linked server. Esiste già un server collegato denominato '<NomeServerCollegato'.A linked server named '<LinkedServerName>' already exists. Rimuovere il server collegato o scegliere un nome di server di pubblicazione diverso'.Please remove linked server or choose a different publisher name."

Questo errore si può verificare se si tenta di creare il server collegato direttamente oppure se è stata precedentemente eliminata la relazione tra il server di pubblicazione Oracle e il server di distribuzione SQL ServerSQL Server e si tenta ora di riconfigurarla.This error can occur if you attempt to create the linked server directly or if you have previously dropped the relationship between the Oracle Publisher and the SQL ServerSQL Server Distributor, and you are now attempting to reconfigure it. Se questo errore viene visualizzato durante un tentativo di riconfigurazione del server di pubblicazione, eliminare il server collegato con sp_dropserver (Transact-SQL).If you receive this error while attempting to reconfigure the Publisher, drop the linked server with sp_dropserver (Transact-SQL).

Se è necessario connettersi al server di pubblicazione Oracle tramite una connessione al server collegato, creare un altro nome di servizio TNS e quindi usare tale nome nella chiamata a sp_addlinkedserver (Transact-SQL).If you need to connect to the Oracle Publisher over a linked server connection, create another TNS service name, and then use this name when calling sp_addlinkedserver (Transact-SQL). Per informazioni sulla creazione di nomi di servizio TNS, vedere la documentazione Oracle.For information about creating TNS service names, see the Oracle documentation.

Viene generato l'errore SQL Server 21617SQL Server Error 21617 Is Raised

La pubblicazione Oracle utilizza l'applicazione Oracle SQLPLUS per scaricare il pacchetto del codice di supporto del server di pubblicazione nel database Oracle.Oracle publishing uses the Oracle application SQLPLUS to download the package of Publisher support code to the Oracle database. Prima di tentare la configurazione del server di pubblicazione Oracle, SQL ServerSQL Server verifica che SQL*PLUS sia accessibile attraverso il percorso di sistema sul database di distribuzione.Before attempting to configure the Oracle Publisher, SQL ServerSQL Server verifies that SQL*PLUS is accessible through the system path on the Distributor. Se non è possibile caricare SQL*PLUS, verrà visualizzato il messaggio di errore seguente:If SQL*PLUS cannot be loaded, the following error message is shown:

"Impossibile eseguire SQLPLUS."Unable to run SQLPLUS. Verificare che nel server di distribuzione sia installata una versione corrente del codice client Oracle."Make certain that a current version of the Oracle client code is installed at the distributor."

Tentare di individuare SQL*PLUS sul database di distribuzione.Try to locate SQL*PLUS on the Distributor. Per un'installazione client Oracle 10g, il nome del file eseguibile è sqlplus.exe.For an Oracle 10g client install, the name of this executable is sqlplus.exe. In genere, il percorso di installazione è %ORACLE_HOME%/bin.It is typically installed in %ORACLE_HOME%/bin. Per verificare che il percorso di SQL*PLUS sia incluso nel percorso di sistema, esaminare il valore della variabile di sistema Path:To verify that the path of SQL*PLUS appears in the system path, examine the value of the system variable Path:

  1. Fare clic con il pulsante destro del mouse su Risorse del computere quindi scegliere Proprietà.Right-click My Computer, and then click Properties.

  2. Selezionare la scheda Avanzate e quindi fare clic sul pulsante Variabili d'ambiente.Click the Advanced tab, and then click Environment variables.

  3. Nella finestra di dialogo Variabili d'ambiente selezionare la variabile Path nell'elenco Variabili di sistema e quindi fare clic su Modifica.In the Environment Variables dialog box, in the System variables list, select the Path variable, and then click Edit.

  4. Nella finestra di dialogo Modifica variabile di sistema , se il percorso della cartella in cui si trova sqlplus.exe non è visualizzato nella casella di testo Valore variabile , modificare la stringa per includerlo.In the Edit System Variable dialog box: if the path to the folder that contains sqlplus.exe is not present in the Variable value text box, edit the string to include it.

  5. Fare clic su OK in ogni finestra di dialogo aperta per chiuderla e salvare le modifiche.Click OK on each open dialog box to exit and save changes.

    Se non è possibile individuare sqlplus.exe sul server di distribuzione, installare una versione aggiornata del software client Oracle sul server di distribuzione.If you cannot locate sqlplus.exe on the Distributor, install a current version of the Oracle client software at the Distributor. Per altre informazioni, vedere Configurare un server di pubblicazione Oracle.For more information, see Configure an Oracle Publisher.

Viene generato l'errore SQL Server 21620SQL Server Error 21620 Is Raised

Se si esegue la connessione a un database Oracle di versione precedente alla 8.1, per la pubblicazione Oracle è necessario che il software client Oracle installato nel server di distribuzione sia di versione 9 o successiva.If you are connecting to an Oracle database earlier than version 8.1, Oracle publishing requires that the Oracle client software installed on the Distributor be from version 9. Se si esegue la connessione a un database Oracle di versione 8.1 o successiva, è consigliabile utilizzare software client Oracle di versione 10 o successiva.If you are connecting to an Oracle database that is version 8.1 or later, we recommend that the Oracle client software be version 10 or later.

Prima di tentare la configurazione del server di pubblicazione Oracle, la pubblicazione Oracle verifica che la versione di SQLPLUS accessibile tramite il percorso di sistema sul server di distribuzione sia 9 o successiva.Before attempting to configure the Oracle Publisher, Oracle publishing verifies that the version of SQLPLUS accessible through the system path on the Distributor is version 9 or later. In caso contrario, verrà visualizzato il messaggio di errore seguente:If it is not, the following error message is shown:

"La versione di SQLPLUS accessibile tramite la variabile di sistema Path non è aggiornata e non supporta la pubblicazione Oracle."The version of SQLPLUS that is accessible through the system Path variable is not current enough to support Oracle publishing. Verificare che nel server di distribuzione sia installata una versione corrente del codice client Oracle."Make certain that a current version of the Oracle client code is installed at the distributor."

Se sul server di distribuzione sono installate più versioni del software client Oracle, verificare che la versione più recente corrisponda alla 9 e che la variabile di sistema Path faccia innanzitutto riferimento a questa versione (possono essere presenti anche i riferimenti alle altre versioni, a condizione che il riferimento alla versione più recente appaia per primo).If you have multiple versions of the Oracle client software installed on the Distributor, make sure that the most current version is at least version 9 and that the system path variable refers first to this version (references to other versions can appear as long as the most recent appears first). Per ulteriori informazioni sulla modifica della variabile di sistema Path, vedere la sezione "Viene generato l'errore SQL Server 21617" più indietro in questo argomento.For more information about editing the system path variable, see the section "SQL Server Error 21617 is Raised" earlier in this topic.

Viene generato l'errore SQL Server 21624 o 21629SQL Server Error 21624 or Error 21629 Is Raised

Per i server di distribuzione a 64 bit, la pubblicazione Oracle utilizza il provider Oracle OLEDB per Oracle (OraOLEDB.Oracle).For 64-bit Distributors, Oracle publishing uses the Oracle OLEDB Provider for Oracle (OraOLEDB.Oracle). Verificare che il provider Oracle OLEDB sia installato e registrato nel server di distribuzione.Make sure that the Oracle OLEDB provider is installed and registered on the Distributor. In caso contrario, uno o entrambi i messaggi di errore seguenti verranno visualizzati:If the provider is not installed and registered, one or both of the following error messages is shown:

  • "Impossibile trovare il provider OLEDB Oracle registrato, OraOLEDB.Oracle, nel server di distribuzione '%s'."Unable to locate the registered Oracle OLEDB provider, OraOLEDB.Oracle, at distributor '%s'. Verificare che nel server di distribuzione sia installata e registrata una versione corrente del provider Oracle OLEDB."Make certain that a current version of the Oracle OLEDB provider is installed and registered at the distributor."

  • "Nel server di distribuzione manca la chiave del Registro di sistema CLSID che indica che il provider Oracle OLEDB OraOLEDB.Oracle è stato registrato."The CLSID registry key indicating that the Oracle OLEDB Provider for Oracle, OraOLEDB.Oracle, has been registered is not present at the distributor. Verificare che il provider Oracle OLEDB sia installato e registrato nel server di distribuzione."Make certain that the Oracle OLEDB provider is installed and registered at the distributor."

    Se si utilizza il software client Oracle versione 10g, il provider è OraOLEDB10.dll, mentre per la versione 9i è OraOLEDB.dll.If you are using Oracle client software version 10g, the provider is OraOLEDB10.dll; for version 9i, it is OraOLEDB.dll. Il provider viene installato in %ORACLE_HOME%\BIN (ad esempio, C:\oracle\product\10.1.0\Client_1\bin).The provider is installed in %ORACLE_HOME%\BIN (for example, C:\oracle\product\10.1.0\Client_1\bin). Se si scopre che il provider Oracle OLEDB non è installato sul server di distribuzione, installarlo utilizzando l'apposito disco di installazione fornito da Oracle.If you determine that the Oracle OLEDB provider is not installed on the Distributor, install it from the Oracle client software install disc provided by Oracle. Per altre informazioni, vedere Configurare un server di pubblicazione Oracle.For more information, see Configure an Oracle Publisher.

    Se il provider Oracle OLEDB è installato, verificare che sia registrato.If the Oracle OLEDB provider is installed, make sure that it is registered. Per registrare la DLL del provider, eseguire il comando seguente dalla directory in cui è installata la DLL e quindi arrestare e riavviare l'istanza di SQL ServerSQL Server :To register the provider DLL, execute the following command from the directory in which the DLL is installed, and then stop and restart the SQL ServerSQL Server instance:

  1. regsvr32 OraOLEDB10.dll o regsvr32 OraOLEDB.dll.regsvr32 OraOLEDB10.dll or regsvr32 OraOLEDB.dll.

Viene generato l'errore SQL Server 21626 o 21627SQL Server Error 21626 or Error 21627 Is Raised

Per verificare che l'ambiente di pubblicazione Oracle sia configurato correttamente, SQL ServerSQL Server tenta di connettersi al server di pubblicazione Oracle con le credenziali di accesso specificate durante la configurazione.To verify that the Oracle publishing environment is configured properly, SQL ServerSQL Server tries to connect to the Oracle Publisher with the login credentials you specified during configuration. Se tramite il server di distribuzione SQL ServerSQL Server non è possibile connettersi al server di pubblicazione Oracle, verrà visualizzato il messaggio di errore seguente:If the SQL ServerSQL Server Distributor cannot connect to the Oracle Publisher, the following error message is shown:

  • "Impossibile connettersi al server di database Oracle '%s' utilizzando il provider Oracle OLEDB OraOLEDB.Oracle"."Unable to connect to Oracle database server '%s' using the Oracle OLEDB provider OraOLEDB.Oracle."

    Se viene visualizzato questo messaggio di errore, verificare la connettività al database Oracle eseguendo direttamente SQLPLUS utilizzando lo stesso account di accesso e la stessa password specificati durante la configurazione del server di pubblicazione Oracle.If this error message is shown, verify connectivity to the Oracle database by running SQLPLUS directly using the same login and password specified during configuration of the Oracle Publisher. Per ulteriori informazioni, vedere la sezione "Il server di distribuzione SQL Server non è in grado di connettersi all'istanza del database Oracle" più indietro in questo argomento.For more information, see the section "The SQL Server Distributor Cannot Connect to the Oracle Database Instance" earlier in this topic.

Viene generato l'errore SQL Server 21628SQL Server Error 21628 Is Raised

Per i server di distribuzione a 64 bit, la pubblicazione Oracle utilizza il provider Oracle OLEDB per Oracle (OraOLEDB.Oracle).For 64-bit Distributors, Oracle publishing uses the Oracle OLEDB Provider for Oracle (OraOLEDB.Oracle). SQL ServerSQL Server consente di creare una voce nel Registro di sistema che permette l'esecuzione in-process del provider Oracle con SQL ServerSQL Server.. Se si verifica un problema durante la lettura o la scrittura della voce del Registro di sistema, verrà visualizzato il messaggio di errore seguente:If there is a problem reading or writing this registry entry, the following error message is shown:

"Impossibile aggiornare il Registro di sistema del server di distribuzione '%s' per consentire l'esecuzione in-process del provider Oracle OLEDB OraOLEDB.Oracle con SQL ServerSQL Server."Unable to update the registry of distributor '%s' to allow Oracle OLEDB provider OraOLEDB.Oracle to run in process with SQL ServerSQL Server. Verificare che l'account di accesso corrente sia autorizzato per la modifica delle chiavi del Registro di sistema di SQL ServerSQL Server .Make certain that current login is authorized to modify SQL ServerSQL Server owned registry keys."

Per la pubblicazione Oracle è necessario che la voce del Registro di sistema esista e che sia impostata su 1 per i server di distribuzione a 64 bit.Oracle publishing requires the registry entry to exist and to be set to 1 for 64 bit Distributors. Se la voce non esiste, SQL ServerSQL Server tenterà di crearla.If the entry does not exist, SQL ServerSQL Server will attempt to create it. Se la voce esiste ma è impostata su 0, l'impostazione non verrà modificata e la configurazione del server di pubblicazione Oracle Publisher avrà esito negativo.If the entry exists, but is set to 0, the setting will not be changed; the configuration of the Oracle Publisher will fail.

Per visualizzare e modificare l'impostazione nel Registro di sistema:To view and modify the registry setting:

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

  2. Nella finestra di dialogo Esegui digitare regedite quindi fare clic su OK.In the Run dialog box, type regedit, and then click OK.

  3. Individuare HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<NomeIstanza>\Providers.Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceName>\Providers.

    Nella cartella Providers dovrebbe essere presente una cartella denominata OraOLEDB.Oracle.Included under Providers should be a folder named OraOLEDB.Oracle. In questa cartella dovrebbe essere incluso il nome valore DWORD AllowInProcess, con un valore pari a 1.Within this folder should be the DWORD value name AllowInProcess, with a value of 1.

  4. Se AllowInProcess è impostato su 0, aggiornare la voce del Registro di sistema su 1:If you determine that AllowInProcess is set to 0, update the registry entry to 1:

    1. Fare clic con il pulsante destro del mouse sulla voce e quindi scegliere Modifica.Right-click the entry, and then click Modify.

    2. Nella finestra di dialogo Modifica stringa immettere 1 nel campo Dati valore .In the Edit String dialog box, type 1 in the Value data field.

Viene generato l'errore SQL Server 21684SQL Server Error 21684 Is Raised

Se l'account utente di amministrazione non dispone di privilegi sufficienti, verrà visualizzato il messaggio di errore seguente:If the administrative user account does not have sufficient privileges, the following error message is shown:

"Le autorizzazioni associate all'account di accesso di amministratore per il server di pubblicazione Oracle '%s' non sono sufficienti.""The permissions associated with the administrator login for Oracle publisher '%s' are not sufficient."

Per verificare le autorizzazioni assegnate all'utente, eseguire la query SELECT * from session_privs.To verify the permissions granted to the user, execute the following query: SELECT * from session_privs. L'output avrà un aspetto analogo al seguente:The output should be similar to the following:

PRIVILEGE

------------------

CREATE SESSION

CREATE TABLE

CREATE PUBLIC SYNONYM

DROP PUBLIC SYNONYM

CREATE VIEW

CREATE SEQUENCE

CREATE PROCEDURE

CREATE TRIGGER

Vengono riscontrati problemi relativi alle autorizzazioni per lo schema utente di replicaYou Encounter Permissions Issues for the Replication User Schema

Lo schema utente di replica deve disporre delle autorizzazioni descritte nella sezione relativa alla creazione manuale dello schema utente in Configurare un server di pubblicazione Oracle.The replication user schema must have the permissions described in "Creating the User Schema Manually" in Configure an Oracle Publisher.

Errore Oracle ORA-01000Oracle Error ORA-01000

Durante il processo di aggiunta di articoli a una pubblicazione, nella replica vengono utilizzati cursori sul server di pubblicazione Oracle.Replication uses cursors on the Oracle Publisher during the process of adding articles to a publication. Durante questo processo è possibile superare il numero massimo dei cursori disponibili sul server di pubblicazione.It is possible to exceed the maximum number of cursors available on the Publisher during this process. In questo caso, viene generato l'errore seguente:If this occurs, the following error is raised:

"ORA-01000: maximum open cursors exceeded""ORA-01000: maximum open cursors exceeded"

Per evitare questo problema, verificare che l'impostazione max_open_cursors dei database Oracle sia impostata su un numero sufficientemente elevato (almeno 1000).To avoid this problem, ensure that the max_open_cursors setting in the Oracle databases is set to a sufficiently high number (at least 1000). Per ulteriori informazioni su questa impostazione, vedere la documentazione Oracle.For more information about this setting, see the Oracle documentation.

Errore Oracle ORA-01555Oracle Error ORA-01555

L'errore di database Oracle seguente non è correlato alla replica snapshot, bensì al modo in cui Oracle costruisce viste di dati con consistenza in lettura:The following Oracle database error is not related to snapshot replication; it is related to how Oracle constructs read-consistent views of data:

"ORA-01555: Snapshot too old""ORA-01555: Snapshot too old"

Utilizzando oggetti noti come segmenti di rollback, Oracle costruisce viste di dati con consistenza in lettura relativamente al momento in cui è stata eseguita un'istruzione SQL.Using objects known as rollback segments, Oracle constructs read-consistent views of data as of the point in time a SQL statement is issued. L'errore "snapshot too old" può verificarsi in caso di sovrascrittura delle informazioni di rollback da parte di altre sessioni simultanee.A "snapshot too old" error might occur when rollback information is overwritten by other concurrent sessions. Nelle versioni precedenti a Oracle 9i, il metodo consigliato per ridurre la frequenza di questo errore consiste nell'incrementare le dimensioni e/o il numero dei segmenti di rollback e assegnare transazioni estese a uno specifico segmento di rollback.Prior to Oracle 9i, the recommended method of reducing the frequency of this error was to increase the size and/or number of rollback segments, and to assign large transactions to a specific rollback segment.

In Oracle 9i, Oracle ha introdotto il concetto di spazio di tabella UNDO, che sostituisce il segmento di rollback.In Oracle 9i, Oracle introduced the UNDO tablespace concept, which replaces the rollback segment. Per evitare l'errore "snapshot too old" in Oracle 9i, è consigliabile:To prevent the "snapshot too old" error in Oracle 9i, it is recommended that you:

  • Creare uno spazio di tabella UNDO con una quantità appropriata di spazio disponibile.Create an UNDO tablespace with an appropriate amount of free space.

  • Impostare la garanzia di memorizzazione per lo spazio di tabella (Oracle 10G e versioni successive).Set the retention guarantee on the tablespace (Oracle 10G and greater).

  • Configurare i parametri di inizializzazione Oracle UNDO_MANAGEMENT e UNDO_RETENTION.Configure the Oracle initialization parameters UNDO_MANAGEMENT and UNDO_RETENTION.

    Per informazioni dettagliate su come evitare l'errore "snapshot too old", vedere la documentazione Oracle.For further details about avoiding the "snapshot too old" error, consult the Oracle documentation.

Errore Oracle ORA-22285Oracle Error ORA-22285

Se in una tabella è inclusa una colonna BFILE, i dati per la colonna vengono archiviati nel file system.If a table includes a BFILE column, the data for the column is stored in the file system. All'account utente di amministrazione della replica deve essere concesso l'accesso alla directory in cui sono archiviati i dati mediante la sintassi seguente:The replication administrative user account must be granted access to the directory in which the data is stored using the following syntax:

GRANT READ ON DIRECTORY <directory_name> TO <replication_administrative_user_schema>

Se l'accesso non viene concesso, l'agente di lettura log genera l'errore seguente:If access is not granted, the following error is raised by the Log Reader Agent:

"ORA-22285: non-existent directory or file for FILEOPEN operation""ORA-22285: non-existent directory or file for FILEOPEN operation"

Le modifiche apportate richiedono la riconfigurazione del server di pubblicazioneChanges Are Made That Require Reconfiguration of the Publisher

Le modifiche apportate a procedure o tabelle di metadati della replica richiedono l'eliminazione e la riconfigurazione del server di pubblicazione.Changes to replication metadata tables or procedures require that you drop and reconfigure the Publisher. Per riconfigurare il server di pubblicazione, è necessario eliminarlo ed eseguirne nuovamente la configurazione mediante SQL Server Management StudioSQL Server Management Studio, Transact-SQL o RMO.To reconfigure the Publisher, you must drop the Publisher and configure it again using SQL Server Management StudioSQL Server Management Studio, Transact-SQL, or RMO. Per informazioni sulla configurazione del server di pubblicazione, vedere Configurare un server di pubblicazione Oracle.For information about configuring the Publisher, see Configure an Oracle Publisher.

Per eliminare un server di pubblicazione Oracle (SQL Server Management Studio)To drop an Oracle Publisher (SQL Server Management Studio)

  1. Connettersi al server di distribuzione per il server di pubblicazione Oracle in SQL Server Management StudioSQL Server Management Studio ed espandere il nodo del server.Connect to the Distributor for the Oracle Publisher in SQL Server Management StudioSQL Server Management Studio and expand the server node.

  2. Fare clic con il pulsante destro del mouse su Replicae quindi scegliere Proprietà server di distribuzione.Right-click Replication, and then click Distributor Properties.

  3. Nella pagina Server di pubblicazione della finestra di dialogo Proprietà server di distribuzione deselezionare la casella di controllo per il server di pubblicazione Oracle.On the Publishers page of the Distributor Properties dialog box, clear the check box for the Oracle Publisher.

  4. Scegliere OK.Click OK.

    Per eliminare un server di pubblicazione Oracle (Transact-SQL)To drop an Oracle Publisher (Transact-SQL)

Vedere ancheSee Also

Configurare un server di pubblicazione Oracle Configure an Oracle Publisher
Oracle Publishing Overview Oracle Publishing Overview