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

B)B)B)Graficar en Excel información proveniente desde StatspackB)B)B)

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 :yes:

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


by Ligarius
20.01.10. 16:40:17. 770 words, 10605 views. Categories: Oracle 11g, Oracle 10g, Tuning / Performance, Oracle11gR2 ,

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 options

SQL> start file
select COUNT(*)
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
Process ID: 887
Session ID: 134 Serial number: 162

SQL>


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 XX(

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 fetched

adrci>

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 :D

Más información del ADRCI

Espero les sirva...

by Ligarius
14.12.09. 07:39:59. 610 words, 13016 views. Categories: Oracle 11g, Tuning / Performance, Oracle11gR2 ,

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 :P , 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 START

Checking 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,oracle11gnodo2

Install 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.129

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 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.130

Enter 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.131

The 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[]
192.168.239.131

The 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 []: DATA1

De-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 END

Network 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 crsd

ADVM/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.rsp

CRS-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 crsd

ADVM/ACFS is not supported on Redhat 4
ACFS-9201: Not Supported

CRS-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 END

ASM 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 START

Detach 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

by Ligarius
22.09.09. 14:31:06. 2537 words, 51781 views. Categories: Base de datos, Instalación, Oracle11gR2 ,

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:29

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 accepted

Fields 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

LOG 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 accepted

Fields 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 1

PARAMETER VALUE
--------------------- ---------
Oracle Database Vault TRUE

SQL>



Referencias
Tablas externas en Oracle11gr2

Espero les sirva


by Ligarius
10.09.09. 18:50:47. 843 words, 17241 views. Categories: Base de datos, Oracle11gR2 ,

Oracle11gr2 : Claúsula IGNORE_ROW_ON_DUPKEY_INDEX , para evitar los errores ORA-0001



Si tenemos una tablaA la cual contiene datos y una tablaB con la misma estructura pero con otros datos , y queremos fusionarla, ¿Cómo lo hacemos sin que haya registros repetidos? , o mejor dicho, ¿Cómo lo hacemos para que no se gatille la Primary Key?



Pues bien , lo podríamos hacer con un Pl/Sql de la siguiente forma :

declare
cursor c1 is select ...
begin
open c1
loop
exit when c1 not found
fetch c1 into variable
end loop;
end;

O podría ser con un FOR ... LOOP , pero en el fondo , debemos generar código sí o sí :-/

Pues bien , Oracle11gr2 , nos soluciona ese inconveniente , ¿cómo?

Ha creado una gran claúsula llamada IGNORE_ROW_ON_DUPKEY_INDEX , que no es nada más que in hint :>> , acá viene su uso...

1.- Creamos la tabla que contiene los datos originales y que contiene la PK

SQL> create table tabla1 (col1 number not null ,
2 col2 number not null ,
3 col3 date ,
4 constraint tabla1_pk primary key (col1));

2.- Insertamos datos sencillos dentro de la tabla, sin violar la PK

SQL> insert into tabla1 values (1,1,sysdate);

1 row created.

SQL> insert into tabla1 values (2,1,sysdate);

1 row created.

SQL> insert into tabla1 values (3,1,sysdate);

1 row created.

3. - Insertamos un valor con el format INSERT VALUES y veremos como se gatilla la Primary Key

SQL> insert into tabla1 values (1,0,sysdate);
insert into tabla1 values (1,0,sysdate)
*
ERROR at line 1:
ORA-00001: unique constraint (SYS.TABLA1_PK) violated

4.- Procedemos a insertar la misma fila, pero con el hint IGNORE_ROW_ON_DUPKEY_INDEX , y vemos el resultado , que no inserta la fila y no arroja error :)

SQL> insert /*+ ignore_row_on_dupkey_index (tabla1 (col1) ) */
2 into tabla1 values (1,0,sysdate);

0 rows created.

¿Qué sucede con el formato de inserción INSERT SELECT? , pues bien acá un ejemplo

5.- Vemos la tabla secundaria y los datos que contiene, los cuales no pueden ser insertados en su totalidad pues violan la PK

SQL> select * from valores_tmp;

CAMPO1 CAMPO2
---------- ----------
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8

6 .- Procedemos a insertar sin ocupar el nuevo HINT y aparece el típico error de violación de PK

SQL> insert into tabla1 (select campo1 , campo2 , sysdate from valores_tmp);
insert into tabla1 (select campo1 , campo2 , sysdate from valores_tmp)
*
ERROR at line 1:
ORA-00001: unique constraint (SYS.TABLA1_PK) violated

7.- Y si consultamos los datos de nuestra tabla original, vemos que no han sido afectados

SQL> select * from tabla1;

COL1 COL2 COL3
---------- ---------- ---------
1 1 05-SEP-09
2 1 05-SEP-09
3 1 05-SEP-09

SQL>

8.- Ahora si insertamos los mismos datos, pero con la nueva claúsula , vemos como ocurre la magia, simplemente selecciona cuales insertar ... que bien :>>

SQL> insert /*+ ignore_row_on_dupkey_index (tabla1 (col1) ) */
2 into tabla1 (select campo1 , campo2 , sysdate from valores_tmp);

5 rows created.

SQL>

9.- Validamos nuevamente nuestra tabla original y están los datos correctos, de ambas tablas

SQL> select * from tabla1;

COL1 COL2 COL3
---------- ---------- ---------
1 1 05-SEP-09
2 1 05-SEP-09
3 1 05-SEP-09
4 4 05-SEP-09
5 5 05-SEP-09
6 6 05-SEP-09
7 7 05-SEP-09
8 8 05-SEP-09

8 rows selected.

SQL>

Espero les sirva

by Ligarius
06.09.09. 14:48:21. 500 words, 5702 views. Categories: Base de datos, Tuning / Performance, Oracle11gR2 ,

<< 1 2 3 4 5 6 >>