img-feed img-feed-email

Expdp falla con errores ORA-31626, ORA-31633, ORA-06512, ORA-01031

Os voy a comentar un error que me sucedió al ejecutar el comando expdp para exportar solo objetos de mi esquema (schema)  los errores que me daban eran ORA-31626, ORA-31633, ORA-06512 y ORA-01031.
A continuación muestro los errores de mi consola.
SQL> host expdp test/t   directory=d   dumpfile=a.dmp

Export: Release 10.2.0.1.0 - Production on Saturday, 12 September, 2010 14:58:53Copyright (c) 2003, 2005, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
ORA-31626: job does not exist
ORA-31633: unable to create master table "TEST.SYS_EXPORT_SCHEMA_05"
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPV$FT", line 863
ORA-01031: insufficient privileges

Causa del Problema

 ORA-01031 indica que el usuario test  que esta ejecutando data pump export no tiene los suficientes privilegios para ejecutarlo.

Para ver los privilegios del usuario en curso ejecutamos la siguiente consulta:
SQL> select * from session_privs;


PRIVILEGE
----------------------------------------
CREATE SESSION
BACKUP ANY TABLE
SELECT ANY TABLE
SELECT ANY SEQUENCE
EXECUTE ANY PROCEDURE
CREATE ANY DIRECTORY
EXECUTE ANY TYPE
ADMINISTER RESOURCE MANAGER
RESUMABLE
SELECT ANY DICTIONARY
READ ANY FILE GROUP

11 rows selected.

Solución al Problema

Para poder hacer operaciones de exportación del usuario de tener el privilegio de systema: create table. Como se puede ver el usuario no tiene el privilegio "create table". Para evitar este problema podemos usar diferentes soluciones:

Solución 1) Como DBA user dar el privilegio 'create table' al usuario que tiene que ejecutar  operaciones data pump export.

SQL> conn system/a
SQL> grant create table to test;

Entonces el usuario test podrá ejecutar la operación.

SQL> host expdp test/t full=y directory=d dumpfile=a.dmp

Solución 2) Ejecutar la operación con un usuario diferente que tenga el privilegio de create table. Por ejemplo ejectuar la exportación con el usuario.

SQL>host expdp system/orcl full=y directory=d dumpfile=a.dmp

 
▲ ARRIBA▲