Conexión con Oracle -módulo S-

Requisitos de configuración del Cliente

Para pruebas y administradores: Requisitos de configuración del Servidor

Proceso de exportación desde una BD en Ms-Jet a Oracle

 

Requisitos de configuración del Cliente

Para que la aplicación pueda funcionar desde una máquina cliente, ésta debe tener instalado la aplicación cliente Oracle Client software (nota: el cual debe incluir Oracle Net software que es el imprescindible) y el Proveedor OLE DB de Oracle.

Conexión a un esquema Oracle desde la aplicación

Antes de intentar conectarnos con la aplicación desde una máquina cliente hay que cerciorarse de que la configuración de red es la correcta.

Ejecutando desde la consola de comandos el comando tnsping nobre_de_servicio podremos averiguar si la conexión desde el cliente al servidor está correctamente configurada (el parámetro nombre_de_servicio se explica más adelante en este apartado). Si el resultado obtenido es un fallo de conexión deberemos echar mano del Asistente de configuración de red que nos permitirá crear el nombre_de_servicio que necesitaremos para conectarnos a la base de datos. Los pasos a dar en este asistente son (Oracle 10g):

  • Seleccionar Configuración del nombre del servicio de red local.
  • En el campo Nombre servicio introduciremos el nombre global de la base de datos (es decir, si existe también con dominio).
  • Seleccionar comunicación TCP.
  • En el campo Host introducir el nombre de la máquina servidora o su dirección IP. En el campo Puerto introducir el puerto por el que escucha nuestra base de datos.
  • Realizar la prueba de conexión. Si da problemas es posible que el usuario y contraseña no sean adecuados, por lo tanto habrá que hacer clic en cambiar conexión e introducir un usuario y contraseña adecuado (por ejemplo, ingra)
  • Por último, nos pedirán que introduzcamos el Nombre del servicio (el nombre que propongamos será el que tendremos que utilizar en nuestra futura cadena de conexión o para ejecutar futuros tnsping).

Llegados a este punto sólo nos queda ejecutar la aplicación y especificar la cadena de conexión adecuada para conectarnos. Esto lo realizamos desde el menú Herramientas> Opciones> Servidores.

Hay tres formas de especificar la cadena de conexión:

Como anticipo, si tenemos un cliente Oracle instalado, tendremos un archivo \\cliente\network\admin\TNSnames.ora que contiene los nombres de servicios de red para acceder al servidor oracle. Es un archivo de texto con varias especificaciones como :

# tnsnames.ora Network Configuration File: C:\oracle\product\10.1.0\Db_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

INGRID =
 (DESCRIPTION =
  (ADDRESS_LIST =
   (ADDRESS = (PROTOCOL = TCP)(HOST = Maquina01)(PORT = 1521))
  )
  (CONNECT_DATA =
   (SERVICE_NAME = orcl)
  )
)


1) Método de denominación sencilla:

  • Agregar una nueva conexión mediante un código y una descripción en el panel superior (por ejemplo ORA1 y Oracle 10g).
  • En la pestaña Conexión, seleccionamos en la lista desplegable de Proveedor el proveedor de defecto de Oracle.
  • En el campo Servidor, introducimos como Datasource, el acceso a la Bd con la sintaxis que aparece a la derecha: <host>:<puerto>/<nombre_base_datos> En general, el <nombre_base_datos> puede requerir un dominio DNS al estilo 'nombre.dominio'

2) Método de denominación local utilizando TNSnames:

  • Agregar una nueva conexión mediante un código y una descripción en el panel superior (por ejemplo ORA1 y Oracle 10g).
  • En la pestaña Conexión, seleccionamos en la lista desplegable de Proveedor el proveedor de defecto de Oracle.
  • En el campo Servidor, introducimos el nombre del servicio de red creado, por lo que REQUIERE QUE ESTÉ ESPECIFICADO EN EL TNSnames. Si estuviésemos en la máquina servidora y no hubiese hecho falta crear un nombre de servicio introduciremos el nombre global de la base de datos.

3) Método de denominación local especificando todos los datos en la conexión Ingrid:

  • Agregar una nueva conexión mediante un código y una descripción en el panel superior (por ejemplo ORA1 y Oracle 10g).
  • En la pestaña Conexión, seleccionamos en la lista desplegable de Proveedor el proveedor de defecto de Oracle.
  • En el campo Servidor, introducimos la descripción del nombre_del_servicio_de_red definido en el campo siguiente.
  • En el campo Otros datos, introduciremos la descripción completa del servicio tal como iría en TNSnames, incluyendo el dato DESCRIPTION.

Los datos de Usuario y clave NO conviene introducirlos con la conexión ya que al guardarse, pueden ser descubiertos.

Al terminar hay que activar la conexión que vayamos a usar marcando el conmutador BD Ingrid en la/s que corresponda.

Para pruebas y administradores: Requisitos de configuración del Servidor

Para realizar la instalación de un servidor Oracle hay que tener en cuenta los siguientes puntos:

  • Oracle no se puede instalar en un directorio cuyo camino contenga espacios. Por lo tanto lo normal es instalarlo debajo del directorio raíz.

Después de realizar de manera satisfactoria la instalación tendremos que tener en cuenta las siguientes consideraciones:

  • Si la instalación se realiza en una máquina cuyo sistema operativo sea Windows XP y deseamos conectarnos desde otra máquina cliente al servidor, entonces hay que desactivar el cortafuegos para el puerto que utilice el servico LISTENER que nos conectará con la base de datos oracle (1521, por defecto).
  • El servicio LISTENER lo que hace es asignar a la bases de datos un puerto aleatorio en el que escuchar y este puerto es la información que devuelve el LISTENER al cliente. Con la información del puerto en el que escucha la base de datos, el cliente ya puede conectarse a ella. Como el puerto es aleatorio y estamos utilizando el firewall de windows la comunicación no tendrá existo puesto que este puerto estará bloqueado.
  • Existen varias soluciones para resolver este problema. La más sencilla es añadir la variable de entorno USE_SHARED_SOCKET=TRUE. Esta solución fuerza a compartir el mismo puerto a la base de datos y al LISTENER lo que también nos llevará a tener un peor rendimiento si existe una alta actividad de conexión / desconexión. Otros tipo de soluciones salen del marco de esta ayuda.

Creación de una BD

Como la aplicación no crea bases de datos, éstas han de ser creadas desde las herramientas y asistentes que contiene la instalación servidora de Oracle. Para realizar esta tarea una manera eficiente de hacerlo es utilizar el Asistente de configuración de bases de datos situado en: Inicio> Programas> Oracle-<ORACLE_HOME> > Configuration and Migration Tools> Database Configuration Assistant.

  

<ORACLE_HOME>: Nombre del servidor (ej: OraDb10g_home)

Apertura de una instancia Oracle

Para poder trabajar sobre una instancia de oracle, primero hay que iniciar una serie de servicios y posteriormente abrir la base de datos.

Servicios que han de estar iniciados:

  • OracleService<SID>:  Instancia de oracle para la base de datos en cuestión
  • Oracle<ORACLE_HOME>TNSListener: Requerido para que los clientes se puedan conectar
  • OracleDBConsole<SID>: Capacita a los clientes a conectarse a Enterprise Manager. Este servicio es opcional y sólo hay que activarlo si queremos trabajar con esta herramienta.

Desde la siguiente aplicación podremos iniciar el servicio OracleService<SID>  y opcionalmente abrir (iniciar) la instancia de la base de datos Inicio/Programas/Oracle-<ORACLE_HOME>/Configuration and Migration Tools/Administration Assistant for Windows.

 

<SID>: Nombre de la base de datos (ej: ocrl).

<ORACLE_HOME>: Nombre del servidor (ej: OraDb10g_home).

 

Otras notas generales sobre Oracle:

Los campos binarios de tipo CLOB crean unos índices automáticos cuyo nombre comienza con SYS y acaba en $$.

Por rendimiento, el tablespace donde se crean los índices debe ser distinto al de datos

Proceso de exportación desde una BD en Ms-Jet a Oracle

Concretando, los pasos a seguir para exportar una base de datos ing (JET) a una base de datos Oracle son los siguientes.

1)      Crear base de datos Oracle.

2)      Crear un usuario con role DBA o CREATOR. Hay que tener en cuenta que la asignación de permisos con roles, en vez de permisos directos de creación de tablas, índices, triggers, etc... puede dar problemas con algunos tipos de cadenas de conexión.

3)      Configurar la conexión desde el programa a Oracle.

4)      Abrir la base de datos que deseamos exportar.

5)      Copiar la base de datos utilizando una conexión específica de Oracle. Para ello tendremos que haber definido una conexión de este tipo y tenerla activa.