Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

Cómo configurar y solucionar problemas de un servidor vinculado a una base de datos de Oracle en SQL Server

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 280106
Resumen
En este artículo paso a paso se describe cómo configurar un servidor vinculado desde un equipo que está ejecutando Microsoft SQL Server a una base de datos de Oracle y también proporciona los pasos básicos de solución de problemas de errores comunes que pueden surgir al configurar un servidor vinculado a Oracle.

Pasos para configurar un servidor vinculado a Oracle

  1. Debe instalar el software cliente de Oracle en thecomputer que se ejecuta SQL Server donde se configura el servidor vinculado.
  2. Instale al controlador que desee en el equipo que está ejecutando SQL Server.activación sólo admite el proveedor de DB de MicrosoftOLE para Oracle y Microsoft ODBC Driver para Oracle. Si utiliza un proveedor de terceros o un controlador de otro fabricante de paraconectarse a Oracle, comuníquese con el proveedor respectivo para los problemas que puede experimentar con su proveedor o controlador.
  3. Si utiliza el proveedor de MicrosoftOLE DB para Oracle y Microsoft ODBC Driver para Oracle, considere lo siguiente:
    • El proveedor OLE DB y el controlador ODBC que se incluyen con Microsoft Data Access Components (MDAC) requieren SQL * Net 2.3. x o una versión posterior. Debe instalar el Oracle 7.3. software de cliente de x , o una versión posterior, en el equipo cliente. El equipo cliente es el equipo que está ejecutando SQL Server.
    • Asegúrese de que tiene MDAC 2.5 o una versión posterior, instalado en el equipo que está ejecutando SQL Server. Con MDAC 2.1 o con una versión anterior, no se puede conectar a bases de datos de Oracle 8. x o una versión posterior.
    • Para habilitar MDAC 2.5, o versiones posteriores trabajar con el software de cliente de Oracle, se debe modificar el registro en el equipo cliente que está ejecutando SQL Server como se indica en la tabla siguiente.
                 Microsoft Windows NT,Oracle     Microsoft Windows 95,Client     Windows 98, and Windows 98 SE    Microsoft Windows 2000 --------------------------------------------------------------------------7.x        [HKEY_LOCAL_MACHINE\SOFTWARE     [HKEY_LOCAL_MACHINE\SOFTWARE             \Microsoft\TransactionServer     Microsoft\MSDTC\MTxOCI]           \Local Computer\My Computer]     "OracleXaLib"="xa73.dll"           "OracleXaLib"="xa73.dll"         "OracleSqlLib"="SQLLib18.dll"           "OracleSqlLib"="SQLLib18.dll"    "OracleOciLib"="ociw32.dll"           "OracleOciLib"="ociw32.dll"   8.0        [HKEY_LOCAL_MACHINE\SOFTWARE     [HKEY_LOCAL_MACHINE\SOFTWARE           \Microsoft\Transaction Server    \Microsoft\MSDTC\MTxOCI]           \Local Computer\My Computer]     "OracleXaLib"="xa80.dll"           "OracleXaLib"="xa80.dll"         "OracleSqlLib"="sqllib80.dll"            "OracleSqlLib"="sqllib80.dll"    "OracleOciLib"="oci.dll"           "OracleOciLib"="oci.dll" 8.1        [HKEY_LOCAL_MACHINE\SOFTWARE     [HKEY_LOCAL_MACHINE\SOFTWARE           \Microsoft\Transaction Server    \Microsoft\MSDTC\MTxOCI]           \Local Computer\My Computer]     "OracleXaLib"="oraclient8.dll"            "OracleXaLib"="oraclient8.dll"   "OracleSqlLib"="orasql8.dll"             "OracleSqlLib"="orasql8.dll"     "OracleOciLib"="oci.dll"           "OracleOciLib"="oci.dll"
  4. Reinicie el equipo que ejecuta SQL Server después de instalar el software de cliente de theOracle.
  5. En el equipo que está ejecutando SQL Server, configurar un servidor vinculado mediante el uso de secuencias de comandos siguientes.
    -- Adding linked server (from SQL Server Books Online):/* sp_addlinkedserver [@server =] 'server'     [, [@srvproduct =] 'product_name']    [, [@provider =] 'provider_name']     [, [@datasrc =] 'data_source']     [, [@location =] 'location'] [, [@provstr =] 'provider_string']     [, [@catalog =] 'catalog']*/ EXEC sp_addlinkedserver   'Ora817Link',  'Oracle',  'MSDAORA',  'oracle817'-- Adding linked server login:/* sp_addlinkedsrvlogin [@rmtsrvname =] 'rmtsrvname'    [,[@useself =] 'useself']    [,[@locallogin =] 'locallogin']    [,[@rmtuser =] 'rmtuser']    [,[@rmtpassword =] 'rmtpassword']*/ EXEC sp_addlinkedsrvlogin 'Ora817Link', 'FALSE',NULL, 'scott', 'tiger'-- Help on the linked server:EXEC sp_linkedserversEXEC sp_helpserverselect * from sysservers
Nota: Si utiliza el controlador ODBC de Microsoft para Oracle, puede utilizar el parámetro @datasrc para especificar un nombre de DSN. Para una conexión sin DSN, se suministra la cadena del proveedor a través del parámetro @provstr . Con el proveedor Microsoft OLE DB para Oracle, utilice el alias del servidor Oracle que se configura en el archivo TNSNames.Ora para el parámetro @datasrc . Para obtener más información, vea el tema "sp_addlinkedserver" en libros en pantalla de SQL Server.

Mensajes de error comunes y cómo solucionarlos

Importante: esta sección, el método o la tarea contiene pasos que indican cómo modificar el registro. Sin embargo, pueden producirse problemas graves si modifica incorrectamente el registro. Por lo tanto, asegúrese de que sigue estos pasos cuidadosamente. Para una mayor protección, haga una copia de seguridad del registro antes de modificarlo. Entonces, puede restaurar el registro si se produce un problema. Para obtener más información acerca de cómo hacer copia de seguridad y restaurar el registro, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
322756 Cómo hacer copia de seguridad y restaurar el registro de Windows


Puede utilizar cualquiera de los dos métodos siguientes para recuperar información ampliada acerca de cualquier error que se experimenta cuando se ejecuta una consulta distribuida.
  • Método 1
    En el analizador de consultas, ejecute el código siguiente para activar marca de seguimiento 7300.
    DBCC Traceon(7300)
  • Método 2
    Capturar el evento "OLEDB errores" que se encuentra en la categoría de sucesos "Errores andWarnings" en el analizador de SQL. El formato de mensaje de error es siguientes:
    Error de Interface::Method con código de error-hex.
    Puede buscar hex-código de error en el archivo Oledberr.h que isincluded con el Kit de desarrollo de Software (SDK) de MDAC.
La siguiente es una lista de los diez mensajes de error comunes que pueden producirse, junto con información sobre cómo solucionar el mensaje de error.

Nota: Si está utilizando SQL Server 2005, estos mensajes de error pueden variar. Sin embargo, los identificadores de error de estos mensajes de error son iguales en SQL Server 2000. Por lo tanto, se puede identificar por el error Id.

Nota: Para problemas relacionados con el rendimiento, busque el tema "Optimizar consultas distribuidas" en SQL Server BooksOnline.
  • Mensaje 1
    Error 7399: Proveedor de OLE DB ' % ls'reported un error. %ls
    Activar marca de seguimiento 7300 o utilizar el analizador de SQL para capturar el evento "OLEDB errores" para recuperar información de error extendida de OLEDB.
  • Mensaje 2a
    "ORA-12154: TNS: no resolveservice el nombre"
    Mensaje 2b
    "No se encontraron el cliente de Oracle (TM) y el networkingcomponents. Estos componentes son proporcionados por Oracle Corporationand son parte de la versión 7.3.3 de Oracle (o mayor) cliente instalación delsoftware del "
    Para obtener más información acerca de cómo solucionar problemas de conectividad de Oracle, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    259959 Técnicas para depurar problemas de conectividad con un servidor Oracle utilizando el controlador ODBC y el proveedor de OLE DB
  • Mensaje 3
    Error 7302: No se pudo crear el aninstance del proveedor OLE DB 'MSDAORA'
    Asegúrese de que el archivo MSDAORA.dll está registrado correctamente. (El archivo MSDAORA.dll es el proveedor de OLE DB de Microsoft para archivos de Oracle). Utilice RegSvr32.exe para registrar el proveedor Microsoft OLE DB para Oracle. Si se produce un error en el registro, vuelva a instalar Microsoft Data Access Components (MDAC). Para obtener más información acerca de MDAC, visite el siguiente sitio Web de Microsoft Developer Network (MSDN):Nota: Si utiliza un proveedor Oracle y el proveedor de Oracle no se puede ejecutar fuera de un proceso de SQL Server, permitir que se ejecute en proceso por las opciones de proveedor cambie. Para cambiar las opciones de proveedor, utilice uno de los métodos siguientes.
    • Método 1
      Busque la siguiente clave del registro. A continuación, cambie el valor de la entrada AllowInProcess (DWORD) a 1. Esta clave del registro es locatedunder, el nombre del proveedor correspondiente:
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\ProviderName
    • Método 2
      Establezca la opción Permitir InProcess directamente mediante el Administrador corporativo de SQL Server cuando vincula un nuevo de youadd server. Haga clic en Opcionesy, a continuación, haga clic para activar la casilla de verificación Permitir InProcess .
  • Mensaje 4
    Error 7303: Podría no initializedata objeto de origen del proveedor OLE DB 'MSDAORA'. [Returnedmessage de proveedor OLE/DB: ORA-01017: contraseña no válida; inicio de sesión denegado] Traza de error de OLE DB [IDBInitialize:: Initialize de proveedor OLE/DB 'MSDAORA' devolvió 0x80040e4d].
    Este mensaje de error indica que el servidor vinculado no tiene asignación de inicio de sesión correcto. Puede ejecutar el procedimiento almacenado de sp_helplinkedsrvlogin para establecer la información de inicio de sesión correctamente. Además, compruebe que ha especificado los parámetros correctos para la configuración del servidor vinculado.
  • Mensaje 5
    Error 7306: No se pudo abrir la tabla '%ls' de proveedor OLE DB 'MSDAORA'. La tabla especificada no existe. [Proveedor OLE/DB devolvió el mensaje: no existe tabla.] [OLE/DB providerreturned message: ORA-00942: no existe la tabla o vista] Traza de error de OLE DB [proveedor OLE/DB 'MSDAORA' IOpenRowset devuelto 0x80040e37: no existe la tabla especificados.].
    Uso de 7312:Invalid de error de esquema o catálogo para el proveedor OLE DB '%ls'. Se ha proporcionado un partname de cuatro, pero el proveedor no expone las interfaces necesarias se debe utilizar un catálogo o esquema.
    Error 7313:Invalid esquema o catálogo especificado para el proveedor '%ls'.
    7314 de error: El proveedor OLE DB '%ls' no contiene la tabla '%ls'
    Si recibe estos mensajes de error, una tabla puede no aparecer en el esquema de Oracle o que no tenga permisos en la tabla. Compruebe que se ha escrito el nombre del esquema mediante el uso de mayúsculas. El caso por orden alfabético de la tabla y de las columnas debe ser como se indica en las tablas del sistema Oracle.

    En el lado de Oracle, se almacena una tabla o una columna que se crea sin comillas dobles en mayúsculas. Si la tabla o la columna se encierra entre comillas dobles, se almacena en la tabla o la columna tal como está.

    La llamada siguiente se muestra si la tabla existe en el esquema de Oracle. Esta llamada también muestra el nombre exacto.
    sp_tables_ex  @table_server=Ora817Link, @table_schema='your_schema_name'
    Para obtener más información sobre el mensaje de error 7306, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    240340 Error "No se puede abrir tabla" hace que la consulta distribuida de SQL con Oracle
  • Mensaje de 6
    Error 7413: No pudo realizar el inicio de sesión autenticado de ventanas NT porque la delegación no está disponible.
    Msj 18456, nivel 14, estado 1, línea 1 Loginfailed para el usuario ' \'.
    La siguiente información es de libros en pantalla de SQL Server:
    Este mensaje de error indica que se está intentando una consulta distribuida para un inicio de sesión autenticado de Microsoft Windows sin una asignación explícita del inicio de sesión. En un entorno de sistema operativo en el que la seguridad no se admite la delegación, Windows NT autentica necesidad de inicios de sesión una asignación explícita a un inicio de sesión remoto y contraseña creados mediante sp_addlinkedsrvlogin.
  • Mensaje de 7
    Error 7354: provider'MSDAORA OLE DB' especificó metadatos no válido para la columna '%ls'. El tipo de datos es notsupported.
    Si recibe este mensaje de error, puede estar experimentando el error que se describe en el siguiente artículo de Microsoft Knowledge Base:
    243027 REVISIÓN: Produce un error 7354 de columna numérica en Oracle
  • Mensaje de 8
    Error 7356: provider'MSDAORA OLE DB' especificó metadatos contradictorios para una columna. Waschanged de información de metadatos en tiempo de ejecución.
    Si la consulta de servidor vinculado utiliza una vista de Oracle, puede estar experimentando el problema que se describe en el siguiente artículo de Microsoft Knowledge Base:
    251238 Las consultas distribuidas devuelven el error 7356 con MSDAORA
  • Mensaje de 9
    Error 7391: La operación podría realizada porque el proveedor OLE DB 'MSDAORA' no admite distributedtransactions. Traza de error de OLE DB [proveedor OLE/DB 'MSDAORA' ITransactionJoin:: JoinTransaction devolvió 0x8004d01b]
    Compruebe que las versiones de theOCI se han registrado correctamente, tal como se describe anteriormente en este artículo.

    Nota: Si las entradas del registro son correctos, el MtxOCI.dll archivo isloaded. Si no se carga el archivo MtxOCI.dll, no se puede realizar distributedtransactions con Oracle utilizando el proveedor Microsoft OLE DB para Oracle orby mediante el controlador ODBC de Microsoft para Oracle. Si está utilizando un proveedor de terceros y reciba el Error 7391, compruebe que el proveedor OLE DB que utiliza transacciones de supportsdistributed. Si el proveedor OLE DB admite distributedtransactions, compruebe que la Coordinator(MSDTC) de transacciones distribuidas de Microsoft se está ejecutando.
  • Mensaje de 10
    Error 7392: No se pudo iniciar la atransaction para el proveedor OLE DB 'MSDAORA'. Traza de error de OLE DB [OLE/DB Provider'MSDAORA' ITransactionLocal:: StartTransaction devuelto 0x8004d013:ISOLEVEL = 4096].
    La siguiente información es de libros en pantalla de SQL Server:
    El proveedor OLE DB devolvió el error 7392 porque sólo una transacción puede estar activa para esta sesión. Este error indica que se está intentando una instrucción de modificación de datos de un proveedor OLE DB cuando la conexión está en una transacción explícita o implícita, y el proveedor OLE DB no admite transacciones anidadas. SQL Server requiere este apoyo para que, en determinadas condiciones de error, pueda terminar los efectos de la instrucción de modificación de datos mientras se continúa con la transacción.
    Si SET XACT_ABORT es ON, SQL Server no requiere soporte de nestedtransaction desde el proveedor OLE DB. Por lo tanto, ejecutar SET XACT_ABORT ONbefore ejecutar las instrucciones de modificación de datos con tablas remotas en animplicit o transacción explícita. Ello en caso de que el proveedor OLE DB que está utilizando soporte transacciones anidadas.
Referencias
Para obtener más información, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
244661 Limitaciones del controlador ODBC de Oracle de Microsoft y el proveedor OLE DB
259959 Técnicas para depurar problemas de conectividad con un servidor Oracle utilizando el controlador ODBC y el proveedor de OLE DB
239719 Compatibilidad del proveedor Microsoft ODBC driver y OLE DB para Oracle w.r.t Oracle 8.x
193893 Información sobre el uso de Oracle con componentes de Microsoft Transaction Server y COM +
191168 No se pudo dar de alta en la transacción del objeto de llamada de error "-2147168246 (8004d00a)"
Para obtener más información acerca de cómo utilizar un servidor vinculado junto con DB2, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
218590 La configuración de orígenes de datos para el proveedor de Microsoft OLE DB para DB2
216428 Configurar el controlador ODBC de Microsoft para DB2
vinculado a los indicadores de traza SQL Oracle DBCC consultas distribuidas

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 280106 - Última revisión: 08/16/2015 21:31:00 - Revisión: 8.0

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 64-bit Edition, Microsoft SQL Server 7.0 Standard Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, , ,

  • kbsqlsetup kbhowtomaster kbmt KB280106 KbMtes
Comentarios
endChild(m);