27/8/13

Errores ORA-15039 ORA-15027 - Borrando un Disk Group

Borrando un Disk Group

ASMCMD> dropdg -r DATA
ORA-15039: diskgroup not dropped
ORA-15027: active use of diskgroup "DATA" precludes its dismount (DBD ERROR: OCIStmtExecute)
ASMCMD> exit

SQL> drop diskgroup DATA;
drop diskgroup DATA
*
ERROR at line 1:
ORA-15039: diskgroup not dropped
ORA-15053: diskgroup "DATA" contains existing files


SQL> select * from v$asm_client;
no rows selected

SQL> show parameter spfile


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      +DATA/asm/asmparameterfile/registry.253.810662323


*Tengo que cambiar de lugar el SPFILE que esta en el ASM

SQL> create pfile='$ORACLE_HOME/dbs/pfileASM.ora' FROM spfile;
SQL> shutdown immediate
SQL> startup from pfile='$ORACLE_HOME/dbs/pfileASM.ora';

SQL> show parameter pfile

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string


SQL> drop diskgroup DATA including contents;

Diskgroup dropped.


drop diskgroup DATA including contents;

SQL> alter diskgroup DATA dismount force;

Diskgroup altered.

30/7/13

...no puedo bajar ASM

Hoy estaba tratando de bajar las instancia ASM standalone y me surgio el siguiente error ORA-15487, era que habia montado una particion ACFS...

[grid@test(+ASM) ~]->. oraenv
[grid@test(+ASM) ~]->sqlplus / as sysasm
 SQL> SHUTDOWN NORMAL


ERROR al bajar ASM

SQL> shutdown normal
ORA-15487: cannot shutdown the ASM instance with an open ASM volume
SQL> exit


[oracle@test(11g) trace]-> ps aux | grep grid | grep LOCAL

 3772 ?        Ss     0:00 oracle+ASM (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
 3916 pts/1    S+     0:00 grep LOCAL
23146 ?        Ss     0:04 oracle+ASM (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

[oracle@test(11g) trace]->kill -15 3772 23146



[root@test~]# mount
/dev/cciss/c1c1 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/cciss/c0d0p6 on /opt type ext3 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
oracleasmfs on /dev/oracleasm type oracleasmfs (rw)
/dev/asm/testos-221 on /opt/acfsmounts/dat type acfs (rw)

[root@test~]# umount /opt/acfsmounts/dat
[root@test~]# mount


[grid@test(+ASM) ~]->sqlplus / as sysasm

SQL*Plus: Release 11.2.0.3.0 Production on Tue Jul 30 11:54:55 2013

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Automatic Storage Management option

SQL> shutdown normal
ASM diskgroups volume disabled
ASM diskgroups dismounted
ASM instance shutdown
SQL>

24/7/13

Cambiando de trabajo...

Desde hace unos dias empece a buscar un nuevo trabajo, como trabajo en Sistemas por suerte hay varias ofertas. Lo que me resulta por momentos divertido son las preguntas que te hacen los de RRHH, casi siempre son las mismas, asi que preparando una buena respuesta podemos tener ventajas.
Transcribo algunas de las preguntas clasicas.....

RRHH: Por que queres cambiar de trabajo?
Pfff...esta si que siempre esta!
Rta. ideal: nuevas oportunidad, crecimiento personal y profesional, etc etc etc.

RRHH: Cuales son tus fortalezas? y debilidades?
Las fortalezas es bastante facil, cada uno sabra. Las debilidades....mmmm....aca se complica un poco, no podemos decir "soy muy detallista", pongan algo real, todos tenemos nuestros puntos debiles, sino la ayuda de un amigo, compañero o enemigo...seguro nos va a decir bien nuestro punto debil.

 RRHH: En cuanto tiempo podes empezar a trabajar o realizar el cambio?
Yyyyy....mañana ya puedo empezar!...no seria una buena respuesta ideal. Los de RRHH esperan..."me gustaria avisar con tiempo el puesto que estoy dejando, tengo una buena relacion con mis compañeros asi que quiero avisarles con tiempo!". Tampoco les vas a decir..."Dame 2 meses"

RRHH: Que actividad extra-laborar realizas?
Deberia ser algo que aporte indirectamente algo al puesto que uno busca, si es una actividad que realizan hace mucho tiempo y en forma seria....mejor!

RRHH: Hablame de ti...
Hay que ver si la pregunta se refiere a nuestra vida personal o profesional, generamente es a la parte profesional que puede aporta mas valor a nuestro futuro puesto. Podria ser...como empezamos nuestra carrera profesional, etc.

RRHH: Nombra alguna tarea interesante que hayas realizado en este ultimo tiempo.
Aca seguramente va a ser algo muy referente al puesto que buscan y a nuestro perfil profesional.



RRHH: Tienes las habilidades para este puesto? 
A hablar se ha dicho! jej hay que venderse.

RRHH: Porque quieres trabajar aca?
"Porque me pagan mas"....malisimo, si lo que piensan los de RRHH que nos moviliza es el dinero, estamos listos. Lo ideal seria una respuesta como...."Quiero crecer profesionalmente, tener nuevas oportunidades, conosco la trayectoria de la empresa y me gustaria ser parte, etc, etc, etc"

RRHH: Porque cambias de trabajo?
"Me tiene cansado, mi jefe es insoportable!"....eso es lo que quizas pensemos! pero nunca demos esa respuesta! Mejor seria...."En mi actual trabajo no puedo seguir creciendo. No se generan nuevas oportunidades, etc, etc, etc"

RRHH: Conoces Nuestra compania?
Y....ni idea! Malisima rta.
Por supuesto que la conosco....por eso mismo estoy aca. Se que es una empresa importante en el rubro BLABLABLA.

RRHH: Cuales son los puntos mas importantes que consideras a la hora de cambiar de puesto/empresa?
Rta: capacidad de desarrollo, relaciones interpersonales, trabajo en equipo, esas podrian ser algunas.

RRHH: Cual es tu remuneracion pretendida?
Lo ideal y que generalmente hago es tratar de que ellos me digan cuanto podria ser la remunaracion, les comento la remuneracion del trabajo actual y los dejo hablar y ver que ofrecen.
Este es un tema muy particular, los de RRHH manejan determinados valores, si nos pasamos de los valores que ellos tienen seguramente ni te llamen, porque vas a estar en un trabajo que te pagan menos de lo que esperabas. Eso si...para bajar hay tiempo, tampoco pidamos una locura, salvo que no tengamos intencion de cambiar (Si me pones toooooda la $$$ me cambio!)

RRHH: Como te ves de aca a XX años?
Rta: Me veo trabajando en equipo, coordinando un equipo de trabajo, desarrollandome profesionalmente, etc, etc.

RRHH: Cual fue tu ultima tarea que hiciste de la cual estas orgulloso?
Rta: podemos armar algun problema que tuvimos y como lo solucionamos en forma exitosa. Pongan la colaboracion y trabajo en equipo, si es que lo requiere el puesto, etc.

RRHH: Porque estudiaste _____ ?
RRHH: Que es lo que mas te motiva?












*Esas serian algunas de las preguntas que generalmente siempre estan. Sean inteligentes a la hora de responder, tengan en cuenta que ellos son el primer filtro y es su trabajo conocernos, tampoco mientan...sean cinseros, a la larga todo termina saliendo!

18/5/10

Todos los tutoriales

Ahora pueden visitar la seccion de COMO's en http://www.lixon.com.ar/notas.php

25/8/09

Oracle | Pinning de objetos

Performance - Pinning de Objetos

En Oracle a partir de la version 10g no se utiliza el pinning de objetos, la administracion de memoria compartida se hace en forma automatica
En Oracle los objetos de uso frecuente se suben a la Shared Pool que es parte de la SGA.
Si el Shared Pool no tiene espacio nos dara el error ORA-4031: Unable to allocate bytes of shared memory (no se pueden alocar bytes de la memoria compartida)

Los objetos se pueden mantener en la Shared Pool utilizando en package dbms_shared_pool que esta definido en el archivo dbmspool.sql

Ejemplo
execute dbms_shared_pool.keep('owner.object');

Para ver una lista de todos los objetos que se encuentran en la Shared Pool se utiliza la vista v$db_object_cache

select * from v$db_object_cache

select owner,name,type,sharable_mem from v$db_object_cache where kept='YES';


Para indentificar los objetos que mas se han cargado y cuales son los posibles objetos que deberian estar en la Shared Pool

select substr(owner,1,10)||'.'||substr(name,1,35) "ObjectName", type, sharable_mem,loads, executions, kept from v$db_object_cache where type in ('TRIGGER','PROCEDURE','PACKAGE BODY','PACKAGE') and executions >0 order by executions desc,loads desc,sharable_mem desc



select owner,name,type,sharable_mem from v$db_object_cache where kept='YES' order by owner desc



select substr(owner,1,10)||'.'||substr(name,1,35) "ObjectName", type, sharable_mem,loads, executions, kept
from v$db_object_cache
where type in ('TRIGGER','PROCEDURE','PACKAGE BODY','PACKAGE') and executions >0 order by executions desc,loads desc,sharable_mem desc


select * from sys.x$ksmlru;



SELECT owner,namespace,type,name,sharable_mem,loads,executions,locks,pins,kept
FROM v$db_object_cache
WHERE
type NOT IN ('NOT LOADED','NON-EXISTENT','VIEW','TABLE',
'SEQUENCE','INVALID TYPE')
AND loads>1 AND executions>loads AND executions>100 AND kept='NO'
ORDER BY owner,namespace,type,executions desc;


DBMS_SHARED_POOL

Para prevenir q los objectos sean removidos de la SHARED MEMMORY por el normal mecanismo (LRU)

- Se utiliza cuando grandes objetos como los paquetes STANDARD y DIUTIL
- Se utiliza para trigger que se utilizan constantemente. Se debe mantener los triggers mas utilizados en la Sahred Pool
- Soporta secuencias. Mantener las secuencias en la Shared Pool previene perder los numeros de secuencuias

Uso de DBMS_SHARED_POOL

1. decidir que package o cursos quedara en memoria (pin)
2. levantar la DB
3. llamar a DBMS_SHARED_POOL.KEEP para hacerle el PIN a los objetos


Subprogramas de DBMS_SHARED_POOL

SIZES - Procedure - muestra los objetos en la shared pool mayores a un tamaño especifico en kilobytes

DBMS_SHARED_POOL.SIZES ( minsize NUMBER);



DBMS_SHARED_POOL.KEEP(nombre,flag) - nombre: nombre del objeto, flag: P:para nombre de paquete(default), T:nombre del tipo, R: nombre del trigger, Q:nombre de la secuencia

DBMS_SHARED_POOL.UNKEEP(nombre,flag) - Saca los objetos de la shared memmory, los parametros son los mismos q para KEEP

DBMS_SHARED_POOL.ABORTED_REQUEST_THRESHOLD (threshold_size NUMBER) - Sets the aborted request threshold for the shared pool (bytes, range: 5000 to 2gb)