<?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-6983707444642290516</id><updated>2011-11-27T22:47:49.958-02:00</updated><category term='Comenzando...'/><title type='text'>Oracle Tips en Español</title><subtitle type='html'>Este blog está destinado a compartir, comentar, y brindar información del motor de base de datos Oracle. En principio, trataré de tirar sobre el blog, errores y tareas con las que me vaya enfrentando en la convivencia diaria con Oracle... y al final... vaya a saber!!!
Las opiniones y comentarios de los usuarios son de muy valioso aporte y de exclusiva responsabilidad de cada uno.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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>25</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6983707444642290516.post-882101848904488173</id><published>2011-11-24T11:09:00.000-02:00</published><updated>2011-11-24T11:09:15.863-02:00</updated><title type='text'>Consultas útiles</title><content type='html'>Aquí van algunas de esas consultas que nos podrían ser útiles en el día a día.&lt;br /&gt;Copien, peguen y guarden bien a mano... Espero les sean de utilidad...&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL sobre la vista que muestra el estado de la base de datos:&lt;br /&gt;select * from v$instance&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL que muestra si la base de datos está abierta&lt;br /&gt;select status from v$instance&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL sobre la vista que muestra los parámetros generales de Oracle&lt;br /&gt;select * from v$system_parameter&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para conocer la Versión de Oracle&lt;br /&gt;select value from v$system_parameter where name = 'compatible'&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para conocer la Ubicación y nombre del fichero spfile&lt;br /&gt;select value from v$system_parameter where name = 'spfile'&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para conocer la Ubicación y número de ficheros de control&lt;br /&gt;select value from v$system_parameter where name = 'control_files'&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para conocer el Nombre de la base de datos&lt;br /&gt;select value from v$system_parameter where name = 'db_name'&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL sobre la vista que muestra las conexiones actuales a Oracle.&lt;br /&gt;Para visualizarla es necesario entrar con privilegios de administrador&lt;br /&gt;select osuser, username, machine, program&lt;br /&gt;from v$session&lt;br /&gt;order by osuser&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL que muestra el número de conexiones actuales a Oracle agrupado&lt;br /&gt;por aplicación que realiza la conexión&lt;br /&gt;select program Aplicacion, count(program) Numero_Sesiones&lt;br /&gt;from v$session&lt;br /&gt;group by program&lt;br /&gt;order by Numero_Sesiones desc&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL que muestra los usuarios de Oracle conectados y el número&lt;br /&gt;de sesiones por usuario&lt;br /&gt;select username Usuario_Oracle, count(username) Numero_Sesiones&lt;br /&gt;from v$session&lt;br /&gt;group by username&lt;br /&gt;order by Numero_Sesiones desc&lt;br /&gt;&lt;br /&gt;&amp;nbsp;•• Consulta Oracle SQL que muestra propietarios de objetos y número de objetos por&lt;br /&gt;propietario&lt;br /&gt;select owner, count(owner) Numero&lt;br /&gt;from dba_objects&lt;br /&gt;group by owner&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL sobre el Diccionario de datos (incluye todas las vistas y &lt;br /&gt;tablas de la Base de Datos)&lt;br /&gt;select * from dictionary&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL que muestra los datos de una tabla especificada (en este caso&lt;br /&gt;todas las tablas que lleven la cadena "XXX"&lt;br /&gt;select * from ALL_ALL_TABLES where upper(table_name) like '%XXX%'&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para conocer las tablas propiedad del usuario actual&lt;br /&gt;select * from user_tables&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para conocer todos los objetos propiedad del usuario&lt;br /&gt;conectado a Oracle&lt;br /&gt;select * from user_catalog&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para el DBA de Oracle que muestra los tablespaces, el espacio&lt;br /&gt;utilizado, el espacio libre y los ficheros de datos de los mismos:&lt;br /&gt;Select t.tablespace_name "Tablespace", t.status "Estado",&lt;br /&gt;ROUND(MAX(d.bytes)/1024/1024,2) "MB Tamaño",&lt;br /&gt;ROUND((MAX(d.bytes)/1024/1024) -&lt;br /&gt;(SUM(decode(f.bytes, NULL,0, f.bytes))/1024/1024),2) "MB Usados",&lt;br /&gt;ROUND(SUM(decode(f.bytes, NULL,0, f.bytes))/1024/1024,2) "MB Libres",&lt;br /&gt;t.pct_increase "% incremento",&lt;br /&gt;SUBSTR(d.file_name,1,80) "Fichero de datos"&lt;br /&gt;FROM DBA_FREE_SPACE f, DBA_DATA_FILES d, DBA_TABLESPACES t&lt;br /&gt;WHERE t.tablespace_name = d.tablespace_name AND&lt;br /&gt;f.tablespace_name(+) = d.tablespace_name&lt;br /&gt;AND f.file_id(+) = d.file_id GROUP BY t.tablespace_name,&lt;br /&gt;d.file_name, t.pct_increase, t.status ORDER BY 1,3 DESC&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para conocer los productos Oracle instalados y la versión:&lt;br /&gt;select * from product_component_version&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para conocer los roles y privilegios por roles:&lt;br /&gt;select * from role_sys_privs&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para conocer las reglas de integridad y columna a la que&lt;br /&gt;afectan:&lt;br /&gt;select constraint_name, column_name from sys.all_cons_columns&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para conocer las tablas de las que es propietario un usuario,&lt;br /&gt;en este caso "xxx":&lt;br /&gt;SELECT table_owner, table_name from sys.all_synonyms where table_owner like 'xxx'&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL como la anterior, pero de otra forma más efectiva (tablas de&lt;br /&gt;las que es propietario un usuario):&lt;br /&gt;SELECT DISTINCT TABLE_NAME&lt;br /&gt;FROM ALL_ALL_TABLES&lt;br /&gt;WHERE OWNER LIKE 'HR'&lt;br /&gt;&lt;br /&gt;•• Parámetros de Oracle, valor actual y su descripción:&lt;br /&gt;SELECT v.name, v.value value, decode(ISSYS_MODIFIABLE, 'DEFERRED',&lt;br /&gt;'TRUE', 'FALSE') ISSYS_MODIFIABLE, decode(v.isDefault, 'TRUE', 'YES',&lt;br /&gt;'FALSE', 'NO') "DEFAULT", DECODE(ISSES_MODIFIABLE, 'IMMEDIATE',&lt;br /&gt;'YES','FALSE', 'NO', 'DEFERRED', 'NO', 'YES') SES_MODIFIABLE,&lt;br /&gt;DECODE(ISSYS_MODIFIABLE, 'IMMEDIATE', 'YES', 'FALSE', 'NO',&lt;br /&gt;'DEFERRED', 'YES','YES') SYS_MODIFIABLE , v.description&lt;br /&gt;FROM V$PARAMETER v&lt;br /&gt;WHERE name not like 'nls%' ORDER BY 1&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL que muestra los usuarios de Oracle y datos suyos (fecha de&lt;br /&gt;creación, estado, id, nombre, tablespace temporal,...):&lt;br /&gt;Select * FROM dba_users&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para conocer tablespaces y propietarios de los mismos:&lt;br /&gt;select owner, decode(partition_name, null, segment_name,&lt;br /&gt;segment_name || ':' || partition_name) name,&lt;br /&gt;segment_type, tablespace_name,bytes,initial_extent,&lt;br /&gt;next_extent, PCT_INCREASE, extents, max_extents&lt;br /&gt;from dba_segments&lt;br /&gt;Where 1=1 And extents &amp;gt; 1 order by 9 desc, 3&lt;br /&gt;&lt;br /&gt;•• Últimas consultas SQL ejecutadas en Oracle y usuario que las ejecutó:&lt;br /&gt;select distinct vs.sql_text, vs.sharable_mem,&lt;br /&gt;vs.persistent_mem, vs.runtime_mem, vs.sorts,&lt;br /&gt;vs.executions, vs.parse_calls, vs.module,&lt;br /&gt;vs.buffer_gets, vs.disk_reads, vs.version_count,&lt;br /&gt;vs.users_opening, vs.loads,&lt;br /&gt;to_char(to_date(vs.first_load_time,&lt;br /&gt;'YYYY-MM-DD/HH24:MI:SS'),'MM/DD HH24:MI:SS') first_load_time,&lt;br /&gt;rawtohex(vs.address) address, vs.hash_value hash_value ,&lt;br /&gt;rows_processed , vs.command_type, vs.parsing_user_id ,&lt;br /&gt;OPTIMIZER_MODE , au.USERNAME parseuser&lt;br /&gt;from v$sqlarea vs , all_users au&lt;br /&gt;where (parsing_user_id != 0) AND&lt;br /&gt;(au.user_id(+)=vs.parsing_user_id)&lt;br /&gt;and (executions &amp;gt;= 1) order by buffer_gets/executions desc&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para conocer todos los tablespaces:&lt;br /&gt;select * from V$TABLESPACE&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para conocer la memoria Share_Pool libre y usada&lt;br /&gt;select name,to_number(value) bytes&lt;br /&gt;from v$parameter where name ='shared_pool_size'&lt;br /&gt;union all&lt;br /&gt;select name,bytes&lt;br /&gt;from v$sgastat where pool = 'shared pool' and name = 'free memory'&lt;br /&gt;&lt;br /&gt;•• Cursores abiertos por usuario&lt;br /&gt;select b.sid, a.username, b.value Cursores_Abiertos&lt;br /&gt;from v$session a,&lt;br /&gt;v$sesstat b,&lt;br /&gt;v$statname c&lt;br /&gt;where c.name in ('opened cursors current')&lt;br /&gt;and b.statistic# = c.statistic#&lt;br /&gt;and a.sid = b.sid&lt;br /&gt;and a.username is not null&lt;br /&gt;and b.value &amp;gt;0&lt;br /&gt;order by 3&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para conocer los aciertos de la caché (no debería superar el&lt;br /&gt;1 por ciento)&lt;br /&gt;select sum(pins) Ejecuciones, sum(reloads) Fallos_cache,&lt;br /&gt;trunc(sum(reloads)/sum(pins)*100,2) Porcentaje_aciertos&lt;br /&gt;from v$librarycache&lt;br /&gt;where namespace in ('TABLE/PROCEDURE','SQL AREA','BODY','TRIGGER');&lt;br /&gt;&lt;br /&gt;•• Sentencias SQL completas ejecutadas con un texto determinado en el SQL&lt;br /&gt;SELECT c.sid, d.piece, c.serial#, c.username, d.sql_text&lt;br /&gt;FROM v$session c, v$sqltext d&lt;br /&gt;WHERE c.sql_hash_value = d.hash_value&lt;br /&gt;and upper(d.sql_text) like '%WHERE CAMPO LIKE%'&lt;br /&gt;ORDER BY c.sid, d.piece&lt;br /&gt;&lt;br /&gt;•• Una sentencia SQL concreta (filtrado por sid)&lt;br /&gt;SELECT c.sid, d.piece, c.serial#, c.username, d.sql_text&lt;br /&gt;FROM v$session c, v$sqltext d&lt;br /&gt;WHERE c.sql_hash_value = d.hash_value&lt;br /&gt;and sid = 105&lt;br /&gt;ORDER BY c.sid, d.piece&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para conocer el tamaño ocupado por la base de datos&lt;br /&gt;select sum(BYTES)/1024/1024 MB from DBA_EXTENTS&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para conocer el tamaño de los ficheros de datos de la base&lt;br /&gt;de datos&lt;br /&gt;select sum(bytes)/1024/1024 MB from dba_data_files&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para conocer el tamaño ocupado por una tabla concreta sin&lt;br /&gt;incluir los índices de la misma&lt;br /&gt;select sum(bytes)/1024/1024 MB from user_segments&lt;br /&gt;where segment_type='TABLE' and segment_name='NOMBRETABLA'&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para conocer el tamaño ocupado por una tabla concreta&lt;br /&gt;incluyendo los índices de la misma&lt;br /&gt;select sum(bytes)/1024/1024 Table_Allocation_MB from user_segments&lt;br /&gt;where segment_type in ('TABLE','INDEX') and&lt;br /&gt;(segment_name='NOMBRETABLA' or segment_name in&lt;br /&gt;(select index_name from user_indexes where table_name='NOMBRETABLA'))&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para conocer el tamaño ocupado por una columna de una tabla&lt;br /&gt;select sum(vsize('NOMBRECOLUMNA'))/1024/1024 MB from NOMBRETABLA&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para conocer el espacio ocupado por usuario&lt;br /&gt;SELECT owner, SUM(BYTES)/1024/1024 MB FROM DBA_EXTENTS&lt;br /&gt;group by owner&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para conocer el espacio ocupado por los diferentes segmentos&lt;br /&gt;(tablas, índices, undo, rollback, cluster, ...)&lt;br /&gt;SELECT SEGMENT_TYPE, SUM(BYTES)/1024/1024 MB FROM DBA_EXTENTS&lt;br /&gt;group by SEGMENT_TYPE&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para obtener todas las funciones de Oracle: NVL, ABS, LTRIM,...&lt;br /&gt;SELECT distinct object_name&lt;br /&gt;FROM all_arguments&lt;br /&gt;WHERE package_name = 'STANDARD'&lt;br /&gt;order by object_name&lt;br /&gt;&lt;br /&gt;•• Consulta Oracle SQL para conocer el espacio ocupado por todos los objetos de la base de&lt;br /&gt;datos, muestra los objetos que más ocupan primero&lt;br /&gt;SELECT SEGMENT_NAME, SUM(BYTES)/1024/1024 MB FROM DBA_EXTENTS&lt;br /&gt;group by SEGMENT_NAME&lt;br /&gt;order by 2 desc&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-882101848904488173?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/882101848904488173/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2011/11/consultas-utiles_24.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/882101848904488173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/882101848904488173'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2011/11/consultas-utiles_24.html' title='Consultas útiles'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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-6983707444642290516.post-2072430329218546876</id><published>2011-11-21T17:19:00.001-02:00</published><updated>2011-11-21T17:19:57.611-02:00</updated><title type='text'>Caracter de escape</title><content type='html'>&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;div style="font-family: inherit;"&gt;Como ya bien sabemos &lt;b&gt;%&lt;/b&gt; y &lt;b&gt;_&lt;/b&gt; son caracteres de escape que sirven para generar patrones.&lt;/div&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;b&gt;%&lt;/b&gt; = equivale a O o N caracteres&lt;/div&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: inherit;"&gt;&lt;b&gt;_&lt;/b&gt;= equivale a O o 1 caracter&lt;/div&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;Nos podemos encontrar en situaciones en las que en el WHERE de una consulta queramos buscar caracteres que contengan &lt;b&gt;_&lt;/b&gt; o &lt;b&gt;%&lt;/b&gt; por lo que necesitaremos un caracter de escape que le diga a Oracle que esos dos&amp;nbsp; caracteres no son caracteres especiales.&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;Se hace de esta forma:&lt;/div&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="font-family: inherit;"&gt;&lt;/pre&gt;&lt;pre style="font-family: inherit;"&gt;SELECT name FROM emp&lt;br /&gt;WHERE id LIKE '%\%%' ESCAPE '\';&lt;/pre&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-2072430329218546876?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/2072430329218546876/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2011/11/caracter-de-escape.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/2072430329218546876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/2072430329218546876'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2011/11/caracter-de-escape.html' title='Caracter de escape'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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-6983707444642290516.post-3221562352124538835</id><published>2011-11-15T10:11:00.001-02:00</published><updated>2011-11-24T10:59:26.315-02:00</updated><title type='text'>Matar sesiones Oracle en Linux</title><content type='html'>&lt;h3 class="post-title entry-title"&gt;&lt;/h3&gt;&lt;div class="post-header"&gt;&lt;/div&gt;A veces necesitamos matar sesiones de la base de datos Oracle, muchas  veces estas sesiones se quedan “colgadas” e inactivas incluso por días,  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 debemos de conocer el sid y el serial# de la sesión que deseamos eliminar, en este caso queremos "matar" al usuario USER1:&lt;br /&gt;&lt;pre&gt;SQL: select sid, serial#, username, status from v$session;&lt;br /&gt;&lt;br /&gt;       SID    SERIAL# USERNAME   STATUS&lt;br /&gt;---------- ---------- ---------- --------&lt;br /&gt;       370        226            ACTIVE&lt;br /&gt;       373        557 USER1      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;/pre&gt;&lt;br /&gt;El comando para eliminar el sid 373 es el siguiente:&lt;br /&gt;&lt;pre&gt;SQL: alter system kill session '373,557';&lt;br /&gt;&lt;br /&gt;System altered.&lt;br /&gt;&lt;/pre&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. Esto sucede cuando una sesión no puede ser interrumpida hasta que terminie la operación que está realizando. En este caso, la sesión mantiene todos los recursos que obtuvo de nuestro servidor hasta que termina la operación. Normalmente,  la sesión que ejecutó el ALTER SYSTEM KILL SESSION  recibe el mensaje:  “the session has been marked to be terminated”; y la sesión aparece en v$session con status “KILLED”&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;SQL&amp;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 USER1  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;/pre&gt;&lt;br /&gt;Para poder matar el proceso del usuario en Linux, lo hacemos con un kill -9, conociendo previamente el proceso del usuario.&lt;br /&gt;&lt;br /&gt;*** EN EL CASO QUE ESTÉN BAJO CON ORACLE BAJO WINDOWS, SUGIERO REVISAR COMANDO ORAKILL.EXE ***&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;pre&gt;SQL&amp;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         USER1     sqlplus.exe&lt;br /&gt;&lt;/pre&gt;El comando por lo tanto sería:&lt;br /&gt;&lt;pre&gt;kill -9 4524&lt;/pre&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;pre&gt;SQL&amp;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;/pre&gt;&lt;br /&gt;Y con ésto, finalmente nos liberamos de esas molestas sesiones en estado KILLED que ocupan recursos en nuestra Base de Datos Oracle.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-3221562352124538835?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/3221562352124538835/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2011/11/matar-sesiones-oracle-en-linux.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/3221562352124538835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/3221562352124538835'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2011/11/matar-sesiones-oracle-en-linux.html' title='Matar sesiones Oracle en Linux'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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-6983707444642290516.post-3954196498949818314</id><published>2011-07-08T14:03:00.002-03:00</published><updated>2011-07-08T14:03:31.531-03:00</updated><title type='text'>Oracle y JBoss...</title><content type='html'>Oracle y JBoss.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-3954196498949818314?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/3954196498949818314/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2011/07/oracle-y-jboss.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/3954196498949818314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/3954196498949818314'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2011/07/oracle-y-jboss.html' title='Oracle y JBoss...'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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-6983707444642290516.post-989165375356294676</id><published>2011-03-16T12:33:00.003-03:00</published><updated>2011-03-17T10:34:05.077-03:00</updated><title type='text'>CRS-0223: Resource 'xxx' has placement error</title><content type='html'>Me encontré con este error luego de instalar DG4ODBC y reiniciar el RAC... y lo peor era un RAC que estaba en Producción!!! He aquí el primer consejo, y que está en la tapa del libro... no tocar algo que está funcionando y menos aún hacer pruebas sobre eso... :)&lt;br /&gt;&lt;br /&gt;Luego de algunos minutos y con los latidos a 200 por minuto, y viendo que el status de las instancias no era ONLINE... las mostraba como unknown, y obviamente no podía conectarme...&lt;br /&gt;&lt;br /&gt;crs_stat -t&lt;br /&gt;&lt;br /&gt;Name Type Target State Host &lt;br /&gt;------------------------------------------------------------&lt;br /&gt;ora.prod.db application ONLINE ONLINE&lt;br /&gt;ora....d1.inst application ONLINE UNKNOWN &lt;br /&gt;ora....d2.inst application ONLINE UNKNOWN&lt;br /&gt;ora....SM1.asm application ONLINE ONLINE racdb1 &lt;br /&gt;ora....B1.lsnr application ONLINE ONLINE racdb1 &lt;br /&gt;ora.racdb1.gsd application ONLINE ONLINE racdb1 &lt;br /&gt;ora.racdb1.ons application ONLINE ONLINE racdb1 &lt;br /&gt;ora.racdb1.vip application ONLINE ONLINE racdb1 &lt;br /&gt;ora....SM2.asm application ONLINE ONLINE racdb2 &lt;br /&gt;ora....B2.lsnr application ONLINE ONLINE racdb2 &lt;br /&gt;ora.racdb2.gsd application ONLINE ONLINE racdb2 &lt;br /&gt;ora.racdb2.ons application ONLINE ONLINE racdb2 &lt;br /&gt;ora.racdb2.vip application ONLINE ONLINE racdb2 &lt;br /&gt;&lt;br /&gt;Intenté levantarlas nuevamente... con crs_start, con srvctl...&lt;br /&gt;y nooo, no había caso... error!&lt;br /&gt;&lt;br /&gt;PRKP-1001 : Error starting instance prod1 on node racdb1&lt;br /&gt;CRS-1028: Dependency analysis failed because of:&lt;br /&gt;CRS-0223: Resource 'ora.prod1.racdb1.inst' has placement error.&lt;br /&gt;&lt;br /&gt;Se me complicó... dónde está la salida?!?!&lt;br /&gt;Intenté levantarlas como si fueran BDs stanalone primero prod1 y luego prod2...&lt;br /&gt;&lt;br /&gt;&amp;gt; export ORACLE_SID=prod1&lt;br /&gt;&amp;gt; sqlplus /nolog&lt;br /&gt;&amp;gt;&amp;gt; connect / as sysdba&lt;br /&gt;&amp;gt;&amp;gt; startup;&lt;br /&gt;&lt;br /&gt;y levantaron !!! la instancia 1 y la 2...&lt;br /&gt;&lt;br /&gt;Bueh... salimos del paso... no se ven una a otra como un RAC pero al menos accedo a los datos... simplemente cambio las propiedades de las aplicaciones que hacen uso del RAC, y que empiecen a apuntar a una de las instancias, sin necesidad de FAILOVER ni BALANCEO... por lo menos para empezar...&lt;br /&gt;&lt;br /&gt;Luego de un par de días de darle vueltas al asunto, encontré googleando, alguien que recomendaba matar los procesos crsd y probar levantar las instancias nuevamente... y fue lo que hice, y funcionó!&lt;br /&gt;&lt;br /&gt;&amp;gt; kill - 9 &lt;nro. crsd="" proceso=""&gt;--&amp;gt; en ambos nodos&lt;br /&gt;&amp;gt; srvctl start instance -i prod1 -d prod --&amp;gt; luego con prod2&lt;br /&gt;&lt;br /&gt;y listo!!! todo ONLINE nuevamente...&lt;br /&gt;&lt;br /&gt;crs_stat -t&lt;br /&gt;&lt;br /&gt;Name Type Target State Host &lt;br /&gt;------------------------------------------------------------&lt;br /&gt;ora.prod.db application ONLINE ONLINE racdb1 &lt;br /&gt;ora....d1.inst application ONLINE ONLINE racdb1 &lt;br /&gt;ora....d2.inst application ONLINE ONLINE racdb2 &lt;br /&gt;ora....SM1.asm application ONLINE ONLINE racdb1 &lt;br /&gt;ora....B1.lsnr application ONLINE ONLINE racdb1 &lt;br /&gt;ora.racdb1.gsd application ONLINE ONLINE racdb1 &lt;br /&gt;ora.racdb1.ons application ONLINE ONLINE racdb1 &lt;br /&gt;ora.racdb1.vip application ONLINE ONLINE racdb1 &lt;br /&gt;ora....SM2.asm application ONLINE ONLINE racdb2 &lt;br /&gt;ora....B2.lsnr application ONLINE ONLINE racdb2 &lt;br /&gt;ora.racdb2.gsd application ONLINE ONLINE racdb2 &lt;br /&gt;ora.racdb2.ons application ONLINE ONLINE racdb2 &lt;br /&gt;ora.racdb2.vip application ONLINE ONLINE racdb2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-989165375356294676?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/989165375356294676/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2011/03/crs-0223-resource-xxx-has-placement.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/989165375356294676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/989165375356294676'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2011/03/crs-0223-resource-xxx-has-placement.html' title='CRS-0223: Resource &apos;xxx&apos; has placement error'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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-6983707444642290516.post-7485675240661433324</id><published>2010-08-26T11:14:00.001-03:00</published><updated>2010-09-06T12:51:37.141-03:00</updated><title type='text'>JOIN eando...</title><content type='html'>Hace casi un año que no agregaba ningún post... hoy quizás sea la excepción... o no...&lt;br /&gt;&lt;br /&gt;Estaba pensando de que podía hablar (escribir en realidad). Se me cruzó por la mente describir los diferentes tipos de joins que podemos utilizar en una sentencia sql, y eso es lo que intentaré hacer...&lt;br /&gt;&lt;br /&gt;Los diferentes tipos de joins y sus aplicaciones:&lt;br /&gt;&lt;br /&gt;INNER JOIN&lt;br /&gt;Es el join "mas común", por decirlo de alguna forma. Se utiliza cuando se quiere matchear dos tablas que tienen valores en común en una o más columnnas.&lt;br /&gt;Se podría utilizar para matchear el id_pais de la tabla CLIENTES, con el id_pais de la tabla PAISES; eso nos traería los clientes que tengan asociado algún id_pais existente en la tabla PAISES.&lt;br /&gt;&lt;br /&gt;OUTER JOIN&lt;br /&gt;&lt;br /&gt;Se utiliza si se desea que el resultado no solo contenga los registros que cumplen con la condición del join, sino también cualquier registro que no cumpla de una tabla o de las demás.&lt;br /&gt;Por ejemplo, se puede usar para obtener todos los clientes de la tabla CLIENES con su país asociado de la tabla PAISES, incluyendo aquellos clientes que no tienen un país asociado.&lt;br /&gt;&lt;br /&gt;CROSS JOIN&lt;br /&gt;Utilizado cuando se quiere matchear todos los registros de una tabla con cada registro de otra tabla. Este tipo de join se lo conoce como producto cartesiano.&lt;br /&gt;&lt;br /&gt;SELF JOIN&lt;br /&gt;Se aplica para matchear una tabla consigo misma. Se puede usar self join cuando una columna de una tabla debe referenciar una columna diferente en la misma tabla.&lt;br /&gt;...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-7485675240661433324?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/7485675240661433324/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2010/08/join-eando.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/7485675240661433324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/7485675240661433324'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2010/08/join-eando.html' title='JOIN eando...'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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-6983707444642290516.post-5145293676313927030</id><published>2009-09-23T13:43:00.000-03:00</published><updated>2009-09-23T13:43:48.938-03:00</updated><title type='text'>Transportable Tablespaces</title><content type='html'>Con esta utilidad, lo que buscamos básicamente es bajar los tiempos de pasaje de datos, más específicamente al transferir un tablespace de una BD a otra, o al recuperarlo de un estado anterior (recover).&lt;br /&gt;&lt;br /&gt;Para poder transportar un tablespace, éste debe ser self-contained (auto-contenido), es decir, no debe contener objetos que referencien a otros objetos en diferentes tablespaces.&lt;br /&gt;&lt;br /&gt;Cómo chequeamos si el tablespace es self-contained?&lt;br /&gt;&lt;br /&gt;EXEC DBMS_TTS.TRANSPORT_SET_CHECK(ts_list =&amp;gt; '&lt;em&gt;nombre_tablespace&lt;/em&gt;', incl_constraints =&amp;gt; TRUE);&lt;br /&gt;&lt;br /&gt;Luego chequeamos la vista transport_set_violations para ver si existe alguna violación...&lt;br /&gt;&lt;br /&gt;SELECT * FROM transport_set_violations&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;RESPALDANDO EL TABLESPACE A TRANSPORTAR:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Como primer paso, luego de estos chequeos, debemos crear el "respaldo" del tablespace a transportar.&lt;br /&gt;&lt;br /&gt;Seteamos el tablespace en cuestión en modo READ ONLY:&lt;br /&gt;&lt;br /&gt;ALTER TABLESPACE &lt;em&gt;nombre_tablespace&lt;/em&gt; READ ONLY;&lt;br /&gt;&lt;br /&gt;Ejecutamos el siguiente export:&lt;br /&gt;&lt;br /&gt;exp parfile=export_parfile.txt&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size: x-small;"&gt;-- contenido archivo&amp;nbsp;export_parfile.txt&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;userid="sys/pass as sysdba"&lt;br /&gt;transport_tablespace=y&lt;br /&gt;tablespaces=(&lt;em&gt;nombre_tablespace&lt;/em&gt;)&lt;br /&gt;file=plug_in_&lt;em&gt;nombre_tablespace&lt;/em&gt;_ts.dmp&lt;br /&gt;log=plug_in_&lt;em&gt;nombre_tablespace&lt;/em&gt;_ts.log&lt;br /&gt;statistics=NONE&lt;br /&gt;&lt;br /&gt;Respaldamos los datafiles que componen&amp;nbsp;el tablespace, ésto lo podemos hacer simplemente con el comando de copia del sistema operativo (xcopy para Win o cp para Linux) o como más cómodo nos quede.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size: x-small;"&gt;-- ejemplo respaldo bajo Linux&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;cp &lt;em&gt;tablespace_datafile*.dbf&lt;/em&gt; /Respaldo&lt;br /&gt;&lt;br /&gt;Ya con ésto tenemos todo lo necesario para poder levantar el mismo tablespace en otra BD o simplemente para utilizarlo como respaldo.&lt;br /&gt;&lt;br /&gt;Ahora deberíamos llevar nuevamente el tablespace a modo READ WRITE para retornar a la "normalidad":&lt;br /&gt;&lt;br /&gt;ALTER TABLESPACE nombre_tablespace READ WRITE;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;RESTAURANDO EL TRANSPORTABLE TABLESPACE:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Ahora intentaremos&amp;nbsp;describir cómo hacer para levantar el respaldo que realizamos en el capítulo anterior.&lt;br /&gt;&lt;br /&gt;Si el tablespace que vamos a restaurar ya existe en nuestra BD destino, debemos eliminarlo:&lt;br /&gt;&lt;br /&gt;DROP TABLESPACE nombre_tablespace INCLUDING CONTENTS AND DATAFILES;&lt;br /&gt;&lt;br /&gt;Restauramos los datafiles del "respaldo", que tan cuidadosamente habíamos guardado...&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size: x-small;"&gt;-- ejemplo copia desde respaldo, supongamos orcl es la BD&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;cp /Respaldo/&lt;em&gt;tablespace_datafile*.dbf&amp;nbsp; &lt;/em&gt;$ORACLE_BASE/oradata/orcl&lt;br /&gt;&lt;br /&gt;Luego, debemos "enchufar" (no se me ocurrió otro término para traducir plug-in) el tablespace:&lt;br /&gt;&lt;br /&gt;imp parfile=plug_in_&lt;em&gt;nombre_tablespace&lt;/em&gt;_ts.txt&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size: x-small;"&gt;-- contenido archivo plug_in_nombre_tablespace_ts.txt&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;userid="sys/pass as sysdba"&lt;br /&gt;transport_tablespace=y&lt;br /&gt;file=plug_in_&lt;em&gt;nombre_tablespace&lt;/em&gt;_ts.dmp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;em&gt;&lt;span style="font-size: x-small;"&gt;-- dmp generado en el respaldo&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;log=plug_in_&lt;em&gt;nombre_tablespace&lt;/em&gt;_ts.log&lt;br /&gt;tablespaces=(&lt;em&gt;nombre_tablespace&lt;/em&gt;)&lt;br /&gt;tts_owners=&lt;em&gt;schema_origen&lt;/em&gt;&lt;br /&gt;fromuser=&lt;em&gt;schema_origen&lt;/em&gt;&lt;br /&gt;touser=&lt;em&gt;schema_destino&lt;/em&gt;&lt;br /&gt;datafiles=(&lt;br /&gt;'$ORACLE_BASE/oradata/orcl/&lt;em&gt;tablespace_datafile1&lt;/em&gt;.dbf ',&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;em&gt;&lt;span style="font-size: x-small;"&gt;-- declaramos todos los datafiles del ts&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;$ORACLE_BASE/oradata/orcl/&lt;em&gt;tablespace_datafile2&lt;/em&gt;.dbf '&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;em&gt;&lt;span style="font-size: x-small;"&gt;-- en su ubicación correspondiente&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;...&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;Luego de terminado el import, colocamos el tablespace en modo READ WRITE:&lt;br /&gt;&lt;br /&gt;ALTER TABLESPACE &lt;em&gt;nombre_tablespace &lt;/em&gt;READ WRITE;&lt;br /&gt;&lt;br /&gt;Si seguimos los pasos al pie de la letra, deberíamos poder realizar los transportes de tablespaces sin mayores problemas. Espero que haya sido de utilidad!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-5145293676313927030?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/5145293676313927030/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2009/09/transportable-tablespaces.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/5145293676313927030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/5145293676313927030'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2009/09/transportable-tablespaces.html' title='Transportable Tablespaces'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6983707444642290516.post-4585324475087779048</id><published>2009-09-22T16:08:00.000-03:00</published><updated>2009-09-22T16:08:46.570-03:00</updated><title type='text'>Vientos de cambio...</title><content type='html'>Qué mes difícil este setiembre!!!&lt;br /&gt;Vaivenes, complicaciones, interrogantes, dudas...&lt;br /&gt;Ahora soplan vientos de cambio... a enfrentarlos!!!&lt;br /&gt;Disculpen, nada tiene ésto que ver con Oracle... o si?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-4585324475087779048?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/4585324475087779048/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2009/09/vientos-de-cambio.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/4585324475087779048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/4585324475087779048'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2009/09/vientos-de-cambio.html' title='Vientos de cambio...'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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-6983707444642290516.post-595045172174479853</id><published>2009-09-22T14:43:00.003-03:00</published><updated>2009-09-22T18:23:46.772-03:00</updated><title type='text'>Ubicación de archivos</title><content type='html'>Veamos en este post, donde se encuentran por default,&amp;nbsp;algunos archivos y utilitarios&amp;nbsp;que podemos llegar a necesitar:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;alert.log&lt;/strong&gt; ($ORACLE_HOME/admin/orcl/bdump) donde orcl es el nombre de la instancia&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;orcl_ora_xxxx.trc&lt;/strong&gt;&amp;nbsp;- archivos trace de usuario - ($ORACLE_HOME/admin/orcl/udump)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;sqlplus&lt;/strong&gt; ($ORACLE_HOME/bin)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;dbca&lt;/strong&gt; ($ORACLE_HOME/bin)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;dbua&lt;/strong&gt; ($ORACLE_HOME/bin)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;spfile.ora&lt;/strong&gt; ($ORACLE_HOME/dbs)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;expdp &lt;/strong&gt;/&lt;strong&gt; impdp &lt;/strong&gt;/&lt;strong&gt; exp &lt;/strong&gt;/&lt;strong&gt; imp&lt;/strong&gt; ($ORACLE_HOME/bin)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-595045172174479853?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/595045172174479853/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2009/09/ubicacion-de-archivos.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/595045172174479853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/595045172174479853'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2009/09/ubicacion-de-archivos.html' title='Ubicación de archivos'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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-6983707444642290516.post-8391125444996768673</id><published>2009-09-02T14:09:00.000-03:00</published><updated>2009-09-02T14:09:53.642-03:00</updated><title type='text'>Mover columna LOB a otro tablespace</title><content type='html'>Mover una tabla de un tablespace a otro puede resultar tan sencillo como ejecutar la sentencia: &lt;br /&gt;&lt;br /&gt;alter table TABLA_SIMPLE move tablespace TS_DESTINO;&lt;br /&gt;&lt;br /&gt;Pero... qué sucede si esta tabla contiene un atributo de tipo CLOB?&lt;br /&gt;Cuando se crea una tabla con un atributo de tipo CLOB, Oracle implícitamente crea un segmento LOB y un índice LOB para dicha columna. Los nombres que asigna Oracle para estos objetos son, SYS_LOBxxxx para los segmentos y SYS_ILxxxx para los índices. &lt;br /&gt;Aquí va la receta para mover la tabla conjuntamente con ese índice y segmento LOB...&lt;br /&gt;&lt;br /&gt;Supongamos que la tabla en cuestión se llama TABLA_LOB. &lt;br /&gt;&lt;br /&gt;Ahora, verificamos el segmento, el índice&amp;nbsp;y la columna asociada al campo lob de&amp;nbsp;dicha&amp;nbsp;dicha tabla:&lt;br /&gt;&lt;br /&gt;select&amp;nbsp;segment_name, index_name,&amp;nbsp;column_name&amp;nbsp;from user_lobs where table_name='TABLA_LOB';&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;SEGMENT_NAME&amp;nbsp;&amp;nbsp; INDEX_NAME &amp;nbsp; COLUMN_NAME&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;--------------------------&amp;nbsp;&amp;nbsp; ---------------------&amp;nbsp;&amp;nbsp; ------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;SYS_LOB0000760032C00019$$&amp;nbsp;&amp;nbsp; SYS_IL0000760032C00019$$&amp;nbsp;&amp;nbsp; COLUMN_LOB&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;Movemos la tabla TABLA_LOB al tablespace que deseamos:&lt;br /&gt;&lt;br /&gt;alter table TABLA_LOB move tablespace TS_LOB;&lt;br /&gt;&lt;br /&gt;Con ésto hemos logrado, como ya sabíamos, mover la tabla TABLA_LOB al tablespace requerido,&amp;nbsp;pero el segmento LOB aún permanece en el tablespace de origen.&lt;br /&gt;&lt;br /&gt;Para mover el segmento debemos ejecutar el siguiente sql:&lt;br /&gt;&lt;br /&gt;alter table TABLA_LOB move lob (COLUMN_NAME) store as (tablespace TS_LOB);&lt;br /&gt;&lt;br /&gt;Verificamos:&lt;br /&gt;&lt;br /&gt;select index_name, tablespace_name from user_indexes where table_name = ‘TABLA_LOB’;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;INDEX_NAME&amp;nbsp;&amp;nbsp; TABLESPACE_NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;--------------------- &amp;nbsp; -------------------------------&lt;br /&gt;SYS_IL0000760032C00019$$&amp;nbsp;&amp;nbsp; TS_LOB&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Está listo, conseguimos mover el dichoso segmento!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-8391125444996768673?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/8391125444996768673/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2009/09/mover-columna-lob-otro-tablespace.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/8391125444996768673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/8391125444996768673'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2009/09/mover-columna-lob-otro-tablespace.html' title='Mover columna LOB a otro tablespace'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6983707444642290516.post-1506236060420932400</id><published>2009-08-13T18:17:00.003-03:00</published><updated>2009-08-14T13:10:28.756-03:00</updated><title type='text'>Eliminar registros duplicados</title><content type='html'>Si por algún motivo insertaron registros duplicados de una tabla, ya sea porque han eliminado la clave primaria o ni siquiera la han creado y ahora la consideran necesaria; por aquí les dejo una sentencia que los puede ayudar a eliminar esos registros innecesarios:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;delete from tabla&lt;br /&gt;where rowid not in&lt;br /&gt;(select min(rowid)&lt;br /&gt;from tabla&lt;br /&gt;group by (col_pk1, col_pk2, col_pk3...);&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Donde tabla indica la tabla en cuestión y las col_pk&lt;em&gt;n&lt;/em&gt; son las columnas que forman la primary key.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-1506236060420932400?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/1506236060420932400/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2009/08/eliminar-registros-duplicados.html#comment-form' title='6 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/1506236060420932400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/1506236060420932400'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2009/08/eliminar-registros-duplicados.html' title='Eliminar registros duplicados'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6983707444642290516.post-2038743795566787523</id><published>2009-08-12T13:23:00.009-03:00</published><updated>2009-08-12T19:11:56.100-03:00</updated><title type='text'>Inicio automático Oracle en Linux</title><content type='html'>En este post "intentaré" explicar cómo configurar el inicio automático de Oracle 10 en un S.O. Linux (Red Hat en mi caso particular).&lt;br /&gt;&lt;br /&gt;Luego de instalado Oracle, debemos editar el archivo /etc/oratab, donde dice algo similar a:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;$ORACLE_SID:$ORACLE_HOME:N&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Cambiamos la "N" por "Y" -- o sea le decimos que sí! :) --&lt;br /&gt;&lt;br /&gt;Quedaría:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;$ORACLE_SID:$ORACLE_HOME:Y&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;En mi caso particular quedó:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;orcl10:/u01/app/oracle/product/10.2.0/db_1:Y&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Luego creamos el archivo /etc/init.d/dbora con el usuario root, con el siguiente contenido:&lt;br /&gt;(espero que haya quedado bien el copy &amp;amp; paste!)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;#!/bin/bash&lt;br /&gt;#&lt;br /&gt;# chkconfig: 35 99 10&lt;br /&gt;# description: Starts and stops Oracle processes&lt;br /&gt;#&lt;br /&gt;# Set ORA_HOME to be equivalent to the $ORACLE_HOME&lt;br /&gt;# from which you wish to execute dbstart and dbshut;&lt;br /&gt;#&lt;br /&gt;# Set ORA_OWNER to the user id of the owner of the&lt;br /&gt;# Oracle database in ORA_HOME.&lt;br /&gt;#&lt;br /&gt;ORA_HOME=/u01/app/oracle/product/10.2.0/db_1ORA_OWNER=oracle&lt;br /&gt;case "$1" in&lt;br /&gt;      'start')&lt;br /&gt;            su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"&lt;br /&gt;&lt;br /&gt;            if [ -f $ORA_HOME/bin/oemctl ]; then&lt;br /&gt;                   su - $ORA_OWNER -c "$ORA_HOME/bin/emctl start dbconsole"&lt;br /&gt;            fi&lt;br /&gt;&lt;br /&gt;            su - $ORA_OWNER -c $ORA_HOME/bin/dbstart&lt;br /&gt;&lt;br /&gt;            # Start the Intelligent Agent&lt;br /&gt;            #if [ -f $ORA_HOME/bin/agentctl ]; then&lt;br /&gt;            #     su - $ORA_OWNER -c "$ORA_HOME/bin/agentctl start"&lt;br /&gt;            #else&lt;br /&gt;            #     su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl dbsnmp_start"&lt;br /&gt;            #fi&lt;br /&gt;            # Start Enterprise Management Console&lt;br /&gt;            #if [ -f $ORA_HOME/bin/oemctl ]; then&lt;br /&gt;            #     su - $ORA_OWNER -c "$ORA_HOME/bin/emctl start dbconsole"&lt;br /&gt;            #fi&lt;br /&gt;            # Start HTTP Server&lt;br /&gt;            #if [ -f $ORA_HOME/Apache/Apache/bin/apachectl ]; then&lt;br /&gt;            #     su - $ORA_OWNER -c "$ORA_HOME/Apache/Apache/bin/apachectl start"&lt;br /&gt;            #fi&lt;br /&gt;            touch /var/lock/subsys/dbora&lt;br /&gt;            ;;&lt;br /&gt;            'stop')&lt;br /&gt;           # Stop HTTP Server&lt;br /&gt;           #if [ -f $ORA_HOME/Apache/Apache/bin/apachectl ]; then&lt;br /&gt;           #    su - $ORA_OWNER -c "$ORA_HOME/Apache/Apache/bin/apachectl stop"&lt;br /&gt;           #fi&lt;br /&gt;           # Stop Enterprise Management Console&lt;br /&gt;           if [ -f $ORA_HOME/bin/oemctl ]; then&lt;br /&gt;                  su - $ORA_OWNER -c "$ORA_HOME/bin/emctl stop dbconsole"&lt;br /&gt;           fi&lt;br /&gt;           # Stop the Intelligent Agent&lt;br /&gt;           #if [ -f $ORA_HOME/bin/agentctl ]; then&lt;br /&gt;           #     su - $ORA_OWNER -c "$ORA_HOME/bin/agentctl stop"&lt;br /&gt;           #else&lt;br /&gt;           #     su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl dbsnmp_stop"&lt;br /&gt;           #fi&lt;br /&gt;           # Stop the TNS Listener su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"&lt;br /&gt;           # Stop the Oracle databases:&lt;br /&gt;           # The following command assumes that the oracle login&lt;br /&gt;           # will not prompt the user for any values&lt;br /&gt;           su - $ORA_OWNER -c $ORA_HOME/bin/dbshut&lt;br /&gt;           rm -f /var/lock/subsys/dbora&lt;br /&gt;           ;;&lt;br /&gt;esac &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;# End of script dbora&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;A continuación (seguimos con root) seteamos los privilegios sobre el archivo dbora:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;chmod 750 /etc/init.d/dbora&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;Y asociamos al servicio con los runlevels apropiados:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;chkconfig --level 345 dbora on&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;La instancia ahora debería iniciarse automáticamente al reinicio de nuestro servidor Oracle. Hay un bug conocido que nos puede complicar al reinicio, pero no preocuparse, porque por suerte "es conocido" y tiene solución!&lt;br /&gt;&lt;br /&gt;Si nos encontramos con este error:&lt;br /&gt;&lt;br /&gt;Failed to auto-start Oracle Net Listener&lt;br /&gt;using /ade/vikrkuma_new/bin/tnslsnr&lt;br /&gt;&lt;br /&gt;Se debe a un path hard-coded en el script dbstart. Para solucionarlo editamos el archivo $ORACLE_HOME/bin/dbstart y reemplazamos la siguiente línea (línea 78 aprox.):&lt;br /&gt;&lt;br /&gt;&lt;em&gt;ORACLE_HOME_LISTENER=/ade/vikrkuma_new/oracle&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;Con ésto:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;ORACLE_HOME_LISTENER=$ORACLE_HOME&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;Ahora sí, con esta modificación el listener debería iniciar automáticamente sin problema alguno.&lt;br /&gt;&lt;br /&gt;Espero que este post les sea de utilidad!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-2038743795566787523?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/2038743795566787523/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2009/08/inicio-automatico-oracle-en-linux.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/2038743795566787523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/2038743795566787523'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2009/08/inicio-automatico-oracle-en-linux.html' title='Inicio automático Oracle en Linux'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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-6983707444642290516.post-236191739160439829</id><published>2009-08-10T12:39:00.010-03:00</published><updated>2009-08-10T17:47:35.150-03:00</updated><title type='text'>Habilitar ARCHIVELOG</title><content type='html'>La mayoría de las características de Alta Disponibilidad de Oracle requieren el modo ARCHIVELOG activado. Una vez habilitada esta característica, los archivos redo logs, serán guardados antes de ser sobreescritos.&lt;br /&gt;&lt;br /&gt;Habilitar ARCHIVELOG a partir de la versión 10, resulta más sencillo que en versiones anteriores, debido a que no debemos especificar siquiera parámetro de inicio en el spfile (como el "LOG_ARCHIVE_START=true" en la versión 9).&lt;br /&gt;&lt;br /&gt;Como chequeamos si está habilitado el modo ARCHIVELOG?&lt;br /&gt;&lt;br /&gt;SQL&gt; &lt;strong&gt;archive log list&lt;/strong&gt;;&lt;br /&gt;Database log mode No Archive Mode&lt;br /&gt;Automatica archival Disabled&lt;br /&gt;Archive destination USE_DB_RECOVERY_FILE_DES&lt;br /&gt;Oldest online log sequence 42541&lt;br /&gt;Current log sequence 42543&lt;br /&gt;&lt;br /&gt;El "No Archive Mode" evidentemente nos indica que esta base no esta guardando los online archive logs, es decir, no está en modo ARCHIVELOG.&lt;br /&gt;&lt;br /&gt;Cómo hacemos para habilitarlo?&lt;br /&gt;&lt;br /&gt;&lt;em&gt;sqlplus sys/pass as sysdba&lt;/em&gt; &lt;span style="font-size:85%;color:#000099;"&gt;-- nos conectamos a la consola de SQLPlus --&lt;/span&gt;&lt;br /&gt;SQL&gt; &lt;em&gt;shutdown immediate;&lt;/em&gt; &lt;span style="font-size:85%;color:#000099;"&gt;-- si la BD está levantada, la bajamos; de lo contrario obviamos este paso --&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#000099;"&gt;&lt;span style="font-size:100%;color:#000000;"&gt;SQL&gt; &lt;em&gt;startup mount;&lt;/em&gt; &lt;/span&gt;-- montamos la BD --&lt;/span&gt;&lt;br /&gt;SQL&gt; &lt;em&gt;alter database archivelog; &lt;/em&gt;&lt;span style="font-size:85%;color:#000099;"&gt;-- activamos ARCHIVELOG --&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#000099;"&gt;&lt;em&gt;&lt;span style="font-size:100%;color:#000000;"&gt;SQL&gt; alter database open;&lt;/span&gt;&lt;/em&gt; -- levantamos la BD --&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#000099;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;Nuestra BD finalmente quedó en modo ARCHIVELOG!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Los archivos generados por el archivado de logs, por default, quedarán ubicados en la FRA (Flash Recovery Area).&lt;br /&gt;&lt;br /&gt;Esta sentencia nos indicará la ubicación de los archive logs y el tamaño asignado para esta área:&lt;br /&gt;&lt;em&gt;select * from v$parameter where name in ('db_recovery_file_dest','db_recovery_file_dest_size');&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;Hasta aquí este artículo sobre ARCHIVELOG!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-236191739160439829?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/236191739160439829/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2009/08/habilitar-archive-logs.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/236191739160439829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/236191739160439829'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2009/08/habilitar-archive-logs.html' title='Habilitar ARCHIVELOG'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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-6983707444642290516.post-4657248387444691370</id><published>2009-08-04T12:04:00.003-03:00</published><updated>2009-08-04T12:45:23.058-03:00</updated><title type='text'>ORA-12518</title><content type='html'>Cuando me encontré con este ORA error, que rezaba un lindo mensaje "TNS:listener could not hand off client connection", me quería volver loco!!! No sabía por donde empezar...&lt;br /&gt;&lt;br /&gt;Las características del Server con el que estaba piloteando eran:&lt;br /&gt;Intel Quad Core&lt;br /&gt;4Gb RAM&lt;br /&gt;Windows 2003 (32 bits)&lt;br /&gt;Oracle 10.2.0.3&lt;br /&gt;SGA &gt;1.6Gb&lt;br /&gt;320Mb PGA&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;Googleando en la vuelta, no encontré nada preciso que me ayudara rápidamente a solucionar el error, hasta que en metalink (metalink.oracle.com) hallé el DOC ID 556428.1 que me dió algunas sugerencias interesantes.&lt;br /&gt;&lt;br /&gt;Un primer intento, aumentar el nro. de processes, pero los resultados no fueron los esperados; en realidad tampoco esperaba que diera resultado, pero... en fin... fue un intento no más!&lt;br /&gt;Luego, viendo que la memoria que tenía asignada la SGA+PGA estaban "CASI" en los 2Gb y que mi S.O. era de 32 bits... Ups! se supone que un sistema de 32bits. no puede redireccionar más de 2Gb a un solo proceso, y yo estaba caminando por la corniza... máxime que ese día la carga de usuarios en el sistema se veía algo incrementada comparada con los demás días. Ahí lo que me quedaba era disminuir la memoria asignada a la SGA o probar con el parámetro /3GB en el boot.ini; ésto último fue lo que terminé configurando y por suerte salimos a flote.&lt;br /&gt;&lt;br /&gt;Configurando el parámetro /3GB logramos que un sistema Win 32 bits redireccione arriba de los 2Gb de memoria por proceso.&lt;br /&gt;&lt;br /&gt;Cómo setear este parámetro?&lt;br /&gt;&lt;br /&gt;Contenido archivo boot.ini&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt;[boot loader]&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt;timeout=30&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt;default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt;[operating systems]&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt;multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Standard" &lt;span style="color:#cc0000;"&gt;/3Gb&lt;/span&gt; /fastdetect /NoExecute=OptOut&lt;/em&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-4657248387444691370?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/4657248387444691370/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2009/08/ora-12518.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/4657248387444691370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/4657248387444691370'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2009/08/ora-12518.html' title='ORA-12518'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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-6983707444642290516.post-8250674555011974120</id><published>2009-07-24T17:06:00.003-03:00</published><updated>2009-07-30T14:53:15.154-03:00</updated><title type='text'>ORA-12519</title><content type='html'>El mensaje de este error nos dice: TNS:no appropriate service handler found&lt;br /&gt;&lt;br /&gt;Cuando nos encontramos con este error, sugiero revisar el parámetro processes de nuestra BD:&lt;br /&gt;&lt;span style="color:#000099;"&gt;&lt;em&gt;select value from v$parameter where name='processes'&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#000099;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;Muy probablemente, solucionemos el tema aumentando este valor (en este caso a 300):&lt;/span&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#000099;"&gt;alter system set processes=300 scope=spfile&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#000099;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;Luego de ésto, la BD necesitará de un reinicio para adoptar este nuevo valor.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-8250674555011974120?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/8250674555011974120/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2009/07/ora-12519.html#comment-form' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/8250674555011974120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/8250674555011974120'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2009/07/ora-12519.html' title='ORA-12519'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6983707444642290516.post-4319935804416118055</id><published>2009-07-09T13:48:00.008-03:00</published><updated>2009-08-10T18:58:50.200-03:00</updated><title type='text'>Explain plan</title><content type='html'>&lt;div&gt;Para obterner el plan de ejecución de una sentencia existen diferentes métodos. A mi entender, el más recomendable es el método "Explain Plan", que a contraposición del "Autotrace", no necesita ejecutar la sentencia completamente para lograr la salida buscada.&lt;br /&gt;&lt;br /&gt;A ver si me explico mejor gráficamente...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_QU4jxzR2UCA/SmoXhmf8s_I/AAAAAAAAABg/zrxungvDmZs/s1600-h/planeje.gif"&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/_QU4jxzR2UCA/SmoX2OGYyoI/AAAAAAAAABo/9rMDNoJn2PE/s1600-h/planeje.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5362124526603258498" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 300px" alt="" src="http://1.bp.blogspot.com/_QU4jxzR2UCA/SmoX2OGYyoI/AAAAAAAAABo/9rMDNoJn2PE/s400/planeje.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://2.bp.blogspot.com/_QU4jxzR2UCA/SlZK_gv3WMI/AAAAAAAAABU/slgxNgBOW-c/s1600-h/exp_plan.jpg"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-4319935804416118055?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/4319935804416118055/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2009/07/explain-plan.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/4319935804416118055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/4319935804416118055'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2009/07/explain-plan.html' title='Explain plan'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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/_QU4jxzR2UCA/SmoX2OGYyoI/AAAAAAAAABo/9rMDNoJn2PE/s72-c/planeje.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6983707444642290516.post-3042004435729414570</id><published>2009-07-08T11:50:00.010-03:00</published><updated>2009-08-20T17:57:08.879-03:00</updated><title type='text'>Expdp e Impdp</title><content type='html'>Datapump dejó por el camino, a partir de Oracle 10, a las viejas utilidades de exp e imp ya conocidas. Con las características de direct path y ejecuciones en paralelo datapump es mucho más veloz que sus antecesores.&lt;br /&gt;Los tradicionales exp e imp corren del lado del cliente (client-side) mientras que expdp e impdp lo hacen del lado del servidor (server-side), lo que hace que sea más manejable.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Procesos involucrados en los trabajos de datapump:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;Client process&lt;/span&gt;: este proceso es iniciado por la utilidad del cliente, llamando a la API datapump. Una vez que se inicia el datapump, este proceso no es necesario para el resto del trabajo.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;Shadow process&lt;/span&gt;: cuando el cliente se loguea en la BD, se crea el proceso foreground que atiende las solicitudes de la API. Este proceso crea la master table y las colas utilizadas para la comunicación. Una vez que el proceso del cliente termina, shadow process también.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;Master control process&lt;/span&gt;: este proceso controla la ejecución de los trabajos de datapump. Existe un MCP por cada trabajo de datapump. MCP divide el trabajo de datapump en varios sub-trabajos de carga y descarga de metadatos y los transfiere a los worker processes.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;Worker process&lt;/span&gt;: MCP crea los worker process basado en el valor del parámetro PARALLEL. El worker process realiza la tarea solicitada por el MCP.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Ventajas de datapump:&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;* Podemos exportar en paralelo, escribiendo en múltiples archivos en diferentes discos. Por ejemplo, especificando el parámetro PARALLEL=2 y dos directorios con los nombres de archivos destino, DUMPFILE=dir1:/file1.dp, dir2:/file2.dp.&lt;br /&gt;&lt;br /&gt;* Posibilidad de realizar attach y dettach del trabajo, monitoreando el trabajo remotamente.&lt;br /&gt;&lt;br /&gt;* Más opciones para filtrado de metadatos (parámetros EXCLUDE e INCLUDE).&lt;br /&gt;&lt;br /&gt;* Podemos estimar los requerimientos de espacio en disco con el parámetro ESTIMATE_ONLY, antes de ejecutar la tarea.&lt;br /&gt;&lt;br /&gt;* Los datos pueden ser exportados desde una BD remota utilizando un DB link.&lt;br /&gt;&lt;br /&gt;* Puede especificarse la versión de la BD y exportar solo los objetos compatibles con dicha versión.&lt;br /&gt;&lt;br /&gt;* Durante la tarea de impdp podemos cambiar el destino de los datafiles, esquemas y tablespaces (REMAP_DATAFILES, REMAP_SCHEMA, REMAP_TABLESPACE).&lt;br /&gt;&lt;br /&gt;* Nos permite filtrar los datos durante la ejecución de impdp.&lt;br /&gt;&lt;br /&gt;* Puede importarse desde una BD hacia otra sin escribir a un archivo de dump, especificando el parámetro NETWORK_LINK.&lt;br /&gt;&lt;br /&gt;* El status de los trabajos pueden ser consultados directamente desde el data dictionary. Por ejemplo, dba_datapump_jobs, dba_datapump_sessions, etc.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Ejemplos de sintaxis:&lt;/strong&gt;&lt;br /&gt;En estos ejemplos se utilizan parfiles (archivos plano de texto) para especificar los parámetros a utilizar en el expdp e impdp. Para ejecutar un expdp o impdp utilizando un parfile: expdp parfile=archivo_parfile.txt o impdp parfile=archivo_parfile.txt.&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;En los diferentes escenarios se muestra el contenido de cada parfile en particular.&lt;br /&gt;El parámetro directory, especifica donde quedará el dmp exportado, o de donde se toma el dmp de origen para realizar una importación. La ubicación data_pump_dir, en una instalación por default, apunta a la ubicación $ORACLE_BASE/admin/&lt;sid&gt;dpdump.&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Escenario 1:&lt;/strong&gt;&lt;br /&gt;Exportar la base ORCL completa.&lt;br /&gt;&lt;br /&gt;userid=system/password@ORCL&lt;br /&gt;dumpfile=completadp.dmp&lt;br /&gt;logfile=completadp.log&lt;br /&gt;full=y&lt;br /&gt;directory=data_pump_dir&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Escenario 2:&lt;/strong&gt;&lt;br /&gt;Exportar schema SCOTT de la base ORCL.&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;userid=system/password@ORCL&lt;br /&gt;dumpfile=scottdp.dmp&lt;br /&gt;logfile=scottdp.log&lt;br /&gt;schemas=SCOTT&lt;br /&gt;directory=data_pump_dir&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Escenario 3:&lt;/strong&gt;&lt;br /&gt;Exportar las tablas PAISES y CIUDADES del esquema SCOTT.&lt;br /&gt;&lt;br /&gt;userid=system/password@ORCL&lt;br /&gt;dumpfile=scott_paisyciuddp.dmp&lt;br /&gt;logfile=scott_paisyciuddp.log&lt;br /&gt;tables=(SCOTT.PAISES,SCOTT.CIUDADES)&lt;br /&gt;directory=data_pump_dir&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Escenario 4:&lt;/strong&gt;&lt;br /&gt;Exportar la tabla EMPLEADOS del schema SCOTT de la base ORCL e importarla sobre la base ORCL_NEW.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;*expdp parfile&lt;/strong&gt;&lt;br /&gt;userid=system/password@ORCL&lt;br /&gt;dumpfile=scott_empdp.dmp&lt;br /&gt;logfile=scott_empdp.log&lt;br /&gt;tables=SCOTT.EMPLEADOS&lt;br /&gt;directory=data_pump_dir&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;*impdp parfile&lt;/strong&gt;&lt;br /&gt;userid=system/password@ORCL_NEW&lt;br /&gt;dumpfile=scott_empdp.dmp &lt;span style="font-size:85%;"&gt;&lt;span style="color:#000099;"&gt;-- se utiliza el dmp creado en el paso anterior --&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;logfile=imp_scott_empdp.log&lt;br /&gt;directory=data_pump_dir&lt;br /&gt;table_exists_action=replace &lt;span style="font-size:85%;"&gt;&lt;span style="color:#000099;"&gt;-- en caso de que la tabla exista en el destino, se reemplazará --&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#000099;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;Escenario 5:&lt;/strong&gt;&lt;br /&gt;Exportar solamente la estructura, sin incluir datos, del esquema SCOTT.&lt;br /&gt;&lt;br /&gt;userid=system/password@ORCL&lt;br /&gt;dumpfile=scott_metadata.dmp&lt;br /&gt;logfile=scott_metadata.log&lt;br /&gt;content=metadata_only &lt;span style="font-size:85%;color:#000099;"&gt;-- solamente la estructura --&lt;/span&gt;&lt;br /&gt;schemas=SCOTT&lt;br /&gt;directory=data_pump_dir&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Escenario 6:&lt;/strong&gt;&lt;br /&gt;Exportar del esquema SCOTT, los registros de las tablas PAISES y CIUDADES cuyo nombre comience con letra A.&lt;br /&gt;&lt;br /&gt;userid=system/password@ORCL&lt;br /&gt;dumpfile=scott_soloA.dmp&lt;br /&gt;logfile=scott_soloA.log&lt;br /&gt;content=data_only&lt;br /&gt;schemas=SCOTT&lt;br /&gt;include=table:"in('PAISES','CIUDADES')"&lt;br /&gt;query="where nombre like 'A%'"&lt;br /&gt;directory=data_pump_dir&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-3042004435729414570?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/3042004435729414570/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2009/07/expdp-e-impdp.html#comment-form' title='6 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/3042004435729414570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/3042004435729414570'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2009/07/expdp-e-impdp.html' title='Expdp e Impdp'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6983707444642290516.post-6841939274375525631</id><published>2009-07-07T16:38:00.008-03:00</published><updated>2009-09-24T13:30:27.851-03:00</updated><title type='text'>Cortitas...</title><content type='html'>Quizás este tipo de comentario tendrían que haber estado al inicio (cronológicamente) del blog, pero bueh, las disculpas del caso, se me ocurrió ahora!!!&lt;br /&gt;&lt;br /&gt;Cómo creo un usuario?&lt;br /&gt;&lt;span style="color: #000099;"&gt;create user &lt;em&gt;usuario&lt;/em&gt; identified by &lt;em&gt;password&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000099;"&gt;default tablespace &lt;em&gt;USERS&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000099;"&gt;temporary tablespace &lt;em&gt;TEMP&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000099;"&gt;profile default;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Cómo cambio el password de un usuario existente?&lt;br /&gt;&lt;span style="color: #000099;"&gt;alter user &lt;em&gt;usuario&lt;/em&gt; identified by &lt;em&gt;password;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #330033;"&gt;Cómo creo un tablespace de 1Gb, autoextensible, tamaño máximo 10Gb?&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000099;"&gt;create tablespace &lt;em&gt;nombre_ts&lt;/em&gt; datafile&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000099;"&gt;'&lt;em&gt;c:\oracle\oradata\nombre_datafile.dbf&lt;/em&gt;' size 1024m autoextend on next 128m maxsize 10240m&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000099;"&gt;logging&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000099;"&gt;permanent&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000099;"&gt;extent management local autoallocate&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000099;"&gt;blocksize 8k&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000099;"&gt;segment space management auto&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000099;"&gt;flashback on;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;Espacio disponible en Tablespaces?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 85%;"&gt;&lt;span style="color: #000099;"&gt;select tablespace_name as "TABLESPACE", &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000099;"&gt;sum(round(f.bytes/1024/1024)) "TAMAÑO ACTUAL (Mb)", &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000099;"&gt;sum(round((((f.bytes / f.blocks) * x.maxextend) / 1024 /1024))) "TAMAÑO MAXIMO (Mb)"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 85%;"&gt;&lt;span style="color: #000099;"&gt;, sum(round(((((f.bytes / f.blocks) * x.maxextend) / 1024 /1024) - (f.bytes/1024/1024)),0)) "ESPACIO DISPONIBLE (Mb)" &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000099;"&gt;from sys.dba_data_files f,sys.filext$ x&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 85%;"&gt;&lt;span style="color: #000099;"&gt;where x.file# (+)= f.file_id &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000099;"&gt;group by tablespace_name &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000099;"&gt;order by "ESPACIO DISPONIBLE (Mb)"; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;Cómo eliminar columna de una tabla?&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000099;"&gt;alter table &lt;em&gt;nombre_tabla&lt;/em&gt; drop column &lt;em&gt;nombre_columna&lt;/em&gt;;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-6841939274375525631?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/6841939274375525631/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2009/07/cortitas.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/6841939274375525631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/6841939274375525631'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2009/07/cortitas.html' title='Cortitas...'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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-6983707444642290516.post-2183518760693353840</id><published>2009-07-02T17:19:00.010-03:00</published><updated>2009-08-14T13:38:07.769-03:00</updated><title type='text'>Archivos redo log</title><content type='html'>Los archivos de redo log registran cambios a la base de datos como resultado de transacciones o acciones internas del servidor Oracle.&lt;br /&gt;&lt;br /&gt;Los archivos de redo log nos protegen la base de datos de la pérdida de integridad en casos de fallos causados por suministro eléctrico, errores en discos duros, y demás causas.&lt;br /&gt;&lt;br /&gt;Es recomendable que los archivos de redo log sean multiplexados para asegurar que la información almacenada en ellos no se pierda en caso de un fallo en disco.&lt;br /&gt;&lt;br /&gt;Consiste en grupos de archivos de redo log y cada grupo esta integrado por un archivo de redo log y sus copias multiplexadas. Se dice que cada copia idéntica es miembro de un grupo, y cada grupo es identificado por un número.&lt;br /&gt;&lt;br /&gt;El proceso de escritura en logs (LGWR) escribe los registros de redo del buffer de redo log a todos los miembros del grupo actual de redo logs, hasta que el archivo se llena o se solicita una operación de cambio de archivo de log. Entonces, cambia el grupo activo y comienza a escribir en los archivos del siguiente grupo. Los grupos de redo log son usados de una forma circular.&lt;br /&gt;&lt;br /&gt;Cómo obtenemos la info de los grupos de redo log de nuestra BD?&lt;br /&gt;&lt;br /&gt;Consultando estas dos vistas, tenemos los datos que nos pueden interesar de los redo log files, ubicación, estado, tamaño, etc.&lt;br /&gt;&lt;span style="color:#000099;"&gt;select * from v$logfile;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;select * from v$log;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;Cómo cambiamos el redo log group activo?&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;alter system switch logfile;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;Cómo eliminamos un redo log group? (en este caso en particular en group 1)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;alter database drop logfile &lt;em&gt;group 1;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;Ahora bien, cómo haríamos para agregar un nuevo redo log group? (agregamos el group 1, conteniendo un redo log file de 200mb)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;alter database add logfile &lt;em&gt;group 1&lt;/em&gt; ('&lt;em&gt;/u01/app/oracle/oradata/orcl/redo01.log&lt;/em&gt;') size &lt;em&gt;200m &lt;/em&gt;reuse;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;Y si quisieramos agregar un redo log group redundante con dos redo log files members?&lt;/span&gt;&lt;br /&gt;(agregamos el group 1, con dos redo log files en distintas ubicaciones con un tamaño de 200mb cada uno)&lt;br /&gt;&lt;span style="color:#000099;"&gt;alter database add logfile &lt;em&gt;group 1&lt;/em&gt; ('&lt;em&gt;/u01/app/oracle/oradata/orcl/redo01.log&lt;/em&gt;','&lt;em&gt;/u02/app/oracle/oradata/orcl/redo01b.log&lt;/em&gt;') size &lt;em&gt;200m&lt;/em&gt; reuse;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-2183518760693353840?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/2183518760693353840/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2009/07/redolog-files.html#comment-form' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/2183518760693353840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/2183518760693353840'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2009/07/redolog-files.html' title='Archivos redo log'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6983707444642290516.post-7890949817182291218</id><published>2009-06-11T11:51:00.004-03:00</published><updated>2009-06-11T11:58:58.843-03:00</updated><title type='text'>ORA-12541</title><content type='html'>El error completo: ORA-12541: TNS:no listener (DBD ERROR: OCIServerAttach).&lt;br /&gt;Con ésto nos podemos encontrar en la pantalla de inicio del EM de nuestra BD. En mi caso, me daba problemas cuando la instancia se quería conectar con el agente para realizar tareas de respaldo, entre otras.&lt;br /&gt;La solución... recrear el repositorio del EM desde línea de comandos:&lt;br /&gt;&lt;span style="color:#000099;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;emca -config dbcontrol db -repos recreate&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-7890949817182291218?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/7890949817182291218/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2009/06/ora-12541-tnsno-listener-dbd-error.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/7890949817182291218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/7890949817182291218'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2009/06/ora-12541-tnsno-listener-dbd-error.html' title='ORA-12541'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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-6983707444642290516.post-6271544525562634863</id><published>2009-06-09T18:29:00.003-03:00</published><updated>2009-06-09T18:36:09.405-03:00</updated><title type='text'>Cambiar CHARACTER SET</title><content type='html'>Aquí van los pasos para cambiar el character set de una base de datos.&lt;br /&gt;&lt;br /&gt;Desde la consola de SQLPLUS:&lt;br /&gt;&lt;br /&gt;1) &lt;span style="color:#000099;"&gt;&lt;em&gt;shutdown immediate;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;2) &lt;span style="color:#000099;"&gt;&lt;em&gt;startup mount;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;3) &lt;span style="color:#000099;"&gt;&lt;em&gt;alter system enable restricted session;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;4) &lt;span style="color:#000099;"&gt;&lt;em&gt;alter system set job_queue_processes=0;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;5) &lt;span style="color:#000099;"&gt;&lt;em&gt;alter database open;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;6) &lt;span style="color:#000099;"&gt;&lt;em&gt;alter database character set WE8ISO8859P1;&lt;/em&gt;&lt;/span&gt; (en esta línea, va el juego de caracteres al que queremos pasar nuestra BD)&lt;br /&gt;&lt;span style="color:#000099;"&gt;7) &lt;em&gt;shutdown immediate;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;8) &lt;em&gt;startup;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#000099;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;Y con eso es todo!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-6271544525562634863?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/6271544525562634863/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2009/06/cambiar-character-set.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/6271544525562634863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/6271544525562634863'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2009/06/cambiar-character-set.html' title='Cambiar CHARACTER SET'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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-6983707444642290516.post-3676411566962480274</id><published>2009-06-03T16:38:00.009-03:00</published><updated>2009-06-05T17:53:13.568-03:00</updated><title type='text'>Cuándo y cómo reconstruir un índice?</title><content type='html'>A veces nos preguntamos... en qué basarnos para justificar (o no) la reconstrucción de algún índice de nuestro motor?&lt;br /&gt;&lt;br /&gt;Muchas veces (al menos por mi parte) reconstruimos el índice solamente si nuestra aplicación nos dice "Ups! index or partition of such index is in unusuable state (ORA-01502)"... pero sino, no nos acordamos de su existencia!&lt;br /&gt;&lt;br /&gt;He aquí una sugerencia...&lt;br /&gt;&lt;span style="color:#000099;"&gt;&lt;em&gt;select index_name, blevel from dba_indexes where table_owner='Propietario'&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Si esta sentencia nos devuelve en blevel un valor &gt; 4, es recomendable recontruir el índice en cuestión. Blevel (branch level) indica el número de veces que Oracle ha tenido que reducir la búsqueda en ese índice.&lt;br /&gt;&lt;br /&gt;Para reconstruirlo...&lt;br /&gt;&lt;span style="color:#000099;"&gt;&lt;em&gt;alter index rebuild Nombre_índice;&lt;/em&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-3676411566962480274?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/3676411566962480274/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2009/06/cuando-y-como-reconstruir-un-indice.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/3676411566962480274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/3676411566962480274'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2009/06/cuando-y-como-reconstruir-un-indice.html' title='Cuándo y cómo reconstruir un índice?'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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-6983707444642290516.post-6024614402307430804</id><published>2009-06-03T13:04:00.008-03:00</published><updated>2009-06-03T16:44:16.817-03:00</updated><title type='text'>ORA-19734</title><content type='html'>Me encontré con este amigable error en una instancia en la que estaba intentando hacer un transporte de tablespace... y resulta que por la mitad del procedimiento me canceló (todavía no me explico por qué!!!)&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;ORA-19734: wrong creation SCN - control file expects converted plugged-in datafile&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/em&gt;Haciendo referencia a un datafile involucrado en el transporte, en mi caso era TEST.DBF...&lt;br /&gt;&lt;br /&gt;Qué hacer?!&lt;br /&gt;&lt;br /&gt;Sospeché que el problema podría estar dado por el lado del controlfile, y que en caso de recrearlo sin la referencia a ese datafile, iba a poder repetir el procedmiento.&lt;br /&gt;&lt;br /&gt;En principio no tenía respaldo del controlfile... así que procedí a crear un backup del mismo...&lt;br /&gt;Inicié la instancia en modo MOUNT:&lt;br /&gt;&lt;span style="color:#000099;"&gt;&lt;em&gt;STARTUP MOUNT;&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;Luego ejecuté el backup:&lt;br /&gt;&lt;span style="color:#000099;"&gt;&lt;em&gt;ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '/tmp/ctrlfile.bak';&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;Edité el trace generado con las sentencias para recrear mi controlfile, eliminando la referencia al datafile TEST.DBF, quedó algo de este estilo...&lt;br /&gt;&lt;br /&gt;STARTUP NOMOUNT&lt;br /&gt;CREATE CONTROLFILE REUSE DATABASE "ORA10CCU" RESETLOGS NOARCHIVELOG MAXLOGFILES 16&lt;br /&gt;MAXLOGMEMBERS 3&lt;br /&gt;MAXDATAFILES 100&lt;br /&gt;MAXINSTANCES 8&lt;br /&gt;MAXLOGHISTORY 2336&lt;br /&gt;LOGFILE&lt;br /&gt;GROUP 1 '/home/oracle/oracle/product/10.2.0/oradata/ora10ccu/redo01.log' SIZE 100M, GROUP 2 '/home/oracle/oracle/product/10.2.0/oradata/ora10ccu/redo02.log' SIZE 100M, GROUP 3 '/home/oracle/oracle/product/10.2.0/oradata/ora10ccu/redo03.log' SIZE 100M-- STANDBY LOGFILE&lt;br /&gt;DATAFILE&lt;br /&gt;'/home/oracle/oracle/product/10.2.0/oradata/ora10/system01.dbf', '/home/oracle/oracle/product/10.2.0/oradata/ora10/undotbs01.dbf', '/home/oracle/oracle/product/10.2.0/oradata/ora10/sysaux01.dbf', '/home/oracle/oracle/product/10.2.0/oradata/ora10/users01.dbf', '/home/oracle/oracle/product/10.2.0/oradata/ora10/example01.dbf'&lt;span style="color:#ff0000;"&gt;,&lt;/span&gt; &lt;span style="font-size:85%;color:#ff0000;"&gt;&lt;strong&gt;'/home/oracle/oracle/product/10.2.0/oradata/ora10/TEST.DBF', (eliminando esta línea)&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;CHARACTER SET WE8MSWIN1252;&lt;br /&gt;&lt;br /&gt;Copié y pegué en la consola de SQLPlus y listo! Nuevo CONTROLFILE generado!&lt;br /&gt;&lt;br /&gt;Luego desde la consola:&lt;br /&gt;&lt;span style="color:#000099;"&gt;&lt;em&gt;RECOVER DATABASE;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;&lt;em&gt;ALTER DATABASE OPEN;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En mi caso, había omitido la creación del TEMPORARY TABLESPACE, así que lo generé nuevamente:&lt;br /&gt;&lt;span style="color:#000099;"&gt;&lt;em&gt;ALTER TABLESPACE TEMP ADD TEMPFILE '/home/oracle/oracle/product/10.2.0/oradata/ora10/temp01.dbf' REUSE; &lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;Ahora sí!!! Repetí el transporte del tablespace y quedó solucionado... (por suerte!!!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-6024614402307430804?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/6024614402307430804/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2009/06/ora-19734.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/6024614402307430804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/6024614402307430804'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2009/06/ora-19734.html' title='ORA-19734'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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-6983707444642290516.post-1844561970116703702</id><published>2009-05-28T13:17:00.008-03:00</published><updated>2009-06-03T16:44:32.409-03:00</updated><title type='text'>Eliminar sesión</title><content type='html'>Muchas veces, cuando la salud de nuestro motor Oracle está en juego a causa de bloqueos, la solución es sacar del camino la sesión que nos está trancando el trabajo de otras sesiones, en este caso debemos eliminar a la sesión bloqueante...&lt;br /&gt;&lt;br /&gt;Como la identificamos?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color:#000099;"&gt;select * from v$session;&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Luego con el dato sid y serial# de la sesión en cuestión, ejecutamos:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color:#000099;"&gt;alter system kill session '&lt;span style="color:#993300;"&gt;sid,serial#&lt;/span&gt;' immediate;&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-1844561970116703702?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/1844561970116703702/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2009/05/oracle.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/1844561970116703702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/1844561970116703702'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2009/05/oracle.html' title='Eliminar sesión'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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-6983707444642290516.post-4943461570483956583</id><published>2009-05-28T13:09:00.001-03:00</published><updated>2009-06-03T16:46:17.629-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Comenzando...'/><title type='text'>Comenzando...</title><content type='html'>Se me ocurrió abrir un blog para compartir experiencias en el mundo Oracle...&lt;br /&gt;&lt;br /&gt;Consultas, sugerencias, experiencias acerca del motor de datos más potente del mundo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6983707444642290516-4943461570483956583?l=eskernel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eskernel.blogspot.com/feeds/4943461570483956583/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://eskernel.blogspot.com/2009/05/comenzando.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/4943461570483956583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6983707444642290516/posts/default/4943461570483956583'/><link rel='alternate' type='text/html' href='http://eskernel.blogspot.com/2009/05/comenzando.html' title='Comenzando...'/><author><name>eSkErNeL</name><uri>http://www.blogger.com/profile/04960756651757276057</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></feed>
