Error UDE-28002 y ORACLE 28002 en Oracle al realizar un export

Problema:

Al realizar un export para hacer un backup de nuestra bases de datos, obtenemos el siguiente error:

C:\Agent13c\agent_inst\sysman\emd>C:\"app\oracle\product\12.1.0\dbhome_1\BIN"\expdp system/xxxxxx DUMPFILE=export:DB.dmp FULL=Y LOGFILE=log:DB.log
 
Export: Release 12.1.0.2.0 - Production on Dom Abr 1 23:30:05 2018
 
Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.
 
UDE-28002: la operación ha generado un error ORACLE 28002
ORA-28002: la contraseña vencerá en 6 días

Solución:

El problema es que la contraseña del usuario sysman caduca en una fecha próxima y por eso no podemos hacer el backup, para ello debemos poner que la contraseña del usuario no caduque. Lo haremos de la siguiente manera

SQL> SELECT LIMIT, RESOURCE_NAME FROM dba_profiles 
WHERE RESOURCE_NAME in (‘PASSWORD_GRACE_TIME’,'PASSWORD_LIFE_TIME’,
‘PASSWORD_REUSE_MAX’,'PASSWORD_REUSE_TIME’) AND
PROFILE=(select profile from dba_users where username=’USUARIO‘)
/

Usuario, en nuestro caso sera sysman y obtendremos la siguiente salida

 LIMIT       RESOURCE_NAME
—————————     ——————————–
120         PASSWORD_LIFE_TIME
  6         PASSWORD_GRACE_TIME

Para cambiar estas propiedas lo haremos con las siguiente sentencias

SQL> ALTER PROFILE “DEFAULT” LIMIT PASSWORD_LIFE_TIME UNLIMITED;

SQL> ALTER PROFILE “DEFAULT” PASSWORD_GRACE_TIME UNLIMITED;

Consultar el espacio disponible en los tablespaces

A menudo, los DBAs necesitan monitorizar el espacio de los tablespaces. Aunque ya hay productos, como el Cloud Control donde pueden programarse estas alertas, siempre podemos consultar el espacio accediendo a las vistas dedicadas a ello que tiene nuestra base de datos.

Esta consulta serviría para bases de datos «nonpluggable» de oracle 12c

SELECT 1 seq, b.tablespace_name, nvl(x.fs,0)/y.ap*100 pf, b.file_name file_name,
b.bytes/&&b_div a_byt, NVL((b.bytes-SUM(f.bytes))/&&b_div,b.bytes/&&b_div) t_byt,
NVL(SUM(f.bytes)/&&b_div,0) f_byt, NVL(SUM(f.bytes)/b.bytes*100,0) pct_free
FROM dba_free_space f, dba_data_files b
,(SELECT y.tablespace_name, SUM(y.bytes) fs
FROM dba_free_space y GROUP BY y.tablespace_name) x
,(SELECT x.tablespace_name, SUM(x.bytes) ap
FROM dba_data_files x GROUP BY x.tablespace_name) y
WHERE f.file_id(+) = b.file_id
AND x.tablespace_name(+) = y.tablespace_name
and y.tablespace_name = b.tablespace_name
AND f.tablespace_name(+) = b.tablespace_name
GROUP BY b.tablespace_name, nvl(x.fs,0)/y.ap*100, b.file_name, b.bytes
UNION
SELECT 2 seq, tablespace_name,
j.bf/k.bb*100 pf, b.name file_name, b.bytes/&&b_div a_byt,
a.bytes_used/&&b_div t_byt, a.bytes_free/&&b_div f_byt,
a.bytes_free/b.bytes*100 pct_free
FROM v$temp_space_header a, v$tempfile b
,(SELECT SUM(bytes_free) bf FROM v$temp_space_header) j
,(SELECT SUM(bytes) bb FROM v$tempfile) k
WHERE a.file_id = b.file#
ORDER BY 1,2,4,3;

Creando y administrando sinónimos en Oracle

Un sinónimo es el mecanismo que tiene oracle para darle un nombre alternativo (alias) a un objecto.

De esta forma, si existen varios usuarios en base de datos con objetos en sus esquemas, podremos acceder al objeto de otro esquema sin necesidad de hacer referencia al propietario.

Por ejemplo:

El USUARIO1 quiere acceder a una tabla EMP del USUARIO2 (asumimos que tiene permisos para hacer select sobre la tabla de ese usuario). Si no existe sinónimo, lo tendrá que hacer de la siguiente forma:

select * from usuario2.emp;

Para crear un sinónimo, el usuario que lo haga tiene que tener permiso para crear sinónimos (CREATE SYNONYM system privilege). Este permiso lo puede otorgar un usuario administrador. Si el usuario tiene ese privilegio, podría crear el sinónimo de la siguiente manera:  

create synonym emp for usuario2.emp;

Continuar leyendo «Creando y administrando sinónimos en Oracle»

Aumentando el espacio en un tablespace de Oracle

Para aumentar el espacio de un tablespace, debemos de conocer el nombre del fichero forma ese tablespace y asegurarte que tienes suficiente espacio en disco para ello.

Con el comando de sistema operativo

df -h | sort

podremos ver si disponemos físicamente de ese espacio. Continuar leyendo «Aumentando el espacio en un tablespace de Oracle»

Cómo saber si un índice de oracle se está usando.

Es lógico que queramos saber si los índices que hemos creado realmente son útiles y se están usando. En oracle podemos hacerlo con ALTER INDEX …. MONITORING USAGE;

Por ejemplo, si tenemos un índice llamado opt_idx1, lo haremos de la siguiente forma:

alter index opt_idx1 monitoring usage;

Continuar leyendo «Cómo saber si un índice de oracle se está usando.»

Cambiar un tablespace de oracle a modo lectura

Quizás, en algunos entornos como los de datawarehouse en los que se realizan cargas masivas de datos, que no van a ser modificados o que no queremos que sean modificados, es interesante cambiar el tablespace donde se ubican estos datos y ponerlo en modo lectura. Así nos aseguramos cambios indeseados.

¿Cómo cambiamos un tablespace a modo lectura?

Lo haremos con el comando alter tablespace.

Ejemplo:

alter tablespace repositorio read only;

En este caso modificamos el tablespace de nombre repositorio y lo ponemos en modo lectura.

Continuar leyendo «Cambiar un tablespace de oracle a modo lectura»