Una guía rápida para pasarelas transparentes y Servicios Hetrogenous. 1. Sección añadida sobre. 2. Revisada y la sección de genéricos heterogéneos Servicios genéricos heterogéneos Servicios y puntos de acceso transparentes actualizado en 10 minutos: En este artículo se discute servicios heterogéneos para Oracle 9i y superiores para conectarse a fuentes de datos no son de Oracle. La primera opción utiliza ODBC para conectarse, con el segundo utilizando pasarelas transparentes que utilizan controladores nativos. Servicios heterogéneos. Oracle Servicios heterogéneos (HS) es el equivalente de la conexión a cualquier fuente de datos mediante ODBC, y permite consultas estándar a ser ejecutadas frente a otras fuentes de datos que son compatible con ODBC. Normalmente sólo las tablas y vistas se pueden utilizar con SA. He usado SA en MSSQL, MySQL, Excel y Access éxito. Configurar una fuente de datos ODBC que apunta a la base de datos remota. Voy a llamar a la nuestra MSQL. Bajo ORACLE_HOME / hs / admin, establezca el parámetro en el archivo HS_FDS_CONNECT_INFO initMSQL.ora. Esto no tiene que coincidir con la fuente, pero por simplicidad, sees mejor. HS_FDS_CONNECT_INFO = MSQL # HS_DB_NAME = MSQL # = HS_DB_DOMAIN #HS_FDS_TRACE_LEVEL = ON #HS_FDS_TRACE_FILE_NAME = Sólo HS_FDS_CONNECT_INFO es obligatorio, el HS_DB_DOMAIN requiere sólo si se ha fijado en NAMES.DEFAULT_DOMAIN sqlnet.ora. Cambiar el archivo listener.ora para añadir un detector para el servicio. OYENTE = (DESCRIPTION_LIST = (DESCRIPTION = (Lista de direcciones = (DIRECCIÓN = (PROTOCOL = TCP) (HOST =) (PORT = 1521)) ) (Lista de direcciones = (DIRECCIÓN = (PROTOCOL = IPC) (KEY = EXTPROC0)) ) (Lista de direcciones = (DIRECCIÓN = (PROTOCOL = TCP) (HOST =) (PORT = 1524)) ) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = ORCL) (ORACLE_HOME = /data/app/oracle/product/10.2.0/db_1) (SID_NAME = ORCL) ) (SID_DESC = (PROGRAMA = extproc) (SID_NAME = PLSExtProc) (ORACLE_HOME = /data/app/oracle/product/10.2.0/db_1) ) (SID_DESC = (PROGRAMA =hsodbc) (SID_NAME = MSQL) (ORACLE_HOME = /data/app/oracle/product/10.2.0/db_1) ) ) El NAS SID_NAME para que coincida con el archivoini. Ergo initMSQL.ora debe ser SID_NAME de MSQL. Reinicie el oyente para la configuración para ser leído. Añadir una entrada en el tnsnames.ora para señalar el punto final de escucha para el servicio. MSQL = (DESCRIPTION = (ADDRESS_LIST = (DIRECCIÓN = (PROTOCOL = TCP) (HOST =) (PORT = 1524)) ) (CONNECT_DATA = (SID = MSQL) ) (HS = OK) ) HS-OK indica que el servicio del SA. Utilizar el mismo puerto como se define en el oyente. Crear el enlace de base de datos, con o sin la contraseña, dependiendo de si la fuente tiene control de acceso. crear base de datos de enlace msql conectarse a Fred identificado por Barney usando 'MSQL'; crear la base de datos utilizando MSQL enlace 'MSQL'; Un problema en este caso podría ser que se requiere el nombre de usuario y contraseña para ser "citado" de la cuenta. Si no lo consigue, inténtelo de nuevo. Crear base de datos de enlace MSQL conectarse a "Fred" identificado por"Barney" usando 'MSQL'; Usando una tabla conocida, probarlo. seleccionar la cuenta (*) a partir; Eso es todo, el MSQL debería estar trabajando. Tenga en cuenta que el texto y columnas NTEXT no puedan emplearse en función del controlador ODBC utilizado. Transparente puerta de enlace de SQL Server. Bajo tg4msql en la instalación ORACLE_HOME configuraremos el mismo usando Tranparent Gateway. Configurar una fuente de datos ODBC que apunta a la base de datos remota. Voy a llamar a la nuestra MSQL. Bajo ORACLE_HOME / tg4msql / admin, establezca el parámetro en el archivo HS_FDS_CONNECT_INFO initMSQL.ora. Esto no tiene por qué coincidir con la fuente, pero por simplicidad, es el mejor. HS_FDS_CONNECT_INFO = RemoteServer.MSQL HS_FDS_TRACE_LEVEL = OFF HS_FDS_RECOVERY_ACCOUNT = RECUPERAR HS_FDS_RECOVERY_PWD = RECUPERAR actualización del oyente como antes. OYENTE = (DESCRIPTION_LIST = (DESCRIPTION = (Lista de direcciones = (DIRECCIÓN = (PROTOCOL = TCP) (HOST =) (PORT = 1521)) ) (Lista de direcciones = (DIRECCIÓN = (PROTOCOL = IPC) (KEY = EXTPROC0)) ) (Lista de direcciones = (DIRECCIÓN= (PROTOCOL = TCP) (HOST =) (PORT = 1524)) ) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = ORCL) (ORACLE_HOME = /data/app/oracle/product/10.2.0/db_1) (SID_NAME = ORCL) ) (SID_DESC = (PROGRAMA = extproc) (SID_NAME = PLSExtProc) (ORACLE_HOME = /data/app/oracle/product/10.2.0/db_1) ) (SID_DESC = (PROGRAMA = tg4msql) (SID_NAME = MSQL) (ORACLE_HOME = /data/app/oracle/product/10.2.0/db_1) ) ) Reinicie el oyente. Actualizar los tnsnames.ora como antes. MSQL = (DESCRIPTION = (ADDRESS_LIST = (DIRECCIÓN = (PROTOCOL = TCP) (HOST =) (PORT = 1524)) ) (CONNECT_DATA = (SID = MSQL) ) (HS = OK) ) HS-OK indica que el servicio del SA. Utilizar el mismo puerto como se define en el oyente. Crear el enlace de base de datos, con o sin la contraseña, dependiendo de si la fuente tiene control de acceso. crear base de datos de enlace msql conectarse a Fred identificadopor Barney usando 'MSQL'; crear la base de datos utilizando MSQL enlace 'MSQL'; Un problema en este caso podría ser que se requiere el nombre de usuario y contraseña para ser "citado" de la cuenta. Si no lo consigue, inténtelo de nuevo. crear base de datos de enlace msql conectarse a "Fred" identificado por "Barney" usando 'MSQL'; Usando una tabla conocida, probarlo. seleccionar la cuenta (*) a partir; Eso es todo, el MSQL debería estar trabajando. Tenga en cuenta que el texto y columnas NTEXT no puedan emplearse en función del controlador ODBC utilizado. Gateways transparentes tienen un mejor rendimiento y una mejor gestión TEXTO tipo de datos de SQL Server. SA es libre, Tranparent puertas de enlace debe tener una licencia !!!! Solución de problemas. Dependiendo del error, hay una serie de cosas que podrían ser mal. / ************************************************* ******************* / ORA-28509: no puede establecer una conexión al sistema de no-Oracle ORA-02063: línea anterior del HS / ******* ************************************************** *********** / Causa: Esto indica un problema con los archivos de configuración de Oracle.Acción: Asegúrese de que el parámetro de host en el archivo tnsnames.ora es correcta. Asegúrese de que el número de puerto es correcto. Asegúrese de que el nombre de SID es correcta, tanto en el TNSNAMES.ORA y LISTENER.ORA / ******************************** ************************************ / ORA-02068: error de seguimiento graves de septicemia hemorrágica ORA-03114: no conectado a ORACLE / ********************************************* *********************** / Causa: Esto indica la sintaxis necesaria para el archivo tnsnames.ora no se encuentra presente. Acción: (SA = OK) tiene que ser añadido al archivo tnsnames.ora en la sección de descripción. / ************************************************* ******************* / ORA-02068: error de seguimiento graves de septicemia hemorrágica ORA-28511: la conexión RPC perdida de agente remoto heterogénea utilizando% tns_address% / ***** ************************************************** ************* / Causa: el oyente es incapaz de generar el agente del SA o el agente no puede encontrar el directorio lib ODBC. Acción: la línea de programa en el archivo listener.ora esincorrecta o no se especifica. Asegúrese de que LD_LIBRARY_PATH incluye el directorio $ ODBC_HOME / lib. Si no es así, establecer LD_LIBRARY_PATH y reinicie el oyente. / ************************************************* ******************* / ORA-28500: la conexión de Oracle a un sistema no-Oracle volvió este mensaje: [puerta de enlace transparente para ODBC] [H001] La variable de entorno es no ajuste. ORA-02063: 2 líneas precedentes de SA / **************************************** **************************** / Causa: configuración de los parámetros incorrectos en el SA init.ora archivo. Acción: Conjunto HS_FDS_CONNECT_INFO en el SA INIT.ORA archivo en el nombre del origen de datos que se encuentra en el archivo odbc.ini. Ejemplo: HS_FDS_CONNECT_INFO = MS_SQLServer7 Asegúrese de que el SA init.ora archivo existe en el directorio $ ORACLE_HOME / HS / admin y tiene el mismo nombre que el SID en el LISTENER.ORA. Ejemplo: Si SID = hsodbc en el archivo listener.ora, a continuación, el SA init.ora archivo se llamaría $ ORACLE_HOME / hs / admin / inithsodbc.ora/ ************************************************* ******************* / ORA-28500: la conexión de Oracle a un sistema no-Oracle volvió este mensaje: [puerta de enlace transparente para ODBC] [H001] La variable de entorno es no ajuste. ORA-02063: 2 líneas precedentes de SA / **************************************** **************************** / Causa: configuración de los parámetros incorrectos en el SA init.ora archivo. Acción: Establecer HS_FDS_SHAREABLE_NAME a la ruta completa más nombre de archivo para el archivo libodbc.so. Ejemplo: HS_FDS_SHAREABLE_NAME = / u01 / Intersolv / ODBC / msql / lib / libodbc.so / ******************************* ************************************* / ORA-28500: la conexión de Oracle a un no-Oracle sistema ha devuelto el siguiente mensaje: [puerta de enlace transparente para ODBC] DRV_InitTdp: (Estado SQL: 01000; Código SQL: 0) ORA-02063: 2 líneas precedentes de SA / **************** ************************************************** ** / Causa: el agente del SA no puede encontrar el archivo odbc.ini. Acción: La variable ODBCINI no se encuentra en las init.ora HSarchivo y necesidades que se establezcan. Ejemplo: set ODBCINI = / u01 / / ODBC / msql / odbc.ini / Intersolv ******************************** ************************************ / ORA-00942: la tabla o vista no existe [puerta de enlace transparente para ODBC] DRV_OpenTable: [MERANT] [ODBC SQL Server Driver] [SQL Server] nombre de objeto no válido '% tabla%'. (Estado SQL: S0002; SQL Code: 208) ORA-02063: 2 líneas precedentes de SA / ***************************** *************************************** / Causa: el origen de datos en el odbc.ini archivo de base de datos contiene información incorrecta. Acción: Consulte la guía del usuario ODBC sobre cómo configurar los parámetros de su fuente de datos. / ************************************************* ******************* / ORA-28500: la conexión de Oracle a un sistema no-Oracle volvió este mensaje: [puerta de enlace transparente para ODBC] DRV_InitTdp: [MERANT] [ODBC controlador de SQL Server] [libssclient15] error general de red. Compruebe su documentación de red. (Estado SQL: 08001; Código SQL: 11) ORA-02063: 2 líneas precedentes de SA/ ************************************************* ******************* / Causa: Hay un problema en la capa de red que comunica con la fuente de datos externa. Acción: Asegúrese de que el host de destino o dirección y número de puerto IP es correcta para el origen de datos en el archivo odbc.ini. / ************************************************* ******************* / ORA-28500: la conexión de Oracle a un sistema no-Oracle volvió este mensaje: [puerta de enlace transparente para ODBC] DRV_InitTdp: [MERANT] [ODBC SQL Server Driver] [SQL Server] Error (estado SQL: 28000; Código SQL: 4002) ORA-02063: 3 líneas precedentes de HSTEST / ******************* ************************************************* / Causa: el enlace de la base de datos Oracle creada por la fuente de datos externa o bien no tiene credenciales o credenciales incorrectas. Acción: Vuelva a crear el enlace de base de datos Oracle con el nombre de usuario y contraseña Propper. Además, nombre de usuario y la contraseña deben estar entre comillas dobles. Ejemplo: crear base de datos de enlace ODBC conectarse a "usuario"identificado por "contraseña" utilizando 'hsodbc';