Preparando el Examen RAC 11gr2



Bueno, creo que ha sido bastante el descanso y ya debo comenzar a planificar mi siguiente exámen de certificación..

Ahora apuntaré los dardos hacía RAC 11gr2 , ya una vez lo día con resultados...mmm malos :|

Pero siempre hay segundas oportunidades, por ende comenzaré desde ya a estudiar para poder darlo a mediados de Junio.. espero que la segunda sea la vencida :>>



Lamentablemente subieron los porcentajes de aprobación , de un 60% a un 65% :-/ , bueno, pensándolo bien no es tan malo...sirve de filtro ...

by Ligarius
28.02.13. 06:52:18. 88 words, 3598 views. Categories: Certificaciones ,

Eliminando un nodo desde RAC 11gr2



Antes de hablar del post, les comento algo importante :yes: , ayer ví la película "The Pact - 2012" y la verdad, encontré la perfección...se las presento (Caity Lotz)




Con respecto al post, les dejo un documento detallado de como eliminar un nodo en un RAC , las versiones que se utilizan

Linux x86 de 64 bits
Oracle 11gr2 (11.2.0.3) 64 bits
3 nodos


Aparece el paso a paso , los pantallazos y salidas de todos los comandos .
Borrar un nodo en un RAC 11gr2

Links relacionados
Add node to RAC 11gr2

Espero les sirva


by Ligarius
25.02.13. 16:28:31. 90 words, 5281 views. Categories: Instalación, Oracle11gR2, Real Application Cluster ,

Mandela....Open Source muy bueno...

Mandela....Open Source muy bueno...



Como todo mortal dedicado a Oracle, siempre ando en la necesidad de buscar una herramienta buena para graficar :)) , fue así como conocí a Mandela...un software Open Source, la verdad muy bueno... y gratis.

Es elaborado por una persona en Brasil , persona perteneciente a Inmetrics...

Pues bien , la gracia de este Software es que muestra todo le comportamiento de una base de datos, mediante gráficos, ya no más SpotLigth o TOAD , que lo único que hacen es ralentizar la base, además de ser invasivo.

Por ello , he aquí una herramienta liviana con una pequeña y breve explicación

- Lo primero que hay que hacer es descargar el Software , lo puedes hacer desde la URL

http://www.mandela.org en la pestaña de "Download - Latest Release"

- Para comenzar a trabajar con Mandela , pues se debe generar una configuración , la cual es almacenada en un archivo dentro del disco duro





- Después de esto, agregamos una base de datos



- Accedemos al menú principal



- Y seleccionamos por ejemplo "Wait Events" , obteniendo los siguientes gráficos




El resto, pues es sólo navegar y averiguar

Espero les sirva, como me está sirviendo a mí... ;)

by Ligarius
18.02.13. 07:53:56. 207 words, 3421 views. Categories: Instalación ,

Formato IPv6 y oracle



Hoy en día la asignación de IPs está dada por el formato IPv4 (Internet Protocol version 4) , la cual como todos sabemos ya está llegando a su límite dato que se pueden asignar sólo hasta 2^32 (32 bits) , o sea, 4.294.967.296 direcciones IP.

Es por eso que hace un tiempo se está cambiando a un formato más poderoso llamado IPv6, el cual puede almacenar 2^128 direcciones IP lo que expresado en números sería la friolera de 340.282.366.920.938.463.463.374.607.431.768.211.456 , ¿harto cierto? ;D

¿Pero que hay de Oracle? ¿Soporta el protocolo IPv6?

Pues las buenas noticias son que Oracle 11gr2 soporta IPv6 para todos sus componentes y características para base de datos Stand Alone.

Cabe mencionar que una IP del protocolo IPv6 , está compuesto por 8 grupos de 4 digitos Hexadecimales, por ejemplo

1287:FFFF:0:0:417A:0:8790:FFA4


Un gran detalle de la implementación de IPv6 con Oracle es que el Sistema Operativo debe tener soporte para este nuevo formato de IP, de otra forma no se puede utilizar. Incluso el sistema operativo puede tener ambos formatos de IP..

Veamos un ejemplo de su implementación :

- Versión de Sistema Operativo : Windows 7 de 64 bits
- Versión de Oracle 11.2.0.1 de 64 bits


1) Al momento de hacer un ipconfig en el sistema operativo podemos observar que existen ambas IPs

Teniendo en cuenta que posee los 2 formatos de IP , ya sea IPv4 e IPv6


2) El formato del listener.ora, para comprobar que soporta IPv6 podría ser el siguiente (con registro manual del servicio)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\app\oracleyyo\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\app\oracleyyo\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
(SID_DESC =
(SID_NAME = ORCL)
(ORACLE_HOME = C:\app\oracleyyo\product\11.2.0\dbhome_1)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = fe80::bd7e:48bb:8cc:9da2%14)(PORT = 1521))
)
)

ADR_BASE_LISTENER = C:\app\oracleyyo


3) Chequeamos el listener para ver el uso de la ip (formato IPv6)

C:\app\oracleyyo\product\11.2.0\dbhome_1\BIN>lsnrctl status

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 14-FEB-2013 16:13:23

Copyright (c) 1991, 2010, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
Start Date 14-FEB-2013 15:55:52
Uptime 0 days 0 hr. 17 min. 32 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File C:\app\oracleyyo\product\11.2.0\dbhome_1\network\admin\listener.ora
Listener Log File c:\app\oracleyyo\diag\tnslsnr\ligarius\listener\alert\log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=fe80::bd7e:48bb:8cc:9da2%14)(PORT=1521)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "ORCL" has 1 instance(s).
Instance "ORCL", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

C:\app\oracleyyo\product\11.2.0\dbhome_1\BIN>


4) El formato de nuestro tnsnames.ora

ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = fe80::bd7e:48bb:8cc:9da2%14)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)


5) Si realizamos la conexión a la instancia mediante el string en el tnsnames.ora, veremos que se conecta sin problemas

C:\app\oracleyyo\product\11.2.0\dbhome_1\BIN>sqlplus system/oracle123@orcl

SQL*Plus: Release 11.2.0.1.0 Production on Jue Feb 14 16:15:10 2013

Copyright (c) 1982, 2010, 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>


6) Se realizamos un tnsping

C:\app\oracleyyo\product\11.2.0\dbhome_1\BIN>tnsping orcl

TNS Ping Utility for 64-bit Windows: Version 11.2.0.1.0 - Production on 14-FEB-2013 16:15:22

Copyright (c) 1997, 2010, Oracle. All rights reserved.

Used parameter files:
C:\app\oracleyyo\product\11.2.0\dbhome_1\network\admin\sqlnet.ora

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = fe80::bd7e:48bb:8cc:9da2%14)(PORT = 1521))
(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))

OK (0 msec)


7) Incluso podemos llevar a cabo un Easy Connect

C:\app\oracleyyo\product\11.2.0\dbhome_1\BIN>sqlplus system/oracle123@[fe80::bd7e:48bb:8cc:9da2%14]:1521/orcl

SQL*Plus: Release 11.2.0.1.0 Production on Jue Feb 14 16:17:39 2013

Copyright (c) 1982, 2010, 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


8) Lo que se excluye de esta nueva versión de IPs , es Oracle RAC y Oracle Failsafe :)


Documentación :
http://www.oracle.com/us/technologies/ipv6/index.html

by Ligarius
14.02.13. 12:58:55. 735 words, 4654 views. Categories: Tnsnames ,

Toma de estadísticas a los objetos Fixed (X$) (Statistics on Fixed Tables)



Hola, les voy a presentar un pequeño texto relacionado con la toma de estadísticas a las tablas Fixed de Oracle, denominadas X$ , su importancia es trascendental y sobre todo , sus estadísticas... que pueden repercutir en tiempo de respuesta muy malos cuando no están al día o cuando sencillamente no están actualizadas


Obs : Puse la foto de Milla Jovovich pues es simplemente la perfección ...no tiene nada que ver con la nota , no creo que produzca incomodidad :>>


Los objetos Fixed en Oracle corresponden a aquellas tablas llamadas las X$ y a sus correspondientes índices, estas tablas tienen la particularidad de que son cargadas en la SGA al momento de realizar el startup de la instancia y son aquellas tablas en donde se almacena la información en tiempo real de lo que está sucediendo en la base de datos, estas tablas poseen algunas características muy particulares, por ejemplo :


a) Son tablas que no poseen bloques (físicos) dado que solamente se cargan en memoria
b) Son aquellas tablas que sirven de base para las V$ y GV$ , por ende, el hecho de que no tengan estadísticas al día repercuten en toda la base de datos.



La actividad de recolección de estadísticas no se hace de forma automática, por ende siempre tiene que formar parte de un plan de toma de estadística general, para lo anterior , se debe ocupar el siguiente package :

BEGIN
DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
END;



Este procedimiento toma las estadísticas desde las tablas X$ , el porcentaje está dado internamente por ende no es un factor a tomar en cuenta cuanto es lo que se analiza.


Cabe mencionar que como son tablas en memoria y la data que muestran representan la carga del sistema, no es buena idea hacer una recolección de datos en momentos en donde la carga de la base de datos sea mínima, pues los planes de ejecución creados por el CBO a partir de está información pueden no ser los más óptimos.


Por lo anterior se recomienda que la toma de estadísticas sobre las tablas X$ se haga en un momento de carga de la base de datos, si tenemos a mano una aplicación para generar gráficos de carga de nuestra base o gráficos de los mayores eventos de espera , podemos tomar un tramo en el cual no esté el "peak" de uso , para no provocar contensión.




El anterior gráfico viene de una herramienta muy útil y que es OPEN SOURCE, pronto estaremos dando detalles de ella en una nota ;)


Un período de carga favorable para la toma de estadística (Fixed Tables) en este nodo sería el horario comprendido entre las 00:00 y 04:00 , después de lo cual se puede ejecutar una toma de estadísticas para el horario 19:00 y 00:00, esto es para que se tabulen los resultados de la toma de estadística en el primero intervalo de tiempo e irse acercando lo más posible a la hora de mayor carga del sistema.



Datos actuales

Se puede obtener la cantidad de tablas X$ con estadísticas simplemente ejecutando el siguiente comando :

SELECT count(*) , to_char(last_analyzed,'yyyy-mm')
FROM dba_tab_statistics
WHERE table_name like 'X$%'
GROUP BY to_char(last_analyzed,'yyyy-mm')
ORDER BY 2


O si lo prefieren , mediante la siguiente consulta

SELECT owner
, table_name
, last_analyzed
FROM dba_tab_statistics
WHERE table_name IN
(SELECT name
FROM v$fixed_table
WHERE type = 'TABLE'
)
ORDER BY last_analyzed;



Consideraciones a tener en cuenta

Hay ciertas consideraciones y puntos que se deben tener cuenta al momento de sacar estadísticas sobre las tablas X$

a) Se debe tomar estadísticas a este nivel, cada vez que se haga un upgrade del aplicativo

b) Cada vez que se haga algún cambio a nivel de base de datos, por ejemplo cambio de parámetros, cambio del tamaño de la SGA , etc , etc

c) El hecho de que haya estadísticas malas o simplemente no existan estadísticas para este tipo de componentes, puede generar planes de ejecución muy malos, sobre todo cuando se trata de acceder a áreas de memoria como la Shared Pool, ya que se pueden provocar encolamientos por la “serialización” al tratar de consultar los datos allí residentes.

d) Cada vez que se ejecuta el package para tomar estadísticas de las X$ se puede experimentar una degradación de los servicios, dado que se está accediendo de forma muy consistente a los datos en memoria, por eso si no se puede elegir un período de alto uso de recursos , se puede elegir un período inmediatamente posterior, con lo cual se puede recopilar información más acertada que un período de baja carga.

e) Como el hecho de tomar estadísticas puede conllevar inconvenientes de performance (por el instante en que se toman) , se recomienda que todo el proceso pueda ser monitoreado y llevado a cabo en ambiente de Testing.

f) El hecho de que no existan estadísticas para las tablas fixed puede ser incluso mejor que estadísticas erróneas, lo que hay que tener en cuenta que estadísticas bien tomadas pueden traer muchos beneficios para los planes de ejecución de las consultas que se ejecutan de forma interna.

g) Una vez que estas estadísticas son tomadas , no tienen que volver a generarse cuando la instancia se reinicia, Oracle las almacena en disco, sólo se debiesen tomar ante algún cambio de configuración de la instancia o a nivel de base de datos.



Respaldo de las estadísticas actuales

Antes de efectuar cualquier actividad sobre la base de datos como buena práctica se debe realizar un respaldo, para las estadísticas es lo mismo, por ende los pasos a seguir es respaldar las estadísticas actuales de las tablas Fixed y mantenerlas almacenadas , ya que puede formar parte del plan el hecho de revertir el proceso de recopilación de estadísticas, por algún mal plan de ejecución que pueda aparecer.

Para llevar a cabo esta actividad , se siguen los siguientes pasos :

a) Se crea una tabla para almacenar las estadísticas de las tablas Fixed, se indica el owner y el nombre que tendrá la tabla

SQL> exec dbms_stats.create_stat_table ('SYSTEM', 'table_stats_fixed');


b) Se chequean los segmentos generados

SQL> select owner , segment_name , segment_type from dba_segments
2 where segment_name like 'TABLE_STATS%';

OWNER SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME
-------------------- ------------------------------ ------------------ ---------
SYSTEM TABLE_STATS_FIXED TABLE SYSTEM
SYSTEM TABLE_STATS_FIXED INDEX SYSTEM


c) Se deben mover los segmentos generados para que en ningún motivo queden en el tablespace SYSTEM.

SQL> alter table system.table_stats_fixed move tablespace users;

Table altered.

SQL> alter index system.table_stats_fixed rebuild tablespace users;

Index altered.


d) Se procede a exportar la metadata de las estadísticas y a dejarla en la tabla recientemente creada.

SQL> exec dbms_stats.export_fixed_objects_stats (statown=> 'SYSTEM', stattab => 'TABLE_STATS_FIXED');


e) Se chequea el funcionamiento global del sistema y si procede , se debe restaurar (importar) la anterior data, para ello ocupamos el siguiente código.

SQL> exec dbms_stats.import_fixed_objects_stats(statown=>'SYSTEM',stattab=>'TABLE_STATS_FIXED');


Espero les sirva y claro , desde ahora sepan incorporar dentro de sus planes de mantenimiento este tipo de procesos , tan importante para Oracle

by Ligarius
07.02.13. 07:40:03. 1259 words, 3026 views. Categories: Tuning / Performance ,

<< 1 ... 8 9 10 11 12 13 14 15 16 17 18 ... 44 >>