miércoles, 7 de marzo de 2012

Analizar las opciones instaladas de Oracle para licenciarlas


Oracle LMS es el servicio de Oracle de Licenciamiento, en este articulo vamos a tratar el análisis por parte de Oracle de la instalación de la herramienta de monitorización  del uso de las bases de datos Oracle y tablas FND de Oracle Applications.

Como parte de un estudio global de los productos Oracle instalados, se analizan las bases de datos instaladas de los clientes que utilizan Oracle. La metodología para el estudio de las opciones que trabajan en la base de datos consiste en la instalación de unos scripts de SQL que toman instantáneas de algunas tablas del diccionario de datos de cada instancia. La herramienta de monitorización  (Le Menu) no representa carga extra para el servidor ni la red, y solo requiere de la creación de un usuario a nivel de las bases de datos que se va a encargar de la toma de estadísticas por un periodo de tiempo dos semanas!!

Cuando se analizan Oracle Enterprise Business Suite (Oracle General Ledger, Oracle Payables,  Oracle Inventory, etc.), las mismas aplicaciones tienen predefinidas tablas que permiten analizar su utilización (tablas FND), y se hace uso adicional de un par de consultas.

Las tablas y la información que se compila son del tenor siguiente:
  • V$SESSION Sesiones Concurrentes/ Dispositivos Concurrentes
  • V$LICENSE Información concurrente histórica por base de datos
  • V$OPTION Información sobre opciones instaladas
  • V$VERSION Información sobre la versión de la base de datos
  • DBA_USERS Userids, o información de cuentas de usuarios. No se acceden passwords.
Para el caso de Oracle Applications, se solicitan las siguientes tablas:
  • fnd_logins
  • fnd_login_responsibilities
  • fnd_user
  • fnd_user_responsibility ó fnd user_resp_groups
  • fnd_application
  • fnd_application_tl (sólo release rel11)
Este script nos puede dar una idea de lo que tenemos en nuestra infraestructura Oracle:

spool $ORACLE_HOME\options.txt
--Numero de procesadores instalados
set linesize 2000
select * from v$license;
--Database edition iinstalada
select banner from v$version;
--Oracle Partitioning instalado?
select decode(count(*), 0, 'No', 'Yes') Partitioning
from ( select 1 
       from dba_part_tables
       where owner not in ('SYSMAN', 'SH', 'SYS', 'SYSTEM')
         and rownum = 1 );
--Oracle Spatial instalado?
select decode(count(*), 0, 'No', 'Yes') Spatial
from ( select 1
       from all_sdo_geom_metadata 
       where rownum = 1 );
--Oracle RAC instalado?
select decode(count(*), 0, 'No', 'Yes') RAC
from ( select 1 
       from v$active_instances 
       where rownum = 1 );
 
-- Opciones instaladas para versiones 9i
Col name  format a50 heading "Option"
Col value format a5  heading "?" justify center wrap
Break on value dup skip 1
Select parameter name, value
from v$option 
order by 2 desc, 1
/
--Características usadas desde la versión 10g
Set feedback off
Set linesize 122
Col name             format a45 heading "Característica"
Col version          format a10 heading "Version"
Col detected_usages  format 999,990 heading "Detectada|usos"
Col currently_used   format a06 heading "esta siendo usada?"
Col first_usage_date format a10 heading "Primer uso"
Col last_usage_date  format a10 heading "Ultimo uso"
Col nop noprint
Break on nop skip 1 on name
Select decode(detected_usages,0,2,1) nop,
name, version, detected_usages, currently_used,
to_char(first_usage_date,'DD/MM/YYYY') first_usage_date, 
to_char(last_usage_date,'DD/MM/YYYY') last_usage_date
from dba_feature_usage_statistics
order by nop, 1, 2
/
spool off