KUP-11011: the following file is not valid for this load operation

Al tratar de recuperar un archivo de respaldo de múltiples archivos de oracle con el comando impdp este marcaba error y no recuperaba el respaldo.

Dentro de los errores que me aparecían estaban los siguientes:

KUP-11011: the following file is not valid for this load operation
KUP-11014: internal metadata in file /data/backups/respaldo_03.dmp is not valid

Al parecer es un bug de Oracle en la versión 12.1.0.2.0. Para que funcionara correctamente la importación tuve que agregar el parámetro

ACCESS_METHOD=DIRECT_PATH

A los parámetros del comando impdp quedando de esta forma la llamada:

impdp system/******* remap_schema=ESQUEMA1:ESQUEMA2 tables=ESQUEMA1.TABLA directory=RESPALDOS parallel=5 dumpfile=respaldo_%U.dmp logfile=respaldo.log full=N TABLE_EXISTS_ACTION=REPLACE ACCESS_METHOD=DIRECT_PATH

De esta forma la importación de la tabla dejó de marcar el error descrito arriba.

Espero les sea útil. ¡Hasta pronto!

ORA-39070: Unable to open the log file.

Al intentar importar un respaldo de una base de datos en Oracle 11g versión 11.2 sobre windows server  con el comando impdp me mandaba los siguientes errores:

ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-06512: at “SYS.UTL_FILE”, line 488
ORA-29283: invalid file operation

Cabe aclarar que el archivo dmp a importar estaba en una unidad de red montada como drive Z: y dicha unidad estaba dado de alta como un Directory de Oracle.

El problema se debe a que al ejecutar el comando impdp lo ejecuta con el usuario que inició el servicio de oracle (usuario del sistema) y no con el usuariode windows que ejecuta el comando,  por lo tanto dicho usuario del sistema no tiene permisos de escritura ni lectura sobre la unidad de red.

La solución es parar el servicio de oracle e iniciarlo con el usuario con el que se autentifica en windows y que tiene permisos tanto de escritura sobre la unidad como de ejecutar el comando impdp:

Inicio -> Ejecutar -> Services.msc -> OracleServiceXXXX -> Propiedades -> Log On

Una vez que termine de importar el respaldo, puede regresar el servicio de oracle a que sea ejecutado por el usuario del sistema.

Espero les sirva este tip.