Category: Oracle11gR2
Utilizando las métricas de Oracle para generar gráficos
Siempre existe la necesidad de mostrar información de manera gráfica, bien lo dice el dicho "Un dibujo vale más que mil palabras" , por ende , mostrar nu gráfico de comportamiento de algún componente de nuestra base de datos, se agradece mucho más que mostrar información de forma plana.
Para ello nos centraremos en la actividad de las vistas relacionadas a las métricas, disponibles desde Oracle10gr1 en adelante

La vista V$SYSMETRIC muestra la métrica de sistema capturada en un intervalo de 15 y 60 segundos , algunos datos importantes en esta vista
V$SYSMETRIC.BEGIN_TIME : Fecha de inicio del intervalo
V$SYSMETRIC.END_TIME : Fecha de término del intervalo
V$SYSMETRIC.INTSIZE_CSEC : Centésimas de segundo en el intervalo
V$SYSMETRIC.METRIC_NAME : Nombre de la métrica
V$SYSMETRIC.VALUE : Valor de la métrica
V$SYSMETRIC.METRIC_UNIT : Descripción de la unidad de medida, en otras palabras , como se calcula el valor de la métrica
La gracia principal de esto es que podemos capturar información de mucha utilidad y generar gráficos "para el jefe" , ¿cómo así? , pues bien ... analicemos un dato que es extremadamente importante y aparece en todos lugares , el Buffer Cache Hit Ratio
Con esta consulta sobre la V$SYSMETRIC podemos consultar el hit ratio del database buffer cache
SQL> r
1 select to_char(BEGIN_TIME,'dd-mm-yyyy hh24:mi:ss') "Fecha Inicio" ,
2 to_char(END_TIME,'dd-mm-yyyy hh24:mi:ss') "Fecha Termino" ,
3 INTSIZE_CSEC ,
4 GROUP_ID ,
5 METRIC_ID ,
6 METRIC_NAME ,
7 VALUE ,
8 METRIC_UNIT
9 from v$sysmetric
10* where metric_name like '%Buffer Cache Hit Ratio%'
Y podríamos recopilar información como la que sigue
Fecha Inicio Fecha Termino INTSIZE_CSEC GROUP_ID METRIC_ID METRIC_NAME VALUE METRIC_UNIT
------------------- ------------------- ------------ ---------- ---------- ------------------------- ------- ----------------------------------------
11-11-2009 20:11:15 11-11-2009 20:12:15 6000 2 2000 Buffer Cache Hit Ratio 100.00 % (LogRead - PhyRead)/LogRead
11-11-2009 20:12:45 11-11-2009 20:13:00 1500 3 2000 Buffer Cache Hit Ratio 100.00 % (LogRead - PhyRead)/LogRead
El problema principal (si se le puede llamar problema) es que sólo muestra 2 puntos y con eso, claramente no sabremos la tendencia de nuestra base de datos , por ende necesitamos más puntos, ¿de dónde obtenerlos?, pues del historial de esa vista , la V$SYSMETRIC_HISTORY
1 select to_char(BEGIN_TIME,'dd-mm-yyyy hh24:mi:ss') "Fecha Inicio" ,
2 to_char(END_TIME,'dd-mm-yyyy hh24:mi:ss') "Fecha Termino" ,
3 INTSIZE_CSEC ,
4 GROUP_ID ,
5 METRIC_ID ,
6 METRIC_NAME ,
7 VALUE ,
8 METRIC_UNIT
9 from v$sysmetric_history
10 where metric_name like '%Buffer Cache Hit Ratio%'
11* order by 1
Acá nos muestra la última hora de las métricas que necesitamos visualizar , lo cual ya se puede sentir como algo más elaborado , o sea, "les presentamos el comportamiento del Database Buffer Cache durante la última hora" , suena bien , está vista nos entrega información de la última hora con un total de registros de 74
Y si queremos tener una curva algo más prolongada, quizás, el último mes del Database Buffer Cache, pues allí debemos consultar la vista DBA_HIST_SYSMETRIC_HISTORY
La información viaja así ...... después de una hora en memoria en las vistas V$SYSMETRIC y V$SYSMETRIC_HISTORY , el proceso Background MMON descarga la información de estás vistas al diccionario de datos , esa información la encontramos en la vista DBA_HIST_SYSMETRIC_HISTORY
Si piensan un poco , lo anterior es lo que sucede cuando el MMON captura la información estadística desde la SGA , o sea, son los Snapshots del AWR , entre más Snapshots existan , la curva puede ser más amplia cuando analicemos información estadística, que interesante!!!
La forma en que pueden realizar los gráficos mediante la información proveniente de estas tablas, la pueden encontrar muy detallada, paso a paso en el siguiente artículo
![]()
![]()
Graficar en Excel información proveniente desde Statspack![]()
![]()
![]()
Hay que extrapolar un poco , la información en este caso no viene del Statspack , proviene de las vistas de Oracle, pero para el caso, es aplicable 500%
¿Qué otra información es útil como métrica?
La verdad muchas otras, como por ejemplo
* CPU Usage Per Sec
* Disk Sort Per Sec
* Host CPU Utilization (%)
* Leaf Node Splits Per Sec
* Library Cache Hit Ratio
* Memory Sorts Ratio
* PGA Cache Hit %
* Physical Reads Per Sec
* Redo Generated Per Sec
* Soft Parse Ratio
* Etc,etc.
La información está , es llegar y graficar 
Mayor descripción de la vista V$SYSMETRIC
De la vista V$SYSMETRIC_HISTORY
Y de la vista DBA_HIST_SYSMETRIC_HISTORY
Espero que les sirva
![]()
![]()
20.01.10. 16:40:17. 770 words, 1047 views. Categories: Oracle 11g, Oracle 10g, Tuning / Performance, Oracle11gR2 , Leave a comment » • Send a trackback »
Oracle11gr1 y Oracle11gr2 : Ha ocurrido un error , ¿Dónde están los logs y traces?
Imagínense el siguiente error
[oracle@SQL]$ sqlplus usuario/password
SQL*Plus: Release 11.2.0.1.0 Production on Thu Dec 10 20:58:22 2009
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> start file
select COUNT(*)
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
Process ID: 887
Session ID: 134 Serial number: 162SQL>

Tratamos de hacer un trace, se cae, tratamos de generar un evento de traceo , se cae y así , por siempre y para siempre..
Lo mejor es abrir un caso en Oracle, ellos debiesen solucionarlo
(no siempre es así, pero les tengo fé)
Y cuando vamos al ORACLE_BASE, nos damos cuenta
de que no existe, claro estamos en 11gr2 
Nos colocamos el machete en la boca y nos metemos a los directorios de log y trace (llamado diag) y nos encontramos con muchos de ellos
[oracle@SQL]$ ls -ltr
total 136
drwxr-x--- 2 oracle oinstall 4096 Nov 6 00:17 hm
drwxr-x--- 2 oracle oinstall 4096 Nov 6 00:17 alert
drwxr-x--- 2 oracle oinstall 4096 Dec 10 20:37 metadata
drwxr-x--- 2 oracle oinstall 4096 Dec 10 20:37 ir
drwxr-x--- 4 oracle oinstall 4096 Dec 10 20:58 incident
drwxr-x--- 8 oracle oinstall 12288 Dec 10 20:58 cdump
drwxr-x--- 2 oracle oinstall 4096 Dec 10 20:58 sweep
drwxr-x--- 2 oracle oinstall 20480 Dec 10 20:58 stage
drwxr-x--- 2 oracle oinstall 4096 Dec 10 20:58 lck
drwxr-x--- 4 oracle oinstall 4096 Dec 10 21:09 incpkg
drwxr-x--- 4 oracle oinstall 69632 Dec 10 21:20 trace
[oracle@SQL]$ pwd
/u01/app/oracle/diag/rdbms/inst1/inst1
[oracle@SQL]$
Es ahora donde nos entra la desesperación y nos preguntamos ¿Qué #$"°| le envíamos a Oracle?
Pues bien , allí es donde ingresa el ADRCI, el utilitario para hacernos la vida más fácil con la nueva estructura de diagnóstico que nos provee Oracle
He aquí un pequeño ejercicio
1.- Nos conectamos al adrci
[oracle@SQL]$ adrci
ADRCI: Release 11.2.0.1.0 - Production on Thu Dec 10 21:03:05 2009
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
ADR base = "/u01/app/oracle"
adrci>
2.- Verificamos los ORACLE_HOME existente (son mas de 1 ya que estamos trabajando con el DIAG)
adrci> show homes
ADR Homes:
diag/tnslsnr/maq1/listener
diag/rdbms/inst1/inst1
adrci>
3.- Para poder trabajar con el adrci, se debe por obligación seleccionar uno de estos ORACLE HOMES
adrci> set homepath diag/rdbms/inst1/inst1
adrci>
adrci> show homes
ADR Homes:
diag/rdbms/inst1/inst1
adrci>
4.- Una vez seleccionado nuestro ORACLE_HOME, procedemos a ver los "problemas" e "incidentes"
Sólo como introducción , pues generaré un post al respecto, un problema genera múltiples incidentes y un problema es casi siempre crítico, o sea, solucionando el problema se acaban los incidentes (suena a ITIL
)
adrci> show problem
ADR Home = /u01/app/oracle/diag/rdbms/inst1/inst1:
*************************************************************************
PROBLEM_ID PROBLEM_KEY LAST_INCIDENT LASTINC_TIME
-------------------- ----------------------------------------------------------- -------------------- ----------------------------------------
1 ORA 7445 [_intel_fast_memcmp()+30] 275 2009-12-10 20:58:26.261000 -03:00
1 rows fetched
5.- Aparece claramente el problema, un error ORA-07445, ahora queremos ver los incidentes que ha originado ese problema
adrci> show incident
ADR Home = /u01/app/oracle/diag/rdbms/inst1/inst1:
*************************************************************************
INCIDENT_ID PROBLEM_KEY CREATE_TIME
-------------------- ----------------------------------------------------------- ----------------------------------------
251 ORA 7445 [_intel_fast_memcmp()+30] 2009-12-10 20:41:07.496000 -03:00
275 ORA 7445 [_intel_fast_memcmp()+30] 2009-12-10 20:58:26.261000 -03:00
2 rows fetchedadrci>
Como se puede apreciar, ha generado varios incidentes , pero sólo necesitamos uno de ellos como para comenzar a procesar la información y poder "empaquetar" todos los archivos necesarios.
6.- Para ello , tomamos el INCIDENT_ID que necesitamos y ejecutamos el siguiente comando
adrci> ips pack incident 275 in /home/oracle
Generated package 2 in file /home/oracle/ORA7445_i_20091210210936_COM_1.zip, mode complete
adrci>
7.- Una vez ejecutado el comando , tenemos un zip con TODA LA INFORMACIÓN necesaria para soporte Oracle y casi ... no nos despeinamos ![]()
Más información del ADRCI
Espero les sirva...
![]()
![]()
14.12.09. 07:39:59. 610 words, 609 views. Categories: Oracle 11g, Tuning / Performance, Oracle11gR2 , Leave a comment » • Send a trackback »
Oracle 11gr2: Nuevas características (New Features Oracle 11gr2)
Bueno , ya se habrán dado cuenta que Oracle lanzo su release 2 de 11g , o sea, Oracle11gr2 obvio.
Pincha el link para saber de la noticia
En este release vienen muchas mejoras, algunas de las cuales son sencillamente magníficas y otras mmmm no tanto

En este resumen (sacado integramente de las New Features de Oracle11gr2) les quiero mostrar cuales son las más útiles y agradables a la vista.
Así que... a luchar por la justicia!!

BACKUP and RECOVERY
Automatic Block Repair : Desde Oracle11gr2 en adelante los bloques se recuperarán de forma automática (en ambientes Standby) desde la Standby hacía la primaria y desde la primaria hacía la StandBy , de acuerdo a quien tenga el bloque corrupto.
Lo anterior es de forma automática, además el comando RECOVER BLOCK de RMAN se amplio para que se pueda obtener desde in ambiente de StandBy el bloque no corrupto.
Comando DUPLICATE de una base de datos , pero sin conección a la base de datos
Desde ahora en adelante no es necesario conectarse a una base de datos target para generar una copia de ella, así tal cual lo digo, sólo es obligación conectarse al CATALOGO y claro a la AUXILIAR, el CATALOGO es obligatorio , pues desde el CONTROLFILE allí existente es donde se obtienen las rutas de los datafiles a copiar.
Mejoras en el TSPITR (Tablespace Point-In-Time Recovery)
Podremos recuperar una tabla en el tiempo, claro , esto no se diferencia de versiones anteriores , la gracia en Oracle11gr2 es que esa tabla puede ser que este borrada en la target , Oracle igual podrá recuperarla
El comando DUPLICATE viene con mas opciones y mejoras
Por ejemplo estamos haciendo un DUPLICATE de una base de datos target, pero no nos hemos conectado a ella, para ello , se le agregan opciones por ejemplo de NOREDO, pues como no tenemos conexión , simplemente no va a buscar datos para recuperar la BD de destino.
Claúsula SET NEWNAME
Ahora se puede hacer SET NEWNAME no solamente a un datafile, sino que a un tablespace completo (todos sus datafiles) , y mejor aún , a todos los archivos de nuestra base de datosSET NEWNAME FOR TABLESPACE nombre_tablespace TO ruta;
SET NEWNAME FOR DATABASE TO ruta;
Nuevo HINT para evitar los DUP_VAL_ON_INDEX
Ahora Oracle nos sorprende con un HINT que de seguro será muy útil, cuando hacemos un INSERT SELECT sobre una tabla con PK, nadie nos dice que no aparecerá el error de LLAVES DUPLICADAS, cuando se usa el hint IGNORE_ROW_ON_DUPKEY_INDEX .Esto hará que el INSERT funciono si o si, pero también hará que sean un poco mas lentos los procesos, usar con cuidado
PARA DETALLES click en el LINK
Aumento de bases de datos STANDBY
De 9 posibles StandBy Oracle salto a 30 posibles StandBy, ¿es cómo harta seguridad, o no?
Bussiness Inteligent (BI)
Se agregan nuevas funciones analíticas, como por ejemplo
LISTTAG : Que permite al desarrollador mostrar los datos de una tabla, pero hacía el lado, concatenados, que genial!
NHT_VALUE : Si les pido el 5 valor de una serie ordenada, ¿cómo lo harían? , pues Oracle nos facilito eso, dandonos esta función , que simplemente recibe un valor y busca el número X que le ingresamos.
Cluster
Servidor NTP
Si al momento de instalar el RAC necesitabamos en la mayoría de los casos un servidor NTP para sincronizar horas (todos sabemos que está sincronización la hacemos a manos), ahora Oracle RAC 11gr2 viene con un seudo NTP llamado Cluster Time Service , el cual no cambia ni proporciona el servicio NTP en sí, lo único que hace es la conexión al NTP
Por lo menos , ya sabemos que cosa modificar jajaja
OCR
Se aumentan la cantidad de copias de OCR que puedo tener, antes eran 3 ahora.... 5
Y lo mejor de todo ahora el archivo OCR SE PUEDE GUARDAR EN ASM (AUTOMATIC STORAGE MANAGEMENT) , así de fuerte!!!!!!! , ya no necesitamos manejadores de Filesystem en cluster, del tipo HACMP , GPFS , OCFS2, etc...
Oracle Restart
Pues bien, podremos utilizar el comando SRVCTL para determinar si nuestra base de datos puede hacer un restart automático, aquellos que no han ocupado este comando porque tienen StandAlone, deberán acostumbrarse
Parches en caliente
Ahora sí que los parches pueden ser aplicados en caliente jajaja , lo mismo escuche en Oracle11gr1 , pero bueno..
Eliminación de ClusterWare con el desinstalador
¿Recuerdan los engorrosos pasos para eliminar una instalación de RAC en Oracle10g?, pues bien , eso mismo lo hace ahora, sin problemas, de forma limpia y rápida el desinstalador de Oracle
Puntos de falla en la instalación
Si comenzamos la instalación con el OUI de algún componente del ClusterWare y este falla, debiamos ser entre magos y payasos para poder continuar,no sin antes , eliminar 45.000 archivos y carpetas, pues bien ahora el OUI puede eliminar hasta un punto en partícular, para poder continuar con la instalación (eso dice Oracle, habría que probar, probar y probar)
SRVCTL para bases de datos StandAlone
Desde ahora en adelante , con el comando SRVCTL podemos colocar en el Cluster nuestra base de datos StandAlone, y con ellos CLusterWare la baja sube, maneja y mantiene
A nivel de Base de datos
FlashBack Data Archive
Ahora soporta DDL, que bien!! , si en Oracle11gr1 se permitía consultar una tabla en el tiempo (quizás años atrás), ahora se puede hacer lo mismo, y mejor aún , no importando si se le ha aplicado una sentencia DDL, como por ejemplo un borrado de la tabla, un renombre un truncado , etc.
Mejoras al Scheduler
El scheduler desde ahora soporta ingreso de correo, por ende, podremos enviar notificaciones una vez finalizado el Job, entre otras características
Mejoras a los datapump
Y pensar que exp/imp estaba casi muerto, pues bien, ahora Oracle ya lo mato, ¿cómo así? , Export e Import Datapump soportan todos los scripts de Exp/Imp antiguos, o sea, no hay desgaste convirtiendo
Claúsula PREPROCESSOR
Es una nueva claúsula para las tablas externas , lo potente de esto es que esta nueva claúsula es capaz de por ejemplo descomprimir un archivo plano y presentarselo descomprimido a la tabla externa, o sea, no más problemas con archivos planos gigantes![]()
PARA DETALLES click en el LINK
Seguridad
Audit Trail Cleanup
Oracle ha creado el Audit Trail Cleanup, ¿qué es eso? , pues de ahora en adelante tenemos solucionados muchos problemas del audit, por ejemplo
1) Que podemos automatizar el período de borrado de nuestros registros de auditoría
2) Podemos controlar el tamaño de nuestra tabla de auditoría , y así mismo controlar la antiguedad de nuestros registros , que maravilloso :')
3) Esta herramienta nos proporciona una forma (soportada por Oracle) para mover nuestra tabla SYS.AUD$ a un tablespace distinto
Manejo del Servidor
ASM para todos
SIIII , desde ahora en adelante ASM es capaz de soportar todo tipo de archivos, no solamente Oracle, que tal?
ASM Storage Management Configuration Assistant
Esta versión permite configurar, monitorear, y manejar los discos a través de una interfaz gráfica , será bueno
Extensión del ASMCMD
Este utilitario que en Oracle11gr1 ya venía con un comando poderoso (cp para copiar desde ASM hacía Filesystem) , ahora viene con mas comandos por ejemplo, para el manejo de los discos de ASM, los diskgroups de ASM y la instancia misma de ASM.
Database Control para aplicar parches en RAC
Así tal cual, el database control desde Oracle11gr2 , puede aplicar parches en RAC, la verdad... yo no lo haría... :S
Creación de Segmentos pero sin espacio
Suena raro, pero así como los tempfiles generan un archivo físico pequeño en un primer instante y sólo cuando se usan van creaciendo , ahora podemos crear segmentos (tablas e índices por ejemplo) que no creen storage a menos que se use (una vez usados , obviamente la HWM sube) , que genial!!!!
Mejoras a los índices UNUSABLES
Esto si que es genial!!! , el porque? pues cuando un índice se crea como UNUSABLE, Oracle no genera espacio para ese segmento, pero si el índice ya fue generado de forma normal y se altera para dejarlo en estado UNUSABLE, el índice sigue utilizando bloques, esto podría ser una mejora en Oracle12g , o sea, dejar un índice UNUSABLE y que este inmediatamente libere su espacio, sería genial!!![]()
PARA DETALLES click en el LINK
ASH en DataGuard
El famoso, y poco utilizado ASH (Active Session History) desde ahora también disponible para Data Guard
Otras varias...
Installation Fixup Scripts
El instalador siempre nos decía "Problemas con el checklist inicial , modifique semáforos(es una traducción no literal
) , y siempre debíamos modificar por ejemplo el sysconf.ctl a mano , pues desde Oracle11gr2 en adelante esto se automatizo
PARA DETALLES click en el LINK
Herramienta de desinstalación
Desde ahora en adelante una herramienta creada integramente para desinstalar otras
PARA DETALLES click en el LINK
Y un montón de otras características, algunas aplicables, otras no tanto...
Trataré de ir colocando ejemplos y How-to de cada una de ellas, esto se viene bueno señores ![]()
Espero NOS sirva a todos
![]()
![]()
01.09.09. 20:04:56. 1564 words, 3386 views. Categories: Base de datos, Oracle11gR2 , Leave a comment » • Send a trackback »
Oracle 11gr2 : Tool deinstall
Si quieres desinstalar algo en Oracle , casi siempre esta a mano el OUI , cierto?
Con su interfaz gráfica y que de verdad ayuda bastante, pero como la idea de Oracle es que te quedes obsoleto lo antes posible, en la versión Oracle11gr2 lanzo al mercado una tool para realizar las desinstalaciones de productos Oracle, esta tool simplemente se llama deinstall
, obvio, y dentro del OUI ya no aparece el "Uninstalled Products"
La acabo de usar , y por su interfaz no gráfica, me da la idea de que es mucho más segura que el OUI, además desinstala los productos aunque se hayan instalado mal. Y un dato no menor, cuando se desinstalan productos Oracle con el deinstall, si hay ASM de por medio, también resetea la cabecera de los discos para que queden como PROVISIONED en la siguiente instalación y no tener que hacer a mano un comando dd.
Se baja este utilitario desde la siguiente URL
http://www.oracle.com/technology/software/products/database/oracle11g/112010_linx8664soft.html
Y se llama
Oracle De-install Utility (11.2.0.1.0) for Linux x86-64 (existe también para 32 bits)
He aquí un ejemplo para ambiente RAC
- Se baja el utilitario , se descomprime el archivo
- Se ejecuta el desinstalador, indicandole el ORACLE_HOME que deseamos remover
[oracle@oracle11gnodo1 instaladores]$ cd deinstall/
[oracle@oracle11gnodo1 deinstall]$ ls -ltr
total 216
-r-xr-xr-x 1 oracle oinstall 31544 Apr 1 01:24 sshUserSetup.sh
-r--r--r-- 1 oracle oinstall 3154 Jul 13 08:01 deinstall.xml
-r-xr-xr-x 1 oracle oinstall 20670 Jul 13 08:26 deinstall
-rw-r--r-- 1 oracle oinstall 382 Aug 4 18:16 readme.txt
drwxr-xr-x 7 oracle oinstall 4096 Aug 13 05:46 jre
drwxr-xr-x 2 oracle oinstall 4096 Aug 14 01:35 utl
drwxr-xr-x 2 oracle oinstall 4096 Aug 14 01:35 response
drwxr-xr-x 2 oracle oinstall 4096 Aug 14 01:35 logs
drwxr-xr-x 2 oracle oinstall 4096 Aug 14 01:50 mapfiles
drwxrwxr-x 4 oracle oinstall 4096 Aug 14 01:53 sysman
drwxrwxr-x 3 oracle oinstall 4096 Aug 14 01:53 srvm
drwxrwxr-x 8 oracle oinstall 4096 Aug 14 01:53 perl
drwxrwxr-x 7 oracle oinstall 4096 Aug 14 01:53 oui
drwxr-xr-x 3 oracle oinstall 4096 Aug 14 01:53 lib
drwxr-xr-x 2 oracle oinstall 4096 Aug 14 01:53 jlib
drwxrwxr-x 3 oracle oinstall 4096 Aug 14 01:53 diagnostics
drwxrwxr-x 2 oracle oinstall 4096 Aug 14 01:53 dc_ocm
drwxrwxr-x 3 oracle oinstall 4096 Aug 14 01:53 cv
drwxrwxr-x 3 oracle oinstall 4096 Aug 14 01:53 crs
drwxrwxr-x 2 oracle oinstall 4096 Aug 14 01:53 bin
drwxrwxr-x 4 oracle oinstall 4096 Aug 14 01:53 assistants
[oracle@oracle11gnodo1 deinstall]$ ./deinstall -home /u01/app/11.2.0/grid
ORACLE_HOME = /u01/app/11.2.0/grid
Location of logs /home/oracle/oraInventory/logs/############ ORACLE DEINSTALL & DECONFIG TOOL START ############
######################## CHECK OPERATION START ########################
Install check configuration STARTChecking for existence of the Oracle home location /u01/app/11.2.0/grid
Oracle Home type selected for de-install is: CRS
Oracle Base selected for de-install is: /u01/app/oracle
Checking for existence of central inventory location /home/oracle/oraInventory
Checking for existence of the Oracle Grid Infrastructure home /u01/app/11.2.0/grid
The following nodes are part of this cluster: oracle11gnodo1,oracle11gnodo2Install check configuration END
Traces log file: /home/oracle/oraInventory/logs//crsdc.log
- Ahora comienza la serie de preguntitas, relacionadas con las IP Virtuales, físicas y el formato de la máscara.
Enter an address or the name of the virtual IP used on node "oracle11gnodo1"[oracle11gnodo1-vip]
The following information can be collected by running ifconfig -a on node "oracle11gnodo1"
Enter the IP netmask of Virtual IP "192.168.239.131" on node "oracle11gnodo1"[255.255.255.0]
192.168.239.129Enter the network interface name on which the virtual IP address "192.168.239.131" is active
eth0Enter an address or the name of the virtual IP used on node "oracle11gnodo2"[oracle11gnodo2-vip]
The following information can be collected by running ifconfig -a on node "oracle11gnodo2"
Enter the IP netmask of Virtual IP "192.168.239.132" on node "oracle11gnodo2"[192.168.239.129]
192.168.239.130Enter the network interface name on which the virtual IP address "192.168.239.132" is active[eth0]
Enter an address or the name of the virtual IP[]
192.168.239.131The following information can be collected by running ifconfig -a on node "oracle11gnodo1"
Enter the IP netmask of the virtual IP "192.168.239.131"[]
255.255.255.0Enter the network interface name on which the virtual IP address "192.168.239.131" is active
eth0Enter an address or the name of the virtual IP[]
192.168.239.131The following information can be collected by running ifconfig -a on node "oracle11gnodo1"
Enter the IP netmask of the virtual IP "192.168.239.131"[255.255.255.0]Enter the network interface name on which the virtual IP address "192.168.239.131" is active[eth0]
Enter an address or the name of the virtual IP
- Una vez ingresados todos los datos, comienza realmente la desinstalación
Network Configuration check config START
Network de-configuration trace file location: /home/oracle/oraInventory/logs/netdc_check32554.log
Network Configuration check config END
Asm Check Configuration START
ASM de-configuration trace file location: /home/oracle/oraInventory/logs/asmcadc_check32555.log
ASM configuration was not detected in this Oracle home. Was ASM configured in this Oracle home (y|n) [n]: y
Specify the ASM Diagnostic Destination [ ]:
Specify the diskgroups that are managed by this ASM instance []: DATA1De-configuring ASM will drop all the diskgroups at cleanup time. Do you want deconfig tool to drop the diskgroups y|n [y]:
######################### CHECK OPERATION END #########################
####################### CHECK OPERATION SUMMARY #######################
Oracle Grid Infrastructure Home is: /u01/app/11.2.0/grid
The cluster node(s) on which the Oracle home exists are: (Please input nodes seperated by ",", eg: node1,node2,...)oracle11gnodo1,oracle11gnodo2
Oracle Home selected for de-install is: /u01/app/11.2.0/grid
Inventory Location where the Oracle home registered is: /home/oracle/oraInventory
ASM instance will be de-configured from this Oracle home
Do you want to continue (y - yes, n - no)? [n]: y
A log of this session will be written to: '/home/oracle/oraInventory/logs/deinstall_deconfig2009-09-21_02-57-31-PM.out'
Any error messages from this session will be written to: '/home/oracle/oraInventory/logs/deinstall_deconfig2009-09-21_02-57-31-PM.err'######################## CLEAN OPERATION START ########################
ASM de-configuration trace file location: /home/oracle/oraInventory/logs/asmcadc_clean32556.log
ASM Clean Configuration START
ASM Clean Configuration ENDNetwork Configuration clean config START
Network de-configuration trace file location: /home/oracle/oraInventory/logs/netdc_clean32557.log
De-configuring Naming Methods configuration file on all nodes...
Naming Methods configuration file de-configured successfully.De-configuring Local Net Service Names configuration file on all nodes...
Local Net Service Names configuration file de-configured successfully.De-configuring Directory Usage configuration file on all nodes...
Directory Usage configuration file de-configured successfully.De-configuring backup files on all nodes...
Backup files de-configured successfully.The network configuration has been cleaned up successfully.
Network Configuration clean config END
- Una vez pasado lo anterior, indica que debemos ejecutar ciertos comandos con root en cada uno de los nodos.
---------------------------------------->
Run the following command as the root user or the administrator on node "oracle11gnodo2".
/home/oracle/instaladores/deinstall/perl/bin/perl -I/home/oracle/instaladores/deinstall/perl/lib -I/home/oracle/instaladores/deinstall/crs/install /home/oracle/instaladores/deinstall/crs/install/rootcrs.pl -force -delete -paramfile /home/oracle/instaladores/deinstall/response/deinstall_Ora11g_gridinfrahome2.rsp
Run the following command as the root user or the administrator on node "oracle11gnodo1".
/home/oracle/instaladores/deinstall/perl/bin/perl -I/home/oracle/instaladores/deinstall/perl/lib -I/home/oracle/instaladores/deinstall/crs/install /home/oracle/instaladores/deinstall/crs/install/rootcrs.pl -force -delete -paramfile /home/oracle/instaladores/deinstall/response/deinstall_Ora11g_gridinfrahome2.rsp -lastnode
- Ejecutamos esos comandos en cada uno de los nodos del RAC con usuario root, y el desinstalador simplemente remueve y aquellos procesos que no puede eliminar, los deja para el reboteo.
[oracle@oracle11gnodo2 ~]$ su - root
Password:
[root@oracle11gnodo2 ~]# /home/oracle/instaladores/deinstall/perl/bin/perl -I/home/oracle/instaladores/deinstall/perl/lib -I/home/oracle/instaladores/deinstall/crs/install /home/oracle/instaladores/deinstall/crs/install/rootcrs.pl -force -delete -paramfile /home/oracle/instaladores/deinstall/response/deinstall_Ora11g_gridinfrahome2.rsp
2009-09-21 15:05:48: Parsing the host name
2009-09-21 15:05:48: Checking for super user privileges
2009-09-21 15:05:48: User has super user privileges
Using configuration parameter file: /home/oracle/instaladores/deinstall/response/deinstall_Ora11g_gridinfrahome2.rsp
PRCR-1035 : Failed to look up CRS resource ora.cluster_vip.type for 1
PRCR-1068 : Failed to query resources
Cannot communicate with crsd
PRCR-1070 : Failed to check if resource ora.gsd is registered
Cannot communicate with crsd
PRCR-1070 : Failed to check if resource ora.ons is registered
Cannot communicate with crsd
PRCR-1070 : Failed to check if resource ora.eons is registered
Cannot communicate with crsdADVM/ACFS is not supported on Redhat 4
ACFS-9201: Not Supported
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'oracle11gnodo2'
CRS-2673: Attempting to stop 'ora.crsd' on 'oracle11gnodo2'
CRS-4548: Unable to connect to CRSD
CRS-2675: Stop of 'ora.crsd' on 'oracle11gnodo2' failed
CRS-2679: Attempting to clean 'ora.crsd' on 'oracle11gnodo2'
CRS-4548: Unable to connect to CRSD
CRS-2678: 'ora.crsd' on 'oracle11gnodo2' has experienced an unrecoverable failure
CRS-0267: Human intervention required to resume its availability.
CRS-2795: Shutdown of Oracle High Availability Services-managed resources on 'oracle11gnodo2' has failed
CRS-4687: Shutdown command has completed with error(s).
CRS-4000: Command Stop failed, or completed with errors.
You must kill crs processes or reboot the system to properly
cleanup the processes started by Oracle clusterware
error: package cvuqdisk is not installed
Successfully deconfigured Oracle clusterware stack on this node[oracle@oracle11gnodo1 ~]$ su - root
Password:
[root@oracle11gnodo1 ~]# /home/oracle/instaladores/deinstall/perl/bin/perl -I/home/oracle/instaladores/deinstall/perl/lib -I/home/oracle/instaladores/deinstall/crs/install /home/oracle/instaladores/deinstall/crs/install/rootcrs.pl -force -delete -paramfile /home/oracle/instaladores/deinstall/response/deinstall_Ora11g_gridinfrahome2.rsp -lastnode
2009-09-21 15:07:52: Parsing the host name
2009-09-21 15:07:52: Checking for super user privileges
2009-09-21 15:07:52: User has super user privileges
Using configuration parameter file: /home/oracle/instaladores/deinstall/response/deinstall_Ora11g_gridinfrahome2.rspCRS-2672: Attempting to start 'ora.cssd' on 'oracle11gnodo1'
CRS-2676: Start of 'ora.cssd' on 'oracle11gnodo1' succeeded
CRS-2672: Attempting to start 'ora.ctssd' on 'oracle11gnodo1'
CRS-2676: Start of 'ora.ctssd' on 'oracle11gnodo1' succeeded
CRS-2679: Attempting to clean 'ora.asm' on 'oracle11gnodo1'
CRS-5011: Check of resource "+ASM" failed: details at "(:CLSN00006" in "/u01/app/11.2.0/grid/log/oracle11gnodo1/agent/ohasd/oraagent_oracle/oraagent_oracle.log"
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directory
Process ID: 0
Session ID: 0 Serial number: 0
CRS-5011: Check of resource "+ASM" failed: details at "(:CLSN00006" in "/u01/app/11.2.0/grid/log/oracle11gnodo1/agent/ohasd/oraagent_oracle/oraagent_oracle.log"
CRS-2681: Clean of 'ora.asm' on 'oracle11gnodo1' succeeded
CRS-2672: Attempting to start 'ora.asm' on 'oracle11gnodo1'
CRS-2676: Start of 'ora.asm' on 'oracle11gnodo1' succeeded
CRS-2673: Attempting to stop 'ora.cssdmonitor' on 'oracle11gnodo1'
CRS-2677: Stop of 'ora.cssdmonitor' on 'oracle11gnodo1' succeeded
CRS-2529: Unable to act on 'ora.cssd' because that would require stopping or relocating 'ora.asm', but the force option was not specified
CRS-4000: Command Stop failed, or completed with errors.
Command return code of 1 (256) from command: /u01/app/11.2.0/grid/bin/crsctl stop resource ora.cssd -init
PRCR-1068 : Failed to query resources
Cannot communicate with crsd
PRCR-1068 : Failed to query resources
Cannot communicate with crsd
PRCR-1068 : Failed to query resources
Cannot communicate with crsd
PRCR-1068 : Failed to query resources
Cannot communicate with crsd
PRCR-1035 : Failed to look up CRS resource ora.cluster_vip.type for 1
PRCR-1068 : Failed to query resources
Cannot communicate with crsd
PRCR-1070 : Failed to check if resource ora.gsd is registered
Cannot communicate with crsd
PRCR-1070 : Failed to check if resource ora.ons is registered
Cannot communicate with crsd
PRCR-1070 : Failed to check if resource ora.eons is registered
Cannot communicate with crsdADVM/ACFS is not supported on Redhat 4
ACFS-9201: Not SupportedCRS-2673: Attempting to stop 'ora.ctssd' on 'oracle11gnodo1'
CRS-2673: Attempting to stop 'ora.evmd' on 'oracle11gnodo1'
CRS-2673: Attempting to stop 'ora.asm' on 'oracle11gnodo1'
CRS-2677: Stop of 'ora.evmd' on 'oracle11gnodo1' succeeded
CRS-2677: Stop of 'ora.ctssd' on 'oracle11gnodo1' succeeded
CRS-2677: Stop of 'ora.asm' on 'oracle11gnodo1' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'oracle11gnodo1'
CRS-2677: Stop of 'ora.cssd' on 'oracle11gnodo1' succeeded
CRS-2673: Attempting to stop 'ora.diskmon' on 'oracle11gnodo1'
CRS-2677: Stop of 'ora.diskmon' on 'oracle11gnodo1' succeeded
CRS-2672: Attempting to start 'ora.cssdmonitor' on 'oracle11gnodo1'
CRS-2676: Start of 'ora.cssdmonitor' on 'oracle11gnodo1' succeeded
CRS-2672: Attempting to start 'ora.cssd' on 'oracle11gnodo1'
CRS-2672: Attempting to start 'ora.diskmon' on 'oracle11gnodo1'
CRS-2676: Start of 'ora.diskmon' on 'oracle11gnodo1' succeeded
CRS-2676: Start of 'ora.cssd' on 'oracle11gnodo1' succeeded
This ASM diskgroup does not contain voting disks to be deleted
CRS-2672: Attempting to start 'ora.ctssd' on 'oracle11gnodo1'
CRS-2676: Start of 'ora.ctssd' on 'oracle11gnodo1' succeeded
CRS-2672: Attempting to start 'ora.asm' on 'oracle11gnodo1'
CRS-2676: Start of 'ora.asm' on 'oracle11gnodo1' succeeded
ASM de-configuration trace file location: /home/oracle/oraInventory/logs/asmcadc_clean2043844166297175867.log
ASM Clean Configuration START
ASM Clean Configuration ENDASM with SID +ASM1 deleted successfully. Check /home/oracle/oraInventory/logs/asmcadc_clean2043844166297175867.log for details.
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'oracle11gnodo1'
CRS-2673: Attempting to stop 'ora.gpnpd' on 'oracle11gnodo1'
CRS-2673: Attempting to stop 'ora.cssdmonitor' on 'oracle11gnodo1'
CRS-2673: Attempting to stop 'ora.ctssd' on 'oracle11gnodo1'
CRS-2673: Attempting to stop 'ora.mdnsd' on 'oracle11gnodo1'
CRS-2677: Stop of 'ora.cssdmonitor' on 'oracle11gnodo1' succeeded
CRS-2677: Stop of 'ora.gpnpd' on 'oracle11gnodo1' succeeded
CRS-2677: Stop of 'ora.mdnsd' on 'oracle11gnodo1' succeeded
CRS-2677: Stop of 'ora.ctssd' on 'oracle11gnodo1' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'oracle11gnodo1'
CRS-2677: Stop of 'ora.cssd' on 'oracle11gnodo1' succeeded
CRS-2673: Attempting to stop 'ora.diskmon' on 'oracle11gnodo1'
CRS-2673: Attempting to stop 'ora.gipcd' on 'oracle11gnodo1'
CRS-2677: Stop of 'ora.gipcd' on 'oracle11gnodo1' succeeded
CRS-2677: Stop of 'ora.diskmon' on 'oracle11gnodo1' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'oracle11gnodo1' has completed
CRS-4133: Oracle High Availability Services has been stopped.error: package cvuqdisk is not installed
Successfully deconfigured Oracle clusterware stack on this node
- Una vez terminado lo anterior , procedemos a dar ENTER
Press Enter after you finish running the above commands
<----------------------------------------
Oracle Universal Installer clean STARTDetach Oracle home '/u01/app/11.2.0/grid' from the central inventory on the local node : Done
Delete directory '/u01/app/11.2.0/grid' on the local node : Done
Delete directory '/u01/app/oracle' on the local node : Done
Detach Oracle home '/u01/app/11.2.0/grid' from the central inventory on the remote nodes 'oracle11gnodo2' : Done
Delete directory '/u01/app/11.2.0/grid' on the remote nodes 'oracle11gnodo2' : Done
Delete directory '/u01/app/oracle' on the remote nodes 'oracle11gnodo2' : Done
Oracle Universal Installer cleanup was successful.
Oracle Universal Installer clean END
Oracle install clean START
Clean install operation removing temporary directory '/tmp/install' on node 'oracle11gnodo1'
Clean install operation removing temporary directory '/tmp/install' on node 'oracle11gnodo2'Oracle install clean END
Moved default properties file /home/oracle/instaladores/deinstall/response/deinstall_Ora11g_gridinfrahome2.rsp as /home/oracle/instaladores/deinstall/response/deinstall_Ora11g_gridinfrahome2.rsp3
######################### CLEAN OPERATION END #########################
- Y muestra en esta sección lo más importante, el resumen ![]()
####################### CLEAN OPERATION SUMMARY #######################
ASM instance was de-configured successfully from the Oracle home
Oracle Clusterware is stopped and successfully de-configured on node "oracle11gnodo2"
Oracle Clusterware is stopped and successfully de-configured on node "oracle11gnodo1"
Oracle Clusterware is stopped and de-configured successfully.
Successfully detached Oracle home '/u01/app/11.2.0/grid' from the central inventory on the local node.
Successfully deleted directory '/u01/app/11.2.0/grid' on the local node.
Successfully deleted directory '/u01/app/oracle' on the local node.
Successfully detached Oracle home '/u01/app/11.2.0/grid' from the central inventory on the remote nodes 'oracle11gnodo2'.
Successfully deleted directory '/u01/app/11.2.0/grid' on the remote nodes 'oracle11gnodo2'.
Successfully deleted directory '/u01/app/oracle' on the remote nodes 'oracle11gnodo2'.
Oracle Universal Installer cleanup was successful.Oracle install successfully cleaned up the temporary directories.
#################################################################################### ORACLE DEINSTALL & DECONFIG TOOL END #############
La herramienta desinstala absolutamente todo, es bastante poderosa, no se cae, pero... en las pruebas efectuadas, se demora bastante.
Más información del deinstall AQUÍ
Espero les sirva
![]()
![]()
22.09.09. 14:31:06. 2537 words, 3151 views. Categories: Base de datos, Instalación, Oracle11gR2 , Leave a comment » • Send a trackback »
Oracle 11gr2 : Claúsula PREPROCESSOR para tablas externas
En Oracle11gr2 existen las tablas externas al igual que en anteriores versiones de Oracle.
Pero en la última versión de Oracle vienen con una pequeña claúsula, la cual las hace más novedoss y poderosas..

Imaginense este escenario.
a) Hay un archivo plano y necesito poder calcular la cantidad total de dinero que trae una columna X en ese archivo (tiene 400 mil filas).
Para solucionar lo anterior simplemente creo una tabla externo y ocupo las funciones por todos sabidas (SUM).
b) Hay un archivo plano , y necesito calcular el mismo valor sobre una columna de cantidad , pero ... el gran detalle es que ese archivo plano comprimido pesa 800MB, descomprimido, puede llegar sin problemas a las 250GB, ¿qué hago? , ¿lo descomprimo y hago split?
Pues para lo anterior en Oracle11gr2 , nace una nueva claúsula en las tablas externas, está claúsula llamada PREPROCESSOR permite ejecutar un comando sobre el archivo y el resultado poder ser manipulado con la tabla externa, en otras palabras, puedo DESCOMPRIMIR EL ARCHIVO ANTES DE UTILIZARLO con la tabla externa
He aquí un ejemplo :
1) Creo un directorio de trabajo
SQL> CREATE OR REPLACE DIRECTORY dir_externos as '/home/oracle/externo';
2) Otorgo grant de lectura y escritura (el caso sólo es pedagógico, nunca debiesen darle privilegios a PUBLIC)
SQL> grant read , write on directory dir_externos to public;
Grant succeeded.
3) Creo una tabla externa común y silvestre
SQL> create table externos1 (
2 campo1 number(10) ,
3 campo2 varchar2(10)
4 )
5 organization external
6 (
7 type oracle_loader
8 default directory dir_externos
9 ACCESS PARAMETERS
10 (
11 records delimited by newline
12 badfile dir_externos:'externos.bad'
13 logfile dir_externos:'externos.log'
14 fields terminated by ','
15 (campo1,campo2)
16 )
17 LOCATION ('archivo_sin_comprimir.txt')
18 )
19 PARALLEL
20 REJECT LIMIT UNLIMITED;Table created.
4) Consulto el archivo plano mediante sistema operativo
[oracle@oracle11g externo]$ more archivo_sin_comprimir.txt
1,A
2,3
10000,AAAAA
1202020,HHH1111
5) Consulto el archivo plano mediante la tabla externa
SQL> select * from externos1;
CAMPO1 CAMPO2
---------- ----------
1 A
2 3
10000 AAAAA
1202020 HHH1111
6) Comprimo el archivo plano que está en disco
[oracle@oracle11g externo]$ gzip archivo_sin_comprimir.txt
[oracle@oracle11g externo]$ ls -ltr
total 16
-rw-r--r-- 1 oracle oinstall 76 Sep 10 15:27 archivo_sin_comprimir.txt.gz
7) Creo otra tabla externa, pero esta vez apuntando al archivo plano comprimido
SQL> create table externos2 (
2 campo1 number(10) ,
3 campo2 varchar2(10)
)
4 5 organization external
6 (
type oracle_loader
7 8 default directory dir_externos
9 ACCESS PARAMETERS
10 (
11 records delimited by newline
12 badfile dir_externos:'externos2.bad'
13 logfile dir_externos:'externos2.log'
14 fields terminated by ','
15 (campo1,campo2)
16 )
17 LOCATION ('archivo_sin_comprimir.txt.gz')
18 )
19 PARALLEL
20 REJECT LIMIT UNLIMITED;
8) Y cuando consulto la tabla, no aparecen registros ¿por qué?
SQL> select * from externos2;
no rows selected
SQL>
9) Si busco el contenido del archivo de BAD del archivo plano, nos daremos cuenta que trato de leer un registro desde el archivo comprimido, pero no pudo pues no era el formato que se le había declarado al momento de crear la tabla externa
[oracle@oracle11g externo]$ more externos2.bad
#S©J
[oracle@oracle11g externo]$
10) Si vemos el log del proceso, claramente veremos el problema que hubo
[oracle@oracle11g externo]$ more externos2.log
LOG file opened at 09/10/09 15:28:29Field Definitions for table EXTERNOS2
Record format DELIMITED BY NEWLINE
Data in file has same endianness as the platform
Rows with all null fields are acceptedFields in Data Source:
CAMPO1 CHAR (255)
Terminated by ","
Trim whitespace same as SQL Loader
CAMPO2 CHAR (255)
Terminated by ","
Trim whitespace same as SQL LoaderLOG file opened at 09/10/09 15:28:30
Field Definitions for table EXTERNOS2
Record format DELIMITED BY NEWLINE
Data in file has same endianness as the platform
Rows with all null fields are acceptedFields in Data Source:
CAMPO1 CHAR (255)
Terminated by ","
Trim whitespace same as SQL Loader
CAMPO2 CHAR (255)
Terminated by ","
Trim whitespace same as SQL Loader
error processing column CAMPO1 in row 1 for datafile /home/oracle/externo/archivo_sin_comprimir.txt.gz
ORA-01722: invalid number
11) Procedemos a crear otro directorio, este directorio es la ruta donde se encuentra el utilitario para descomprimir, que para nuestro caso es gunzip
SQL> CREATE OR REPLACE DIRECTORY exec_dir_externos as '/usr/bin/';
SQL> grant read , write on directory exec_dir_externos to public;
12)Procedemos a generar una tabla externa, pero con la claúsula PREPROCESSES , para que el archivo con extensión .gz sea descomprimido
create table externos_comprimidos (
campo1 number(10) ,
campo2 varchar2(10)
)
organization external
(
type oracle_loader
default directory dir_externos
ACCESS PARAMETERS
(
records delimited by newline
PREPROCESSOR exec_dir_externos:'gunzip'
badfile dir_externos:'externos2.bad'
logfile dir_externos:'externos2.log'
fields terminated by ','
(campo1,campo2)
)
LOCATION ('archivo_sin_comprimir.txt.gz')
)
PARALLEL
REJECT LIMIT UNLIMITED;
13) Consultamos la tabla externa recientemente creada y vemos como tenemos acceso al archivo plano aunque este comprimido
SQL> select * from externos_comprimidos;
CAMPO1 CAMPO2
---------- ----------
1 A
2 3
10000 AAAAA
1202020 HHH1111
14)No disponible para bases de datos con Oracle Database Vault instalado
SQL> r
1* select * from v$option where upper(parameter) like '%VAUL%' order by 1PARAMETER VALUE
--------------------- ---------
Oracle Database Vault TRUESQL>
Referencias
Tablas externas en Oracle11gr2
Espero les sirva
![]()
![]()
10.09.09. 18:50:47. 843 words, 926 views. Categories: Base de datos, Oracle11gR2 , Leave a comment » • Send a trackback »