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');

Expdp e Impdp

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.
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.

Procesos involucrados en los trabajos de datapump:

Client process: 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.

viernes, 23 de marzo de 2012

Export e Import - Oracle

Import:

imp system/123456 file=/u01/dmps/xx_yyy.dmp log=/u01/dmps/xx_yy.log fromuser=XX_YY touser=XX

imp system/123456 file= /u01/dmps/xx_yyy.dmp  full=yes ignore=yes log= /u01/dmps/xx_yy.log  buffer=1000000

impdp system/password@db10g full=Y directory=DATA_PUMP_DIR   dumpfile=DB10G.dmp logfile=impdpDB10G.log

SQL> grant select on v_$session to system;

Export:

expdp  system/renata0505@vipa full=y directory=DATA_PUMP_DIR  dumpfile=bd-total-vipa_$FECHA_ACTUAL.dmp logfile=bd-total-vipa_$FECHA_ACTUAL.log

URL: http://www.oracle-base.com/articles/10g/oracle-data-pump-10g.php

jueves, 22 de marzo de 2012

Añadir un datafile a un tablespace en Oracle 11g

SQL>SELECT FILE_NAME, BYTES FROM DBA_DATA_FILES WHERE TABLESPACE_NAME ='DATOS

FILE_NAME Tamaño en MB
-------------------------------------------------------------- -----------------
/u02/oradata/PRUEBA01/dat/PRUEBA01_DATOS_01.dbf 32768
/u02/oradata/PRUEBA01/dat/PRUEBA01_DATOS_02.dbf 32768


SQL> ALTER TABLESPACE DATOS ADD DATAFILE '/u02/oradata/PRUEBA01/dat/PRUEBA01_DATOS_03.dbf’ SIZE 5120M;


SQL>SELECT FILE_NAME, BYTES FROM DBA_DATA_FILES WHERE TABLESPACE_NAME ='DATOS

FILE_NAME Tamaño en MB
-------------------------------------------------------------- -----------------
/u02/oradata/PRUEBA01/dat/PRUEBA01_DATOS_01.dbf 32768
/u02/oradata/PRUEBA01/dat/PRUEBA01_DATOS_02.dbf 32768
/u02/oradata/PRUEBA01/dat/PRUEBA01_DATOS_03.dbf 5120

ORA-00845: MEMORY_TARGET not supported on this system

Paso 1
root:
# mount -t tmpfs shmfs -o size=1500m /dev/shm
# df -k

Paso 2
sqlplus:
SQL>startup

jueves, 23 de febrero de 2012

Error ORA-00020 - ORA-12520

ORA-00020: maximum number of processes (%s) exceeded
ORA-12520: TNS:listener could not find available handler for requested type of server

La solución al momento que le di fue reiniciar el servidor.

Como configurar el Enterprise Manager en Oracle 11g R2

Cuando instalamos una BDD es posible que no configuremos el Enterprise Manager (EM) pensando que no lo usaremos. Esto suele pasar cuando tiene el EM local de la 9i, o el EM Console, y no te quieres complicar la vida instalando estos servicios (que consumen lo suyo en el servidor) en cada BDD. Sobretodo si tienes una media de 5 por servidor :P
Ahora nos hemos encontrado con que un proyecto "necesita" esta consola, asi que se la tenemos que configurar. Lo bueno es que estos pasos no requieren parar la BDD :)
Antes de hacer nada, hemos de tener configurado bien las variables de entorno:
  • ORACLE_HOME=[Path oracle home]
  • ORACLE_SID=[SID]
  • ORACLE_UNQNAME=[SID]