<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7032562522678375043</id><updated>2012-01-10T06:58:41.353-08:00</updated><category term='hackear la base de datos'/><category term='UTL_SMTP'/><category term='DBMS_CRYPTO y  DBMS_OBFUSCATION_TOOLKIT'/><category term='rman'/><category term='recovery catalog'/><category term='UTL_FILE'/><category term='DBMS_OBFUSCATION_TOOLKIT'/><category term='Oracle'/><category term='UTL_TCP'/><category term='UTL_HTTP'/><category term='PUBLIC'/><category term='mandar mails desde la base de datos'/><title type='text'>Blog de Erika Mudespacher</title><subtitle type='html'>Un espacio para todos</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://erikamudespacher.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032562522678375043/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://erikamudespacher.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Erika Müdespacher</name><uri>http://www.blogger.com/profile/02957834141589524039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7032562522678375043.post-6876535190053375050</id><published>2010-08-18T10:54:00.001-07:00</published><updated>2010-08-18T11:31:18.040-07:00</updated><title type='text'>Database Vault</title><content type='html'>Ahora me ha tocado aprender database vault para un proyecto en el que iba a ser consultora, y por vueltas del destino me tocó ser el dba que instaló el producto en varias bases de datos del mismo proyecto.&lt;br /&gt;Les paso la guía que generé después de algo de investigación, espero que les guste y les sirva.&lt;br /&gt;Agradezco a mi compañero Nacho Vega por ayudarme a mejorar y completar mi documentación.&lt;br /&gt;&lt;br /&gt;saludos!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. Ingresar al servidor y fijar ambiente a la base de datos a instalar.&lt;br /&gt;&lt;br /&gt;2. Realizar respaldo de la base de datos en frío.&lt;br /&gt;&lt;br /&gt;3. Realizar respaldo del Home de Oracle de la base de datos a instalar.&lt;br /&gt;&lt;br /&gt;4. Configurar el oraInventory:&lt;br /&gt;&lt;br /&gt;Dependiendo el sistema operativo :&lt;br /&gt; AIX /etc&lt;br /&gt; Solaris /var/opt/oracle&lt;br /&gt;a. Renombrar el archivo oraInst.loc, y renombrar el archivo oraInst de la base de datos a actualizar a oraInst.loc, o en su defecto, modificar la ruta de oraInst.loc para que apunte al inventory del Home de Oracle a instalar.&lt;br /&gt;b. Esto es para que la instalación quede registrada en el inventory propio de la base de datos.&lt;br /&gt;&lt;br /&gt;5. crear password file para la base de datos&lt;br /&gt;&lt;br /&gt;6. Realizar los pasos de instalación de emca (opcional, se usará la consola de DBVault 11g):&lt;br /&gt;a. Ejecutar el script de creación del usuario dbsnmp:&lt;br /&gt;?/rdbms/admin/catsnmp.sql&lt;br /&gt;b. Ejecutar emca con la siguiente sintaxis:&lt;br /&gt;emca –config dbcontrol db –repos create&lt;br /&gt;&lt;br /&gt; preguntara varios datos &lt;br /&gt;&lt;br /&gt;Database SID: &lt;br /&gt;Listener port number: &lt;br /&gt;Password for SYS user:&lt;br /&gt;Password for DBSNMP user:&lt;br /&gt;Password for SYSMAN user:&lt;br /&gt;Email address for notifications (optional):&lt;br /&gt;Outgoing Mail (SMTP) server for notifications (optional):&lt;br /&gt;&lt;br /&gt;c. En caso de ser necesario recrear o eliminar el repositorio, seguir los pasos indicados en la nota de metalink 278100.1&lt;br /&gt;7. Respaldar los siguientes archivos:&lt;br /&gt;&lt;br /&gt;Dependiendo el sistema operativo&lt;br /&gt;AIX /etc&lt;br /&gt;Solaris /var/opt/Oracle&lt;br /&gt;&lt;br /&gt;a. oratab&lt;br /&gt;&lt;br /&gt;Respaldar  los archivos de red&lt;br /&gt;&lt;br /&gt;b. /var/opt/oracle/listener.ora&lt;br /&gt;c. /var/opt/oracle/tnsnames.ora&lt;br /&gt;&lt;br /&gt;8. Revisar que el archivo de script bndlchk, ubicado en $ORACLE_HOME/bin, tenga configurado correctamente el ORACLE_HOME, para evitar errores al momento de instalar DBVault.&lt;br /&gt;&lt;br /&gt;9. Crear un servicio de red (listener) con nombre LISTENER y en el puerto 1521.&lt;br /&gt;&lt;br /&gt;10. Asegurarse que la variable TNS_ADMIN y ORACLE_BASE no tenga valor asignado.&lt;br /&gt;&lt;br /&gt;unset TNS_ADMIN&lt;br /&gt;unset ORACLE_BASE&lt;br /&gt;&lt;br /&gt;11. bajar los servicios excepto el listener del puerto 1521 &lt;br /&gt;&lt;br /&gt;12. Ejecutar runinstaller como se muestra a continuación:&lt;br /&gt;&lt;br /&gt;13. runInstaller ORACLE_HOSTNAME= xxx (donde xxx es el nombre del equipo)&lt;br /&gt;&lt;br&gt;&lt;/br&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ksuTnhhvU-A/TGwf--sLdEI/AAAAAAAAAAM/mzQImySivX4/s1600/oui1.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 238px;" src="http://1.bp.blogspot.com/_ksuTnhhvU-A/TGwf--sLdEI/AAAAAAAAAAM/mzQImySivX4/s320/oui2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5506811611207922754" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br&gt;&lt;/br&gt;&lt;br /&gt;&lt;br /&gt;14. El log de instalación puede ser monitoreado en $ORACLE_HOME/oraInventory/logs&lt;br /&gt;&lt;br /&gt;15. Introducir los datos correspondientes al ambiente:&lt;br /&gt;&lt;br /&gt;a. ORACLE_HOME donde será instalado.&lt;br /&gt;b. Base de datos donde será instalado.&lt;br /&gt;c. Usuario y contraseña del dueño de DBVault (dvowner).&lt;br /&gt;d. Usuario y contraseña del administrador de cuentas (dacctmgr).&lt;br /&gt;e. Seleccionar “User Verified” al error que indica que la variable ORACLE_BASE no está correctamente configurada.&lt;br /&gt;Nota que para este post, estoy tomando como usuario "dvowner" y "dvacctmgr" como dueños de Database Vault y Administrador de cuentas respectivamente.&lt;br /&gt;&lt;br /&gt;16. dar el password de sys y verificar que el ORACLE_HOME y la base de datos que selecciona el Universal Installer sean correctos&lt;br /&gt;&lt;br&gt;&lt;/br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ksuTnhhvU-A/TGwhIe4kS-I/AAAAAAAAAAU/doAlRNrTsQk/s1600/oui2.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 252px;" src="http://4.bp.blogspot.com/_ksuTnhhvU-A/TGwhIe4kS-I/AAAAAAAAAAU/doAlRNrTsQk/s320/oui2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5506812873980267490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br&gt;&lt;/br&gt;&lt;br /&gt;&lt;br /&gt;17. mandara un mensaje de que dará de baja los servicios&lt;br /&gt;&lt;br /&gt;&lt;br&gt;&lt;/br&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ksuTnhhvU-A/TGwhQ9AhxWI/AAAAAAAAAAc/ln4GSCBYhRI/s1600/oui3.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 150px;" src="http://3.bp.blogspot.com/_ksuTnhhvU-A/TGwhQ9AhxWI/AAAAAAAAAAc/ln4GSCBYhRI/s320/oui3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5506813019505673570" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br&gt;&lt;/br&gt;&lt;br /&gt;&lt;br /&gt;18. Ya verificado los procesos de instalación  se debe de dar ok&lt;br /&gt;&lt;br /&gt;&lt;br&gt;&lt;/br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ksuTnhhvU-A/TGwhkLcf3pI/AAAAAAAAAAk/X0DWZXgHr-k/s1600/oui4.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 254px;" src="http://2.bp.blogspot.com/_ksuTnhhvU-A/TGwhkLcf3pI/AAAAAAAAAAk/X0DWZXgHr-k/s320/oui4.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5506813349798600338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br&gt;&lt;/br&gt;&lt;br /&gt;&lt;br /&gt;19. Se verifica que debe de estar en la home correcto&lt;br /&gt;&lt;br /&gt;&lt;br&gt;&lt;/br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ksuTnhhvU-A/TGwh9DWy04I/AAAAAAAAAAs/Gm4adPuT2dA/s1600/oui5.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 254px;" src="http://1.bp.blogspot.com/_ksuTnhhvU-A/TGwh9DWy04I/AAAAAAAAAAs/Gm4adPuT2dA/s320/oui5.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5506813777123922818" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br&gt;&lt;/br&gt;&lt;br /&gt;&lt;br /&gt;20. Por un defecto en el software, dvca falla durante el proceso de instalación, por lo mismo es necesario ejecutarlo manualmente.&lt;br /&gt;&lt;br /&gt;&lt;br&gt;&lt;/br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ksuTnhhvU-A/TGwiLgvaeaI/AAAAAAAAAA0/3S4_vVAq2mY/s1600/oui6.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 162px;" src="http://3.bp.blogspot.com/_ksuTnhhvU-A/TGwiLgvaeaI/AAAAAAAAAA0/3S4_vVAq2mY/s320/oui6.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5506814025529981346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br&gt;&lt;/br&gt;&lt;br /&gt;&lt;br&gt;&lt;/br&gt;&lt;br /&gt;&lt;br&gt;&lt;/br&gt;&lt;br /&gt;&lt;br&gt;&lt;/br&gt;&lt;br /&gt;&lt;br&gt;&lt;/br&gt;&lt;br /&gt;&lt;br&gt;&lt;/br&gt;&lt;br /&gt;&lt;br&gt;&lt;/br&gt;&lt;br /&gt;&lt;br /&gt;21. Verificar que la base de datos este levantada con spfile&lt;br /&gt;&lt;br /&gt;show parameter spfile &lt;br /&gt;&lt;br /&gt;22. Ejecutar dvca con los siguientes parámetros:&lt;br /&gt;&lt;br /&gt;dvca -action option -oh $ORACLE_HOME -s_path /tmp -logfile $ORACLE_HOME/cfgtoollogs/dvca_install.log -owner_account dvowner  -owner_passwd pass1234# -acctmgr_account dvacctmgr -acctmgr_passwd pass1234# -jdbc_str jdbc:oracle:oci:@$ORACLE_SID -sys_passwd xxx -languages {en} –nodecrypt&lt;br /&gt;&lt;br /&gt;Donde:&lt;br /&gt;Pass1234# es la contraseña que hayamos asignado a los usuarios dvowner y dvacctmgr&lt;br /&gt;Xxx  es la contraseña de nuestro usuario sys&lt;br /&gt;$ORACLE_SID es el nombre de nuestra base de datos, la cual debe de estar previamente configurada en la variable de ambiente ORACLE_SID&lt;br /&gt;$ORACLE_HOME también debe de estar previamente configurado al path del software de oracle&lt;br /&gt;&lt;br /&gt;23. Realizar verificación de la instalación de Database Vault:&lt;br /&gt;&lt;br /&gt;a. Primero, al ejecutar SQL*Plus, vemos que marca como opción Database Vault y antes no lo marcaba:&lt;br /&gt;&lt;br /&gt;SQL*Plus: Release 10.2.0.5.0 - Production on Wed Aug 18 13:20:16 2010&lt;br /&gt;&lt;br /&gt;Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Connected to:&lt;br /&gt;Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production&lt;br /&gt;With the Partitioning, Oracle Label Security, OLAP, Data Mining,&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Oracle Database Vault &lt;/span&gt;and Real Application Testing options&lt;br /&gt;&lt;br /&gt;b. Verificar que todos los objetos de DVSYS y DVF estén válidos&lt;br /&gt; &lt;br /&gt;select owner,status,count(1)&lt;br /&gt;from dba_objects&lt;br /&gt;group by owner,status&lt;br /&gt;order by 1;&lt;br /&gt;&lt;br /&gt;c. Verificar que es posible ejecutar lo siguiente:&lt;br /&gt;Select dvf.f$session_user from dual;&lt;br /&gt;&lt;br /&gt;F$SESSION_USER&lt;br /&gt;--------------------------------------------------&lt;br /&gt;SYS&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;d. Verificar que el usuario sys no puede ver la siguiente table:&lt;br /&gt;Select * from dvsys.audit_trail$;&lt;br /&gt;&lt;br /&gt;Select * from dvsys.audit_trail$&lt;br /&gt;                    *&lt;br /&gt;ERROR at line 1:&lt;br /&gt;ORA-01031: insufficient privileges&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;e. Eliminar los datos de OLAP que pueden ocasionar problemas al momento de realizar exports con Data Pump:&lt;br /&gt;Delete from SYS.EXPPKGACT$ where package=’DBMS_AW_EXP’;&lt;br /&gt;&lt;br /&gt;e. Bajar la Base de datos.&lt;br /&gt;&lt;br /&gt;24. Cambiar contraseñas de DVSYS y DVF, y desbloquear cuentas. Para esto, es necesario primero deshabilitar DBVault y realizar los cambios.&lt;br /&gt;&lt;br /&gt;25. Para deshabilitar Database Vault:&lt;br /&gt;&lt;br /&gt;a. cd $ORACLE_HOME/rdbms/lib&lt;br /&gt;b. make –f ins_rdbms.mk dv_off&lt;br /&gt;c. cd $ORACLE_HOME/bin&lt;br /&gt;d. relink all&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;26. Aplicar los parches de database vault:&lt;br /&gt;&lt;br /&gt;a. 6401347  solo aplica para versión 10.2.0.4&lt;br /&gt;&lt;br /&gt;27. Levantar la base de datos&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;28. Ejecutar una compilación de objetos inválidos:&lt;br /&gt;&lt;br /&gt;@?/rdbms/admin/utlrp.sql&lt;br /&gt;&lt;br /&gt;29. Revisar nuevamente que todos los objetos de DVSYS y DVF estén válidos.&lt;br /&gt;&lt;br /&gt;select owner,status,count(1)&lt;br /&gt;from dba_objects&lt;br /&gt;group by owner,status&lt;br /&gt;order by 1;&lt;br /&gt;&lt;br /&gt;30. Cambiar passwords y desbloqueo de los usuarios dvsys y dvf (Esto aunque no está en el manual de oracle, yo lo recomiendo para no tener que deshabilitar database vault en el momento en que se quieran desbloquear las cuentas, hay que considerar que para deshabilitar database vault hay que bajar la base de datos)&lt;br /&gt;&lt;br /&gt;alter user dvsys identified by cambiame;&lt;br /&gt;alter user dvf identified by cambiame;&lt;br /&gt;alter user dvsys account unlock;&lt;br /&gt;alter user dvf account unlock;&lt;br /&gt;&lt;br /&gt;31. Bajar la base de datos y habilitar nuevamente Database Vault.&lt;br /&gt;&lt;br /&gt;32. Para habilitar Database Vault:&lt;br /&gt;&lt;br /&gt;a. cd $ORACLE_HOME/rdbms/lib&lt;br /&gt;b. make –f ins_rdbms.mk dv_on&lt;br /&gt;c. cd $ORACLE_HOME/bin&lt;br /&gt;d. relink all&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032562522678375043-6876535190053375050?l=erikamudespacher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://erikamudespacher.blogspot.com/feeds/6876535190053375050/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://erikamudespacher.blogspot.com/2010/08/database-vault.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032562522678375043/posts/default/6876535190053375050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032562522678375043/posts/default/6876535190053375050'/><link rel='alternate' type='text/html' href='http://erikamudespacher.blogspot.com/2010/08/database-vault.html' title='Database Vault'/><author><name>Erika Müdespacher</name><uri>http://www.blogger.com/profile/02957834141589524039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ksuTnhhvU-A/TGwf--sLdEI/AAAAAAAAAAM/mzQImySivX4/s72-c/oui2.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032562522678375043.post-1971799888741315684</id><published>2009-03-28T23:05:00.000-07:00</published><updated>2009-07-02T21:54:54.379-07:00</updated><title type='text'>BBED en Windows</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;BBED es un Editor binario de bloques, con el cual podemos examinar los bloques de Oracle en los datafiles.&lt;br /&gt;&lt;br /&gt;Es una utilería poco publicitada ya que está reservada para uso interno de Oracle, y con un mal uso de la misma podemos corromper la base de datos.&lt;br /&gt;&lt;br /&gt;Este post no está orientado a escribir sobre cómo utilizar bbed, para eso existe un buen documento en Internet hecho por Graham Thornton “Dissassembling the data block”.&lt;br /&gt;&lt;br /&gt;Para poder usar bbed en linux se tiene que ligar la utilería,  la cual todavía se puede obtener en distribuciones recientes de Oracle..&lt;br /&gt;Sin embargo en Windows venía como un ejecutable (bbed.exe) que se encontraba en ORACLE_HOME\bin, hasta la versión 8 de Oracle, desde la versión 9 ya no viene el ejecutable.&lt;br /&gt;&lt;br /&gt;Si tienen a la mano una instalación de Oracle versión 8, pueden buscar las librerías que listo a continuación y copiarlas al directorio ORACLE_HOME\bin de su Oracle 10g o 9i, y así podremos usar bbed versión 8 en las versiones 9 y 10 de Oracle.&lt;br /&gt;&lt;br /&gt;Estos son los archivos necesarios:&lt;br /&gt;&lt;br /&gt;Bbed.exe&lt;br /&gt;Oran8.dll&lt;br /&gt;Oranl8.dll&lt;br /&gt;Oranldap8.dll&lt;br /&gt;Orannzsbb8.dll&lt;br /&gt;Oracore8.dll&lt;br /&gt;Oranls8.dll&lt;br /&gt;Orageneric8.dll&lt;br /&gt;Oracommon8.dll&lt;br /&gt;Oraclient8.dll&lt;br /&gt;Oravsn8.dll&lt;br /&gt;Orawtc8.dll&lt;br /&gt;Oranro8.dll&lt;br /&gt;Orapls8.dll&lt;br /&gt;Oraslax8.dll&lt;br /&gt;Orasql8.dll&lt;br /&gt;Oraldapclnt8.dll&lt;br /&gt;Oratrace8.dll&lt;br /&gt;Orancrypt8.dll&lt;br /&gt;Oranhost8.dll&lt;br /&gt;Oranoname8.dll&lt;br /&gt;Orancds8.dll&lt;br /&gt;Orantns8.dll&lt;br /&gt;Orannds8.dll&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Y así finalmente puedo utilizar bbed en windows!&lt;br /&gt;&lt;br /&gt;C:&gt;bbed&lt;br /&gt;Password:&lt;br /&gt;&lt;br /&gt;BBED: Release 2.0.0.0.0 - Limited Production on Sat Mar 28 23:52:45 2009&lt;br /&gt;&lt;br /&gt;(c) Copyright 2000 Oracle Corporation. All rights reserved.&lt;br /&gt;************* !!! For Oracle Internal Use only !!! ***************&lt;br /&gt;&lt;br /&gt;BBED&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Recordemos que BBED debe de usarse únicamente en bases de datos de pruebas y solo es soportado por Oracle si lo realiza alguien de su mismo staff.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PD: Si alguien necesita los binarios y librerías, me pueden mandar un correo y se las comparto.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032562522678375043-1971799888741315684?l=erikamudespacher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://erikamudespacher.blogspot.com/feeds/1971799888741315684/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://erikamudespacher.blogspot.com/2009/03/bbed-en-windows.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032562522678375043/posts/default/1971799888741315684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032562522678375043/posts/default/1971799888741315684'/><link rel='alternate' type='text/html' href='http://erikamudespacher.blogspot.com/2009/03/bbed-en-windows.html' title='BBED en Windows'/><author><name>Erika Müdespacher</name><uri>http://www.blogger.com/profile/02957834141589524039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032562522678375043.post-4749895266190262505</id><published>2009-03-18T21:54:00.000-07:00</published><updated>2009-04-01T12:44:29.210-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UTL_FILE'/><category scheme='http://www.blogger.com/atom/ns#' term='UTL_HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='UTL_TCP'/><category scheme='http://www.blogger.com/atom/ns#' term='mandar mails desde la base de datos'/><category scheme='http://www.blogger.com/atom/ns#' term='PUBLIC'/><category scheme='http://www.blogger.com/atom/ns#' term='DBMS_OBFUSCATION_TOOLKIT'/><category scheme='http://www.blogger.com/atom/ns#' term='DBMS_CRYPTO y  DBMS_OBFUSCATION_TOOLKIT'/><category scheme='http://www.blogger.com/atom/ns#' term='UTL_SMTP'/><category scheme='http://www.blogger.com/atom/ns#' term='hackear la base de datos'/><title type='text'>UTL_SMTP</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Un usuario de la base de datos con dos privilegios: create session y create procedure puede mandar correos desde la base de datos, establecer conexiones de red con servicios TCP/IP, enviar y recibir datos a través del protocolo HTTP y escribir y leer datos de ciertos archivos de sistema operativo.&lt;br /&gt;&lt;br /&gt;Todo esto lo pueden hacer con los paquetes UTL_TCP, UTL_SMTP, UTL_HTTP y UTL_FILE, al crear la base de datos por default se hace un grant de estos paquetes al usuario PUBLIC.&lt;br /&gt;Por ejemplo&lt;br /&gt;Mandar un correo:&lt;br /&gt;(Primero probamos que haya conectividad con el servidor de correos)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;C:\Documents and Settings\Erika&gt;ping smtp.mydomain.com&lt;br /&gt;Pinging smtp.xxxxx.XXXX.com [XXX.XX.XXX.X] with 32 bytes of data:&lt;br /&gt;&lt;br /&gt;C:\Documents and Settings\Erika&gt;telnet smtp.xxxxxx.com 25&lt;br /&gt;&lt;br /&gt;220 xxxsmtp06.xxxxxx.hosting.xxxxMicrosoft ESMTP MAIL Service,&lt;br /&gt;Version: 6.0.3790.3959 ready at  Wed, 30 Jul 2008 20:43:41 -0500&lt;br /&gt;&lt;br /&gt;helo&lt;br /&gt;&lt;br /&gt;250 xxxsmtp06.xxxx.hosting. xxxx Hello [201.163.32.139]&lt;br /&gt;&lt;br /&gt;mail from: erika@mymail.com&lt;br /&gt;250 2.1.0 erika@mymail.com....Sender OK&lt;br /&gt;&lt;br /&gt;rcpt to: erika@mymail.com&lt;br /&gt;250 2.1.5 erika@mymail.com data&lt;br /&gt;&lt;br /&gt;354 Start mail input; end with &lt;crlf&gt;.&lt;crlf&gt;&lt;br /&gt;Subject: Prueba&lt;br /&gt;SMTP&lt;br /&gt;.&lt;br /&gt;&lt;br /&gt;250 2.6.0 &lt;xxxsmtp06fifql5hmcc0000ab6b@xxxsmtp06.xxxxx.hosting.xxxx&gt; Queued mail for delivery&lt;br /&gt;&lt;br /&gt;quit&lt;br /&gt;&lt;br /&gt;221 2.0.0 xxxsmtp06.xxxxx.hosting.xxxxx Service closing transmission channel&lt;br /&gt;Connection to host lost.&lt;br /&gt;&lt;br /&gt;C:\Documents and Settings\Erika&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/xxxsmtp06fifql5hmcc0000ab6b@xxxsmtp06.xxxxx.hosting.xxxx&gt;&lt;/crlf&gt;&lt;/crlf&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;Ahora, creo un usuario con los privilegios: create session, y create procedure ( a simple vista no parece ser un usuario con demasiados privilegios)&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SQL&gt; create user kika identified by kika;&lt;br /&gt;    User created.&lt;br /&gt;SQL&gt; grant create session to kika;&lt;br /&gt;    Grant succeeded.&lt;br /&gt;SQL&gt; grant create procedure to kika;&lt;br /&gt;   Grant succeeded.&lt;br /&gt;SQL&gt; conn kika/kika&lt;br /&gt;   Connected.&lt;br /&gt;SQL&gt;&lt;br /&gt;&lt;br /&gt;/* PL/SQL OBTENIDO DE OTN */&lt;br /&gt;&lt;br /&gt;Kika solo tiene create session y create procedure, como kika ejecuto lo siguiente:&lt;br /&gt;&lt;br /&gt;DECLARE&lt;br /&gt;c utl_smtp.connection;&lt;br /&gt;PROCEDURE send_header(name VARCHAR2, header VARCHAR2) AS&lt;br /&gt;BEGIN&lt;br /&gt; utl_smtp.write_data(c,name ':' header  UTL_TCP.CRLF);&lt;br /&gt;END;&lt;br /&gt;BEGIN&lt;br /&gt; c := utl_smtp.open_connection('smtp.xxxx.xxxx.com');&lt;br /&gt; utl_smtp.helo(c, 'xxxsmtp06.xxxxx.hosting.xxxx');&lt;br /&gt; utl_smtp.mail(c, ‘erika@mymail.com');&lt;br /&gt; utl_smtp.rcpt(c,’ erika@mymail.com’);&lt;br /&gt; utl_smtp.open_data(c);&lt;br /&gt; send_header('From', '"Sender" ');&lt;br /&gt; send_header('To', '"Recipient" ');&lt;br /&gt; send_header('Subject', 'Hello');&lt;br /&gt; utl_smtp.write_data(c, UTL_TCP.CRLF  'Hello, world!');&lt;br /&gt; utl_smtp.close_data(c);&lt;br /&gt; utl_smtp.quit(c);&lt;br /&gt;EXCEPTION&lt;br /&gt; WHEN utl_smtp.transient_error OR utl_smtp.permanent_error THEN&lt;br /&gt;   BEGIN&lt;br /&gt;     utl_smtp.quit(c);&lt;br /&gt;   EXCEPTION&lt;br /&gt;     WHEN utl_smtp.transient_error&lt;br /&gt;     OR utl_smtp.permanent_error THEN&lt;br /&gt;       NULL;&lt;br /&gt;   END;&lt;br /&gt;   raise_application_error(-20000, SQLERRM);&lt;br /&gt;END;&lt;br /&gt;/&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Después de esto como se imaginarán, recibí un correo.&lt;br /&gt;Yo creo que estos privilegios son muy poderosos en manos de un usuario malintencionado o descuidado, Oracle recomienda que revoquemos los privilegios UTL_TCP, UTL_SMTP, UTL_HTTP, UTL_FILE , DBMS_CRYPTO y DBMS_OBFUSCATION_TOOLKIT del usuario PUBLIC, pero Oracle es quien se los dio desde un inicio.&lt;br /&gt;Incluso, si revocamos estos privilegios de PUBLIC e instalamos un parche, podemos constatar que PUBLIC nuevamente tiene los privilegios, así que debemos tomar en cuenta esto cada vez que parchemos las bases de datos.&lt;br /&gt;&lt;/span&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032562522678375043-4749895266190262505?l=erikamudespacher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://erikamudespacher.blogspot.com/feeds/4749895266190262505/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://erikamudespacher.blogspot.com/2009/03/privilegios-peligrosos.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032562522678375043/posts/default/4749895266190262505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032562522678375043/posts/default/4749895266190262505'/><link rel='alternate' type='text/html' href='http://erikamudespacher.blogspot.com/2009/03/privilegios-peligrosos.html' title='UTL_SMTP'/><author><name>Erika Müdespacher</name><uri>http://www.blogger.com/profile/02957834141589524039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032562522678375043.post-1787789934511504636</id><published>2009-03-03T08:30:00.000-08:00</published><updated>2009-03-18T21:56:28.972-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='recovery catalog'/><category scheme='http://www.blogger.com/atom/ns#' term='rman'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>RMAN Recovery Catalog</title><content type='html'>El recovery catalog es un repositorio de metadatos de los respaldos con RMAN. El recovery catalog se crea en un esquema de usuario en alguna base de datos Oracle, y no es mas que un conjunto de paquetes, tablas, índices y vistas.&lt;br /&gt;Los datos en estas tablas se refrescan con información del control file a través del comando resync.&lt;br /&gt;Por eso el recovery catalog es opcional, ya que la información a fin de cuentas es proporcionada por el controlfile.&lt;br /&gt;La diferencia es que un catálogo de rman puede contener la información de todas las bases de datos que deseemos, y el controlfile solo contiene información de su propia base de datos.&lt;br /&gt;&lt;br /&gt;Es sencillo crear el catálogo, sigamos unos cuantos pasos:&lt;br /&gt;&lt;br /&gt;1.En alguna base de datos creamos el esquema dueño del catálogo, por tradición el esquema se nombra “rman” sin embargo puede ser algún otro esquema en la base de datos.&lt;br /&gt;Para evitar confusiones yo nombré al usuario “catowner”.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;SQL&gt; create user catowner identified by catowner&lt;br /&gt;  2  default tablespace catownertbs&lt;br /&gt;  3  quota unlimited on catownertbs;&lt;br /&gt;&lt;br /&gt;User created.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2.Al esquema seleccionado, se le otorga el permiso recovery_catalog_owner:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;SQL&gt; grant recovery_catalog_owner to catowner;&lt;br /&gt;Grant succeeded.&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3.Ahora vamos a crear el catálogo, para eso nos conectamos a rman y al esquema para catálogo que recién creamos:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;C:\&gt;rman&lt;br /&gt;Recovery Manager: Release 10.1.0.4.2 - Production&lt;br /&gt;Copyright (c) 1995, 2004, Oracle.  All rights reserved.&lt;br /&gt;&lt;br /&gt;RMAN&gt; connect catalog catowner/catowner@OAS&lt;br /&gt;connected to recovery catalog database&lt;br /&gt;recovery catalog is not installed&lt;br /&gt;RMAN&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4.Como podemos ver, nos manda un mensaje RMAN diciendo que el recovery catalog no está instalado. Vamos a crearlo:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;RMAN&gt; connect catalog catowner/catowner@OAS&lt;br /&gt;connected to recovery catalog database&lt;br /&gt;recovery catalog is not installed&lt;br /&gt;&lt;br /&gt;RMAN&gt; create catalog;&lt;br /&gt;recovery catalog created&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;5.A continuación, registramos la base de datos primary en el catálogo:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;RMAN&gt; connect target "sys/contraseña@primary"&lt;br /&gt;connected to target database: PRIMARY (DBID=1517448076)&lt;br /&gt;&lt;br /&gt;RMAN&gt; register database;&lt;br /&gt;database registered in recovery catalog&lt;br /&gt;starting full resync of recovery catalog&lt;br /&gt;full resync complete&lt;br /&gt;RMAN&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;6.Como podemos observar, se hizo un resync completo, es decir se refrescaron las tablas del catálogo con información del controlfile.&lt;br /&gt;&lt;br /&gt;7.Ahora podemos crear un sencillo respaldo a disco, utilizando nuestro catálogo.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;C:\&gt;rman target / catalog="catowner/catowner@OAS"&lt;br /&gt;&lt;br /&gt;Recovery Manager: Release 10.1.0.4.2 - Production&lt;br /&gt;Copyright (c) 1995, 2004, Oracle.  All rights reserved.&lt;br /&gt;connected to target database: PRIMARY (DBID=1517448076)&lt;br /&gt;connected to recovery catalog database&lt;br /&gt;&lt;br /&gt;RMAN&gt; run{&lt;br /&gt;allocate channel c1 type disk format 'D:\backup\pimary\bkpriamry_%U.bk';&lt;br /&gt;backup database plus archivelog;&lt;br /&gt;release channel c1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;8.Es muy importante que sepamos realizar los respaldos, pero mas importante que podamos recuperar nuestra base de datos cuando sea necesario. &lt;br /&gt;Una tarea de vital importancia es asegurarnos que nuestros respaldos sean efectivos, para eso contamos con el comando “restore database validate” El cual revisa si es posible en un momento dado restaurar la base de datos con los respaldos que tenemos, sin físicamente restaurarla, es decir, el comando simplemente simula si podemos restaurar la base de datos.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;RMAN&gt; restore database validate;&lt;br /&gt;&lt;br /&gt;Starting restore at 03-MAR-09&lt;br /&gt;allocated channel: ORA_DISK_1&lt;br /&gt;channel ORA_DISK_1: sid=124 devtype=DISK&lt;br /&gt;channel ORA_DISK_1: starting validation of datafile backupset&lt;br /&gt;channel ORA_DISK_1: restored backup piece 1&lt;br /&gt;piece handle=D:\BACKUP\PIMARY\BKPRIAMRY_0LK902OJ_1_1.BK tag=TAG20090303T114418&lt;br /&gt;channel ORA_DISK_1: validation complete&lt;br /&gt;Finished restore at 03-MAR-09&lt;br /&gt;RMAN&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Al no marcar error, podemos estar seguros de que nuestro respaldo es funcional para el caso de una restauración.&lt;br /&gt;&lt;br /&gt;9.Si quisiéramos ver cuáles respaldos RMAN utilizaría en caso de una recuperación contamos con el comando “restore database preview”:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;RMAN&gt; restore database preview ;&lt;br /&gt;&lt;br /&gt;Starting restore at 03-MAR-09&lt;br /&gt;using channel ORA_DISK_1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;List of Backup Sets&lt;br /&gt;===================&lt;br /&gt;&lt;br /&gt;BS Key  Type LV Size       Device Type Elapsed Time Completion Time&lt;br /&gt;------- ---- -- ---------- ----------- ------------ ---------------&lt;br /&gt;647     Full    543M       DISK        00:01:25     03-MAR-09&lt;br /&gt;        BP Key: 653   Status: AVAILABLE  Compressed: NO  Tag: TAG20090303T114418&lt;br /&gt;&lt;br /&gt;        Piece Name: D:\BACKUP\PIMARY\BKPRIAMRY_0LK902OJ_1_1.BK&lt;br /&gt;  List of Datafiles in backup set 647&lt;br /&gt;  File LV Type Ckp SCN    Ckp Time  Name&lt;br /&gt;  ---- -- ---- ---------- --------- ----&lt;br /&gt;  1       Full 392974     03-MAR-09 D:\ORADATA\PRIMARY\PRIMARY\SYSTEM01.DBF&lt;br /&gt;  2       Full 392974     03-MAR-09 D:\ORADATA\PRIMARY\PRIMARY\UNDOTBS01.DBF&lt;br /&gt;  3       Full 392974     03-MAR-09 D:\ORADATA\PRIMARY\PRIMARY\SYSAUX01.DBF&lt;br /&gt;  4       Full 392974     03-MAR-09 D:\ORADATA\PRIMARY\PRIMARY\USERS01.DBF&lt;br /&gt;Finished restore at 03-MAR-09&lt;br /&gt;&lt;br /&gt;RMAN&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;En un post siguiente escribiré sobre la base de datos auxiliar y como hacer una clonación en caliente.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032562522678375043-1787789934511504636?l=erikamudespacher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://erikamudespacher.blogspot.com/feeds/1787789934511504636/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://erikamudespacher.blogspot.com/2009/03/rman-recovery-catalog.html#comment-form' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032562522678375043/posts/default/1787789934511504636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032562522678375043/posts/default/1787789934511504636'/><link rel='alternate' type='text/html' href='http://erikamudespacher.blogspot.com/2009/03/rman-recovery-catalog.html' title='RMAN Recovery Catalog'/><author><name>Erika Müdespacher</name><uri>http://www.blogger.com/profile/02957834141589524039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032562522678375043.post-5731287798860999951</id><published>2009-02-27T23:18:00.000-08:00</published><updated>2009-03-04T15:11:13.298-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Matar sesiones Oracle en Windows</title><content type='html'>A veces necesitamos matar sesiones de la base de datos Oracle, muchas veces estas sesiones se quedan “colgadas” e inactivas incluso por dias, otras veces aunque están en estado activo se nos pide que las eliminemos.&lt;br /&gt;&lt;br /&gt;Para matar una sesión contamos con el comando ALTER SYSTEM KILL SESSION 'sid, serial#'&lt;br /&gt;&lt;br /&gt;Previamente debo de conocer el sid y el serial# de la sesión que deseo eliminar, en este caso quiero matar al usuario QUICK:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SQL&gt; select sid, serial#, username, status from v$session;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;       SID    SERIAL# USERNAME   STATUS&lt;br /&gt;---------- ---------- ---------- --------&lt;br /&gt;       370        226            ACTIVE&lt;br /&gt;       373        557 QUICK      INACTIVE&lt;br /&gt;       381         90 SYS        ACTIVE&lt;br /&gt;       383          1            ACTIVE&lt;br /&gt;       385          1            ACTIVE&lt;br /&gt;       386          7            ACTIVE&lt;br /&gt;       389          3            ACTIVE&lt;br /&gt;       390          3            ACTIVE&lt;br /&gt;       391          4            ACTIVE&lt;br /&gt;       393          1            ACTIVE&lt;br /&gt;       394          1            ACTIVE&lt;br /&gt;       395          1            ACTIVE&lt;br /&gt;       396          1            ACTIVE&lt;br /&gt;       397          1            ACTIVE&lt;br /&gt;       398          1            ACTIVE&lt;br /&gt;       399          1            ACTIVE&lt;br /&gt;       400          1            ACTIVE&lt;br /&gt;&lt;br /&gt;17 rows selected.&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;El comando para eliminar el sid 373 es el siguiente:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;SQL&gt; alter system kill session '373,557';&lt;br /&gt;&lt;br /&gt;System altered.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sin embargo hay ocasiones en que ALTER SYSTEM KILL SESSION no libera los bloqueos que tenía la sesión que matamos.&lt;br /&gt;Esto sucede cuando una sesión no puede ser interrumpida hasta que terminie la operación que está realizando. &lt;br /&gt;En este caso, la sesión mantiene todos los recursos que obtuvo de nuestro servidor hasta que termina la operación.&lt;br /&gt;Normalmente, la sesión que ejecutó el ALTER SYSTEM KILL SESSION  recibe el mensaje: “the session has been marked to be terminated”.&lt;br /&gt;Y la sesión aparece en v$session con status “KILLED”&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;SQL&gt; select sid, serial#, username, status from v$session;&lt;br /&gt;&lt;br /&gt;       SID    SERIAL# USERNA STATUS&lt;br /&gt;---------- ---------- ------ --------&lt;br /&gt;       370        108        ACTIVE&lt;br /&gt;       373        557 QUICK  KILLED&lt;br /&gt;       381         90 SYS    ACTIVE&lt;br /&gt;       383          1        ACTIVE&lt;br /&gt;       385          1        ACTIVE&lt;br /&gt;       386          7        ACTIVE&lt;br /&gt;       389          3        ACTIVE&lt;br /&gt;       390          3        ACTIVE&lt;br /&gt;       391          4        ACTIVE&lt;br /&gt;       393          1        ACTIVE&lt;br /&gt;       394          1        ACTIVE&lt;br /&gt;       395          1        ACTIVE&lt;br /&gt;       396          1        ACTIVE&lt;br /&gt;       397          1        ACTIVE&lt;br /&gt;       398          1        ACTIVE&lt;br /&gt;       399          1        ACTIVE&lt;br /&gt;       400          1        ACTIVE&lt;br /&gt;&lt;br /&gt;17 rows selected.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;En linux tenemos la ventaja de poder matar el proceso del usuario con un kill -9, conociendo previamente el proceso del usuario.&lt;br /&gt;&lt;br /&gt;La arquitectura de Windows no nos permite observar los distintos procesos que tiene Oracle, solo percibimos un oracle.exe, en el cual existen varios threads.&lt;br /&gt;&lt;br /&gt;Para que en Windows nos podamos liberar de la sesión que quedó en estatus “KILLED”, podemos hacer cualquiera de las siguientes opciones:&lt;br /&gt;1.Shutdown/Startup de la base de datos&lt;br /&gt;2.Utilizar la utilería ORAKILL para eliminar threads.&lt;br /&gt;&lt;br /&gt;Primeramente encontramos el thread con el siguiente query (debemos de conocer el thread previamente a ejecutar el comando  ALTER SYSTEM KILL SESSION, de otra manera Oracle perdería la referencia al thread en cuestión):&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;SQL&gt; select p.spid Thread, s.username Username, s.program&lt;br /&gt;  2  from   v$process p, v$session s&lt;br /&gt;  3  where  p.addr = s.paddr and s.username is not null;&lt;br /&gt;&lt;br /&gt;THREAD       USERNAME   PROGRAM&lt;br /&gt;------------ --------  -------------&lt;br /&gt;364          SYS       sqlplus.exe&lt;br /&gt;4524         QUICK     sqlplus.exe&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SQL&gt; exit&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;C:\Documents and Settings\Erika&gt;orakill -h&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Usage:  orakill sid thread&lt;br /&gt;&lt;br /&gt;  where sid = the Oracle instance to target&lt;br /&gt;  thread = the thread id of the thread to kill&lt;br /&gt;&lt;br /&gt;  The thread id should be retrieved from the spid column of a query such as:&lt;br /&gt;&lt;br /&gt;        select spid, osuser, s.program from&lt;br /&gt;        v$process p, v$session s where p.addr=s.paddr&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;El comando por lo tanto sería:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;C:\Documents and Settings\Erika&gt;orakill OAS 4524&lt;br /&gt;&lt;br /&gt;Kill of thread id 4524 in instance OAS successfully signalled.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Puesto que mi servicio se llama OAS.&lt;br /&gt;&lt;br /&gt;A continuación en v$session  vemos que ya no existe la sesión del usuario QUICK&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;SQL&gt; select sid, serial#, username, status from v$session;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;       SID    SERIAL# USERNAME   STATUS&lt;br /&gt;---------- ---------- ---------- --------&lt;br /&gt;       370        226            ACTIVE&lt;br /&gt;       381         90 SYS        ACTIVE&lt;br /&gt;       383          1            ACTIVE&lt;br /&gt;       385          1            ACTIVE&lt;br /&gt;       386          7            ACTIVE&lt;br /&gt;       389          3            ACTIVE&lt;br /&gt;       390          3            ACTIVE&lt;br /&gt;       391          4            ACTIVE&lt;br /&gt;       393          1            ACTIVE&lt;br /&gt;       394          1            ACTIVE&lt;br /&gt;       395          1            ACTIVE&lt;br /&gt;       396          1            ACTIVE&lt;br /&gt;       397          1            ACTIVE&lt;br /&gt;       398          1            ACTIVE&lt;br /&gt;       399          1            ACTIVE&lt;br /&gt;       400          1            ACTIVE&lt;br /&gt;&lt;br /&gt;16 rows selected.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Hay que tener cuidado porque al utilizar el comando ORAKILL para matar un thread corremos el riesgo de matar el proceso ORACLE.EXE&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032562522678375043-5731287798860999951?l=erikamudespacher.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://erikamudespacher.blogspot.com/feeds/5731287798860999951/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://erikamudespacher.blogspot.com/2009/02/veces-necesitamos-matar-sesiones-de-la.html#comment-form' title='7 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032562522678375043/posts/default/5731287798860999951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032562522678375043/posts/default/5731287798860999951'/><link rel='alternate' type='text/html' href='http://erikamudespacher.blogspot.com/2009/02/veces-necesitamos-matar-sesiones-de-la.html' title='Matar sesiones Oracle en Windows'/><author><name>Erika Müdespacher</name><uri>http://www.blogger.com/profile/02957834141589524039</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry></feed>
