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!

Como conectar a una base de datos Oracle 12c desde una aplicación .Net sin usar archivo tsnames.ora.

Enseguida les comparto el código en ¢# (c sharp) para hacer una conexión a una base de datos Oracle 12c desde una aplicación .Net sin usar archivo tsnames.ora externo que defina la conexión.

Antes de ejecutar el código sobra decir que debes contar con los controladores .Net (drives)  de conexión a Oracle 12c instalados en la máquina de desarrollo y el proyecto debe hacer referencia a la clase Oracle.ManagedDataAccess.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Oracle.ManagedDataAccess.Client;
using Oracle.ManagedDataAccess.Types;


namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // Crea cadena de conexion 
            String cadenaConexionOracle = "Data Source=" +
                   "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)" + 
                   "(HOST=localhost)(PORT=1521))" + 
                   "(CONNECT_DATA=(SERVICE_NAME=orcl)));" +
                   "User Id = c##usuariotest; Password = lcdusuariotest;";
            // Crea conexion
            OracleConnection conexionOracle = new OracleConnection(cadenaConexionOracle);
            // Conecta
            conexionOracle.Open();
            // Confirma si la conexion fue abierta
            if (conexionOracle.State == ConnectionState.Open)
            {
                // Se ejecutan las sentencias necesarias...
                // ...
                // Si la conexion esta abierta, la cierra
                conexionOracle.Close();
            }
        }
    }
}

No olvides cambiar los valores de HOST (nombre o ip de la computadora donde está instalada la base de datos), PORT (puerto de conexión), SERVICE_NAME (nombre de la instancia de la base de datos Oracle), User Id (usuario) y Password (contraseña), por los valores correctos de tu base de datos.

¡Hasta la próxima!

Fallo con la variable PATH al comprobar requisitos al instalar Oracle 12c.

Si al instalar Oracle 12c en Windows 10 te muestra un estado fallido relacionado con la variable PATH al momento de comprobar requisitos del sistema y, según el mensaje de verificación dice que se debe a la longitud de la variable PATH, puede que no sea la longitud de dicha variable el problema.

Al mostrar detalles del mensaje decía esto: “PRVF-3919 : Failed to retrieve value of environment variable “PATH”” y sugiere que pueden ser errores de privilegios o permisos como muestra la siguiente imagen:

Si revisas tu variable PATH y encuentras que su valor no está demasiado grande (más de 1024 caracteres) entonces puedes sin problemas indicarle al instalador que ignore el error activando  el cuadro de selección “Ignorar Todo” y proceder con la instalación. Así lo hice y Oracle está funcionando correctamente. Al parecer es un bug del instalador con la versión de Windows 10.

Que éste artículo les sea útil. ¡Hasta la próxima!