Inicio > Sistemas > Actualicemos los “Oracle Client”

Actualicemos los “Oracle Client”

¿Vale la pena actualizar los clientes de BBDD Oracle?

La mayoría de empresas que disponen de BBDD Oracle tarde o temprano han abordado un upgrade o migración de sus gestores, es parte del ciclo de vida del producto.

No obstante, estas migraciones o upgrades no siempre coinciden con la actualización de los clientes Oracle que tenemos dispersos por la organización… y esto puede ocasionar problemas.

Un ejemplo es una empresa con una BBDD 10.2.0.4, pero que mantenía algunos clientes en versión 10.2.0.1 (los instalaban y no aplicaban el parche). Todo funcionaba, ciertamente, pero en la BBDD aparecían selects como éstas:

Segun una nota de Oracle estas selects son del propio driver ODBC:

Additional Infomation

——————————-

Query generated from the Oracle ODBC Driver (the rule hints may or may not

exist depending on driver version):

select /*+ RULE */ *

from (select /*+ RULE */ null table_qualifier,

o1.owner table_owner,

o1.object_name table_name,

decode(o1.owner,’SYS’,

decode(o1.object_type,’TABLE’,’SYSTEM TABLE’,’VIEW’,

‘SYSTEM VIEW’, o1.object_type),

‘SYSTEM’,

decode(o1.object_type,’TABLE’,’SYSTEM TABLE’,’VIEW’,

‘SYSTEM VIEW’, o1.object_type),

o1.object_type) table_type,

null remarks

from all_objects o1

where o1.object_type in (‘TABLE’, ‘VIEW’)

union select /*+ RULE */ null table_qualifier,

s.owner table_owner,

s.synonym_name table_name,

‘SYNONYM’ table_type,

null remarks

from all_objects o3,

all_synonyms s

where o3.object_type in (‘TABLE’,’VIEW’)

and s.table_owner = o3.owner

and s.table_name = o3.object_name

union select /*+ RULE */ null table_qualifier,

s1.owner table_owner,

s1.synonym_name table_name,

‘SYNONYM’ table_type,

null remarks

Eran selects que procedían de drivers ODBC, y que realmente no ejecutaba ninguna aplicación sino el propio driver al consultar los objetos visibles para un determinado usuario y sus permisos. En algunos casos la cantidad de recursos usados en cada ejecución de estas selects era de largo superior a la select que realmente lanzaba el usuario!!!

Todo esto quedó solucionado una vez se actualizaron los clientes de BBDD a 10.2.0.4. Al hacerlo, en la configuración de los ODBC’s apareció un nuevo “checkbox”, activado por defecto, que si bien no evitaba que se lanzasen estas selects, sí que eliminaba los “hint” de “RULE”.

Ejemplo de selects ejecutadas con y sin esos hints:

La mitad de tiempo y un orden de magnitud menos al acceder a bloques de memoria…

Pues igual sí que valía la pena actualizar 😉

PD:  En este caso concreto apliqué otro cambio “extra”, según las notas oracle:

Poor Performance On Certain Dictionary Queries After Upgrade To 10g [ID 364822.1]

Selects Against ALL_SYNONYMS Perform Badly on 10g Release 10.2 [ID 377037.1]

El problema también podía venir por ahí, por tanto aplique los cambios indicados en la segunda nota, consistentes en:

1-      Crear una vista “ALL_SYNONYMS_92” en el esquema de SYS con el código de la “ALL_SYNONYMS” de una 9.2

2-      Crear sinónimos privados “ALL_SYNONYMS” a ciertos usuarios apuntando a la “ALL_SYNONYMS_92”

3-      Dar GRANT de SELECT sobre la “ALL_SYNONYMS_92” a estos usuarios (ojo que este paso se lo han saltado en la nota).

Saludos!

Categorías:Sistemas Etiquetas: , ,
  1. samuel
    julio 22, 2010 en 05:26

    Hola amigo; eso justamente era lo que me temía en mi aplicación cuando proceso grandes cantidades de data, me sale errores producto del Oracle; revisando tengo el driver 10.2.0.1 y quiero parcharlo a la 10.2.0.4 ; porfavor podrías indicarme como se hace esto porque e buscado en la web y no encuentro la forma de parcharlo..
    tengo servidor windows 2003 y estacion xp sp3.
    Gracias.

    • rafael.planella
      julio 24, 2010 en 01:19

      Hola,

      Deberias parchear tanto el propio gestor (si no lo esta ya) como el cliente con el parche 10.2.0.5 (si es 32bit) o 10.2.0.4 (si es 64bit). Los parches los debes bajar de la web support.oracle.com (antigua metalink.oracle.com) requiere disponer de un contrato de mantenimiento en vigor para poder acceder.

      Instalar el parche en el cliente es relativamente facil, basta con detener/poner en manual todos los programas/servicios que puedan usar el cliente, reiniciar el PC y ejecutar el instalador que viene con el parche. Es muy comun que el instalador “seleccione” un Oracle Home (directorio de instalación) incorrecto, es el unico punto de la instalacion en el que deberemos estar atentos y cambiarlo por el que corresponda.

      Parchear el gestor es mas complejo, es posible que sea necesario realizar pasos previos a la actualización de binarios y una vez parcheados estos tendremos que arrancar al BBDD en modo upgrade y aplicar ciertos scripts (que variaran dependiendo de los productos instalados con la BBDD).

      Puede implicar cambio de comportamiento en algunas selects y tendriamos que confirmar con los proveedores de las aplicaciones que el parche esta soportado.

      Saludos.

  2. kes
    abril 7, 2014 en 16:29

    Como puedo saber hasta que parche tiene instalado mis clientes de oracle que ejecutan la aplicación en sus pc’s?

    • Rafael Planella
      abril 15, 2014 en 22:00

      Hola,

      La opción más simple consiste en arrancar el instalador gráfico de oracle (el mismo usado durante la instalación del cliente) y en el podremos ver los detalles de la versión instalada.

      Dependiendo de si disponéis del cliente completo y de su versión encontraras un ejecutable llamado “opatch” en el subdirectorio OPatch del ORACLE_HOME, con el comando “opatch lsinventory” te mostrará las versiones de los componentes.

      Saludos,

      Rafael

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: