martes, 11 de noviembre de 2014

Ver espacio disponible de Tablaspace

SELECT /* + RULE */  df.tablespace_name "Tablespace",
       df.bytes / (1024 * 1024) "Size (MB)",
       SUM(fs.bytes) / (1024 * 1024) "Free (MB)",
       Nvl(Round(SUM(fs.bytes) * 100 / df.bytes),1) "% Free",
       Round((df.bytes - SUM(fs.bytes)) * 100 / df.bytes) "% Used"
  FROM dba_free_space fs,
       (SELECT tablespace_name,SUM(bytes) bytes
          FROM dba_data_files
         GROUP BY tablespace_name) df
 WHERE fs.tablespace_name (+)  = df.tablespace_name
 GROUP BY df.tablespace_name,df.bytes
UNION ALL
SELECT /* + RULE */ df.tablespace_name tspace,
       fs.bytes / (1024 * 1024),
       SUM(df.bytes_free) / (1024 * 1024),
       Nvl(Round((SUM(fs.bytes) - df.bytes_used) * 100 / fs.bytes), 1),
       Round((SUM(fs.bytes) - df.bytes_free) * 100 / fs.bytes)
  FROM dba_temp_files fs,
       (SELECT tablespace_name,bytes_free,bytes_used
          FROM v$temp_space_header
         GROUP BY tablespace_name,bytes_free,bytes_used) df
 WHERE fs.tablespace_name (+)  = df.tablespace_name
 GROUP BY df.tablespace_name,fs.bytes,df.bytes_free,df.bytes_used
 ORDER BY 4 DESC;

Creditos: http://snipplr.com/view/67614/consultar-el-mb-los-tamaos-y-porcentaje-libre-de-tablespace-oracle/

martes, 21 de agosto de 2012

ORA-28002: the password will expire within X days


ORA-28002: the password will expire within X days

Cuando nos da el Error: ORA-28002: the password will expire within X days, por mas que cambiemos PASSWORD_LIFE_TIME y PASSWORD_GRACE_TIME, no podemos salir de este estado.

PASOS
1 Solución: Cambiar la clave del usuario.
En el caso que "No se quiera cambiarla" y dejar la misma, pero no sabemos cual es la actual podemos hacer la siguiente consulta:

select a.name,
      a.password,
      b.account_status,
      'alter user "' || a.name || '" identified by values '''  || a.password ||   ''';'
 from sys.user$ a, dba_users b
where b.username = a.name

2 Con el resultado de la consulta, seteamos la misma clave que tienen actualmente los usuarios.

alter user "PRACTICA1" identified by values '6FEBDC5C15A858CA';

Luego de esto, si que se quiere que las claves no expiren mas, ejecutar:
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

Referencia: http://efren9.blogspot.com/2011/09/ora-28002-password-will-expire-within-x.html

viernes, 11 de mayo de 2012

Crear tabla apartir de un Select y Insertar informacion mediante un select + where

Creamos la tabla, luego insertamos registro mediante un select + where, y luego para eliminamos los registros de la tabla principal.

CREATE TABLE reservas.TABLE_AUDIT_AUX AS (SELECT * FROM TABLA_ORIGEN)

INSERT INTO reservas.TABLE_AUDIT_AUX (select * from reservas.TABLE_AUDIT t where to_char(t.updatedate,'MM/YYYY') = '05/2011')

* Delete 

DELETE from reservas.TABLE_AUDIT t where to_char(t.updatedate,'MM/YYYY') = '05/2011'

Crear Tablespace Oracle


Creación de tablespace para la tabla e index.

CREATE TABLESPACE T_AUDIT DATAFILE '/u01/oracle/oracle11g/oradata/resdb/t_audit_01.dbf' SIZE 2048M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;



CREATE TABLESPACE T_AUDIT_INX DATAFILE '/u01/oracle/oracle11g/oradata/resdb/t_audit_inx_01.dbf' SIZE 1024M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

miércoles, 9 de mayo de 2012

Detectar bloqueos en Oracle y eliminarlo

1 .-  Listar los bloqueos

SELECT /*+ FULL(s) PARALLEL(l, 5) */
decode(L.TYPE,'TM','TABLE','TX','Record(s)') TYPE_LOCK,
decode(L.REQUEST,0,'NO','YES') WAIT,
S.OSUSER OSUSER_LOCKER,
S.PROCESS PROCESS_LOCKER,
S.USERNAME DBUSER_LOCKER,
O.OBJECT_NAME OBJECT_NAME,
O.OBJECT_TYPE OBJECT_TYPE,
concat(' ',s.PROGRAM) PROGRAM,
O.OWNER OWNER
FROM v$lock l,dba_objects o,v$session s
WHERE l.ID1 = o.OBJECT_ID
AND s.SID =l.SID
AND l.TYPE in ('TM','TX');