martes, 16 de junio de 2015

Errores de conexión de Oracle

Los controladores Oracle requieren declaraciones de conexión muy específicas con un formato único. Sin embargo, puede que el archivo TNSNames.ora no sea siempre necesario. Por ejemplo, en caso de que haya instalado únicamente los archivos de Oracle proporcionados por Tableau y no disponga de un cliente Oracle independiente. Los mensajes de error de Oracle hacen referencia al archivo TNSNames.ora.
Por lo general, la corrección de la ruta o la sintaxis para agregar nombres en el cuadro de diálogo Conexión avanzada de Oracle o el uso del nombre de base de datos .WORLD completo resuelve la mayoría de los problemas de conexión de Oracle. Si el error de conexión requiere más opciones de solución de problemas, consulte los cuatro errores de conexión más comunes que se indican a continuación.
  • ORA-03113: end-of-file on communication channel (fin de archivo en el canal de comunicación)
  • ORA-12154: TNS: could not resolve the connect identifier specified HOST value incorrect or Global name incorrect or unknown (no se ha podido resolver el identificador de conexión especificado. El valor HOST es incorrecto o el nombre global es incorrecto o desconocido)
  • ORA-12514: TNS listener does not currently know of service requested in connect descriptor (el receptor TNS desconoce servicio solicitado en el descriptor de conexión)
    SERVICE value incorrect (valor SERVICE incorrecto)
  • ORA-12541: TNS: no listener (sin receptor)
    PORT value incorrect (valor PORT incorrecto)
  • ORA-00932: inconsistent data types (tipos de datos inconsistentes)

ORA-03113: end-of-file on communication channel (fin de archivo en el canal de comunicación)

ORA-03113 es un error general que aparece para cualquier problema que interrumpa una sesión de Oracle. Las causas de este error pueden ser varias. Consulte la lista que se muestra a continuación para obtener una guía de solución de problemas.
  • Consulte la documentación de Oracle específica para este error: My Oracle Support.
  • Oracle recomienda que compruebe los problemas de red y revise la configuración de SQL*Net.
  • Si se conecta a Oracle 9.2.0.5, en muchos casos, la causa principal de este error es el error 3010227 de Oracle. Pida a su administrador de base de datos Oracle que aplique el parche 9.2.0.6 de Oracle o cualquier otro parche adecuado para el servidor.
  • Configure el parámetro de inicialización de Oracle 'STAR_TRANSFORMATION_ENABLED' en FALSE.
  • De manera alternativa, si desea seguir haciendo pruebas sobre este problema, siga el procedimiento opcional que se describe a continuación.

Step 1 

En la página de inicio de Tableau Desktop, seleccione Conectar a datos.

Step 2 

Para Tableau Desktop 8.2 y posterior, en la página Conectar, haga clic en Oracle.
Para Tableau Desktop 8.1 y anterior, en la página Conectar a datos, haga clic en Oracle.

Step 3 

Para Tableau Desktop 8.2 y posterior, conéctese al servidor de Oracle y, a continuación, haga clic en Aceptar.
Para Tableau Desktop 8.1 y anterior, siga los pasos que aparecen en el cuadro de diálogo Conexión a Oracle para completar la conexión. Para obtener más información sobre la realización de los pasos necesarios para la conexión, consulte el tema Base de datos Oracle en la Ayuda de Desktop.

Step 4 

Para Tableau Desktop 8.2 y posterior, realice lo siguiente:
  1. En el área de unión, sitúe el cursor sobre la tabla de SQL personalizado hasta que se muestre el icono de edición. A continuación, haga clic en el icono.
  2. Copie la consulta en el cuadro de diálogo Editar SQL personalizada.
Para Tableau Desktop 8.1 y anterior, realice lo siguiente:
  1. En Paso 5, seleccione una tabla o vista del esquema y, a continuación, seleccione SQL personalizado.
  2. Copie la consulta que aparece en el cuadro de texto de Paso 5.

Step 5 

En una sesión SQL conectada a esta base de datos, pegue la consulta y ejecútela. La respuesta esperada es el error ORA-7445: exception encountered: core dump (ORA-7445: se ha encontrado una excepción: volcado de memoria), lo que confirma que el problema es de tipo ORA-3113 según lo esperado.

ORA-12154: TNS: could not resolve the connect identifier specified (no se pudo resolver el identificador de conexión especificado)

El error ORA-12154 se produce cuando el sustrato de red transparente (TNS) no puede resolver el nombre del servicio. El nombre del servicio se especifica en el archivo TNSNames.ora, que está ubicado en la carpeta %ORACLE_HOME%\network\admin\. Con frecuencia, este error se produce cuando la información del archivo TNSNames.ora no es correcta. Por ejemplo:
  • La extensión .world no se incluye en el nombre de base de datos.
  • La variable SERVICE_NAME o HOST no es correcta.
Para resolver este problema, intente realizar una de las tres opciones de solución de problemas siguientes, en el orden que se indica a continuación.
Opción 1: Edite TNSNames.ora
 Proporcione el nombre de la base de datos completo con la extensión .world en las ubicaciones siguientes:
  • El archivo TNSNames.ora.
    Y
  • (Tableau Desktop 8.2 y posteriores) El cuadro de texto Servidor de la página Conectar.
  • (Tableau Desktop 8.1 y anterior) El cuadro de texto Paso 1 del cuadro de diálogo Conexión de Oracle al conectarse a la fuente de datos en Tableau.
Opción 2: Asegúrese de que la cuenta Ejecutar como usuario de Tableau Server tenga permisos para acceder a TNSNames.ora (solo Tableau Server)
Si tiene instalado Tableau Server, complete el procedimiento siguiente para comprobar que la cuenta Ejecutar como usuario de Tableau Server tenga permisos para acceder a la ubicación del archivo TNSNames.ora. Si la cuenta Ejecutar como usuario no dispone de permisos, Tableau Server no puede acceder a los detalles de la fuente de datos de Oracle.

Step 1 

Verifique la ubicación del archivo TNSNames.ora, o bien de los archivos SQLNET.ora y LDAP.ora equivalentes en la máquina.
Nota: De forma predeterminada, el archivo TNSNames.ora se encuentra en el directorio \network\admin. Por ejemplo, C:\Oracle_Client\network\admin.

Step 2 

Confirme que la variable TNS_ADMIN apunta a la ubicación del archivo o los archivos descritos en el paso 1.
Nota: Para comprobar la variable TNS_ADMIN, haga clic en el botón Inicio y seleccione Panel de control > Sistema. Haga clic en Configuración avanzada del sistema, en la pestaña Opciones avanzadas y luego en el botón Variables de entorno.

Step 3 

En el botón de inicio de Windows, seleccione Tableau Server > Configurar Tableau Server.

Step 4 

En Ejecutar servidor como usuario, copie la información del cuadro de texto Usuario.

Step 5 

Vaya a la carpeta en la que se encuentra el archivo TNSNames.ora.

Step 6 

Haga clic con el botón derecho en la carpeta y seleccione Propiedades. Haga clic en la pestaña Seguridad y luego en el botón Editar.

Step 7 

En Nombres de grupos o usuarios, haga clic en el botón Agregar.

Step 8 

En el cuadro de texto Escribir los nombres de objeto para seleccionar, pegue los detalles de la cuenta Ejecutar como usuario copiados en el paso 6.

Step 9 

Cuando haya terminado, haga clic en Aceptar.

Step 10 

En el área de permisos, asegúrese de que las casillas de verificación Control total y Modificar estén seleccionadas.

Step 11 

Haga clic en Aceptar para cerrar los cuadros de diálogo.

Para obtener más información sobre este error, puede consultar los siguientes recursos externos:

Opción 3: Compruebe que toda la información de TNSNames.ora sea correcta
 Si los pasos de solución de problemas anteriores no resuelven el problema, continúe leyendo y realice el procedimiento para comprobar si el resto de la información del archivo TNSNames.ora es correcta.

A continuación, se muestra un ejemplo del archivo TNSNames.ora:

QAORCL10.world =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = MY_HOST_NAME)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = MY_SERVICE_NAME)
)
)

Las tres variables más importantes del archivo son HOST, PORT y SERVICE_NAME. Cópielas del archivo TNSNames.ora y téngalas disponibles. Estas variables distinguen mayúsculas de minúsculas. En los pasos siguientes se describe cómo proporcionar estas variables para la conexión.

Step 1 

En la página de inicio de Tableau Desktop, seleccione Conectar a datos.

Step 2 

Para Tableau Desktop 8.2 y posterior, en la página Conectar, haga clic en Oracle.
Para Tableau Desktop 8.1 y anterior, en la página Conectar a datos, haga clic en Oracle.

Step 3(Solo para Tableau Desktop 8.1 y anterior)

En el cuadro de diálogo Conexión de Oracle, haga clic en Avanzado.

Step 4 

Para Tableau Desktop 8.2 y posterior, proporcione la siguiente información del archivo TNSNames.ora:
  • En el cuadro de texto Nombre de servidor, escriba el nombre del host.
  • En el cuadro de texto Servicio, introduzca el valor SERVICE_NAME.
  • En el cuadro de texto Puerto, escriba el número de puerto.
  • Especifique si desea utilizar la Autenticación de Windows o un nombre de usuario y una contraseña específicos y, a continuación, haga clic en Conectar.
Para Tableau Desktop 8.1 y anterior, en el cuadro de diálogo Conexión avanzada de Oracle, proporcione la siguiente información del archivo TNSNames.ora:
  • En el cuadro de texto Nombre de servidor, proporcione el nombre del host.
  • En el cuadro de texto Nombre de servidor, proporcione el valor SERVICE_NAME.
  • En el cuadro de texto Puerto, proporcione el número de puerto.
  • Cuando haya terminado, haga clic en Aceptar.
Nota: Las variables distinguen mayúsculas de minúsculas.

Step 5 


Para Tableau Desktop 8.2 y posterior, seleccione un esquema de la lista desplegable Esquema, arrastre una tabla al área de unión y, a continuación, haga clic en Ir a la hoja de trabajo.
Para Tableau Desktop 8.1 y anterior, siga el resto de los pasos que aparecen en el cuadro de diálogo Conexión de Oracle para completar la conexión.
  • En Paso 5, mantenga la opción Tabla individual seleccionada y elija una tabla o vista del esquema.
  • En Paso 6, tiene la opción de editar el nombre de conexión predeterminado.
  • Cuando haya terminado, haga clic en Aceptar.

Step 6 

Realice los pasos descritos en el artículo Configuración de conexión Oracle para usar TNSNames.ora (Setting an Oracle Connection to Use TNSNames.ora).
Importante: 
  • Asegúrese de guardar el archivo TNSNames.ora que se utiliza en codificación ASCII. Cualquier otra codificación distinta de ASCII como, por ejemplo, UTF-8 o Unicode, produce el mensaje de error ORA-12154.
  • Estos pasos suelen ser necesarios incluso si el software de Oracle ya está instalado en la máquina.

Step 7 

Descargue e instale los controladores Oracle adecuados desde la página Controladores de Tableau. Incluso si instala un controlador Oracle diferente en la computadora, podría no ser compatible con Tableau y necesitar la versión especificada en la página Controladores.

ORA-12514: TNS listener does not currently know of service requested in connect descriptor (el receptor TNS desconoce servicio solicitado en el descriptor de conexión)

Normalmente, este error se produce cuando el valor SERVICE no es correcto.
Para resolver el problema, busque el valor SERVICE correcto y abra el archivo TNSNames.ora ubicado en la carpeta %ORACLE_HOME%\network\admin\. Consulte los pasos de ORA_12154 si es necesario.

ORA-12541: TNS: no listener (sin receptor)

Normalmente, este error se produce cuando el valor PORT no es correcto.
Para resolver este problema, reemplace el valor PORT con 1521 o 1526. Pruebe el valor que no se está utilizando actualmente.

ORA-00932: inconsistent data types (tipos de datos inconsistentes)

Este error se produce al conectarse a Oracle o al crear una extracción de una fuente de datos de Oracle. Normalmente, la causa de este error es la instalación de los controladores Oracle incorrectos.
Para resolver este problema, instale los controladores Oracle correctos de la página Controladores para la versión de Tableau que está utilizando.

Sugerencias adicionales para la solución de problemas

Si no tiene un cliente Oracle instalado en la máquina, asegúrese de obtener los archivos necesarios del administrador de base de datos.Si los errores de conexión de datos de Oracle persisten, realice lo siguiente:
  • Compruebe la ruta de la carpeta TNSNames.ora utilizada para crear la variable TNS_ADMIN.
  • Reinicie la máquina para garantizar el reconocimiento de la variable TNS_ADMIN.
  • Compruebe que el nombre de conexión de Oracle utilizado en Tableau coincide exactamente con la entrada de nombre de servicio de red de TNSNames.ora. Este nombre distingue mayúsculas de minúsculas.
  • En algunos casos, será necesario reiniciar Windows antes de que el controlador Oracle seleccione la variable del sistema TNS_ADMIN.
  • Póngase en contacto con el personal de TI local para verificar que el archivo TNSNames.ora está actualizado.
  • Si la conexión de Oracle utiliza LDAP, asegúrese de incluir el archivo SQLNet.ora así como el archivo TNSNames.ora.