jueves, 23 de junio de 2011

Notas Personales de IT- Who is fucking with my Oracle DB?

Existe una aplicación que tratas de levantarla en Weblogic (O cualquier otro server), y solo sale un mensaje que se está levantando pero.... no te dice ni madres , pero si estas de suerte te puede mandar un tip del problema.
Te pones a buscar como idiota en el server si hay pedos, se te viene a la mente la memoria, el espacio en disco duro (esos logs ya deberían respaldarse en otra maquina) pero vez que todo está bien.
Si has sido inteligente o suertudo has dicho "El pedo es en la base de datos!"
En efecto, el pedo es la base de datos, y es que la aplicación se ha conectado y no ha cerrado sus pinches conexiones. (Ahí es cuando le echas la culpa a la aplicación, la base nunca tubo la culpa). Para poder ver todas las conexiones de la base de datos teneis que correr el siguiente script (créditos a Foro Chingón <---aquí lo vi primero)

ttitle "dbname Database|UNIX/Oracle Sessions";

set heading off;

select 'Sessions on database '||substr(name,1,8) from v$database;

set heading on;

select
substr(a.spid,1,9) pid,
substr(b.sid,1,5) sid,
substr(b.serial#,1,5) ser#,
substr(b.machine,1,6) box,
substr(b.username,1,10) username,
-- b.server,
substr(b.osuser,1,8) os_user,
substr(b.program,1,30) program
from v$session b, v$process a
where
b.paddr = a.addr
and type='USER'
order by spid;

ttitle off;

spool off;


Y ya puedes ver quien se mete con tu base de datos y quien deja sus conexiones abiertas. Mmmm este hijo de la chingada de otra área se esta conectando a mi base de datos. ¬¬ rodarán cabezas.

martes, 14 de junio de 2011

Notas personales de IT - Base de Datos Oracle Exp, Imp

Hace un buen de tiempo que no escribo en el blogger, se que iba a poner algunos reviews de peliculas pero la verdad me ha dado hueva escribir.
Sin embargo se me ocurrió que podía usar esta herramienta como recordatorios de lo que he buscado y no tenerlo que buscar nuevamente en google, por ejemplo lo que hice hoy: "Exportar e importar un Esquema de una base de datos en oracle usando las herramientas IMP y EXP."

Esta tarea ya la había realizado anteriormente.. hace como 2 años cuando estaba trabajando con el ERP de Oracle, pero como siempre pasa:

Lo busco, lo hago, se me olvida.

Primero se tiene que tener bien configurado sus archivos tnsnames.ora y sqlnet.ora que están dentro de la carpeta :

PATH_DE_INSTALACION>/cliente_no/network/admin

El client_no es el numero de cliente que tengas dentro de tu carpeta de instalación.
Algunas versiones las ponen en mayúsculas, no hay ningún problema con esto en el ambiente Windows, no he probado con un cliente en UNIX/LINUX, lo cuál lo probaré después usando la XE que tengo en casa.

Si ya que se puedan conectar usando el SQL Plus usando el *"Host String" entonces están listos para usar las herramientas.

Para exportar un esquema usar lo siguiente:
EXP user_name/password@host_string FILE=NOMBRE_ARCHIVO_QUE_GUARDA_ESQUEMA.DMP OWNER=ESQUEMA_A_EXPORTAR

Intro....esperemos que no salga ningún error.
y listo! ya quedo su esquema guardado.

Si quieren exportar toda la base de datos deben incluir la opción FULL=Y y sin el OWNER.

Ya que tenemos el archivo.dmp (o cualquier extensión que quieran ponerle) podemos importar la información a otro esquema a otra base de datos usando el comando IMP.

Aquí un ejemplo:
C:\ORACLE\product\9\client_1\BIN>IMP USER_NAME/PASSWORD@HOST_STRING FROMUSER=ESQUEMA_EXPORTADO TOUSER=ESQUEMA_A_IMPORTAR FILE=ARCHIVO.DMP

--Intro--..esperemos que no salga ningún error.
Y pum! listo, ya copiamos nuestro esquema.

Ya tengo ambiente de QA!!!!!