Carga de datos mediante Oracle Data Pump

Oracle Data Pump ofrece un traslado masivo de datos y metadatos muy rápido entre las bases de datos Oracle y Autonomous Database on Dedicated Exadata Infrastructure.

Data Pump Import permite importar datos de archivos de Data Pump que residen en Oracle Cloud Infrastructure Object Storage y Oracle Cloud Infrastructure Object Storage Classic. Puede guardar los datos en el almacén de objetos en la nube y utilizar Oracle Data Pump para cargar datos en Autonomous Database.

Note:

Como alternativa de "prueba" a la lectura de los siguientes temas, puede realizar el laboratorio 9 sobre la migración con Data Pump de Oracle Autonomous Database Dedicated for Fleet Administrators.

Exportación de datos desde la instancia de Oracle Database existente

En primer lugar, utilice Oracle Data Pump Export para exportar los esquemas existentes de Oracle Database. A continuación, utilice Oracle Data Pump Import para migrarlos a Autonomous Database.

Oracle recomienda utilizar los siguientes parámetros de Data Pump Export para una migración más rápida y sencilla a Autonomous Database:

exclude=cluster, db_link
parallel=n
schemas=schema name
dumpfile=export%l.dmp

Oracle Data Pump Export proporciona varios modos de exportación. Oracle recomienda utilizar el modo de esquema para migrar a Autonomous Database. Puede mostrar los esquemas que desea exportar mediante el parámetro schemas.

Para una migración más rápida, exporte los esquemas a varios archivos de Data Pump y utilice el paralelismo. Puede especificar el formato del nombre de archivo de volcado que desea utilizar con el parámetro dumpfile. Defina el parámetro en paralelo en al menos el número de CPU que tiene en Autonomous Database.

Los parámetros excluir y data_options garantizan que no se exporten los tipos de objeto que no están disponibles en Autonomous Database y que se agrupen las particiones de tabla para que puedan importarse más rápidamente a Autonomous Database.

Note:

Oracle recomienda recopilar las estadísticas actualizadas antes de ejecutar el comando expdp. El paquete dbms_stats proporciona varios procedimientos para recopilar las estadísticas más recientes. Las estadísticas se agregan automáticamente al archivo de volcado de exportación y ayudan a determinar el tamaño de los objetos y a optimizar el paralelismo durante la importación. Para obtener más información, consulte DBMS_STATS Operational Notes en Oracle Database 19c PL/SQL Packages and Types Reference y Oracle Database 23ai PL/SQL Packages and Types References.

En el siguiente ejemplo, se exporta el esquema de SH de una instancia de Oracle Database de origen para su migración a una instancia de Autonomous Database con 16 CPU:

expdp sh/sh@orcl \
exclude=cluster, db_link \
parallel=16 \
schemas=sh \
dumpfile=export%l.dmp \
encryption_pwd_prompt=yes
Notas sobre los parámetros de pump de datos:
  • Si durante la exportación con expdp utiliza el parámetro encryption_pwd_prompt=yes, utilice también encryption_pwd_prompt=yes con la importación e introducción de la misma contraseña en el indicador impdp para descifrar los archivos de volcado (recuerde la contraseña proporcionada durante la exportación). La longitud máxima de la contraseña de cifrado es de 128 bytes.

  • El parámetro dumpfile soporta los comodines %L y %l, además de los comodines %U y %u heredados. Por ejemplo, dumpfile=export%L.dmp.

    Utilice el comodín %L o %l para las exportaciones de Oracle Database versión 12.2 y posteriores. Este comodín amplía el nombre del archivo de volcado en un entero que aumenta el ancho de variable de 3 dígitos a 10 dígitos, comenzando en 100 y terminando en 2147483646.

    Utilice el comodín %U o %u heredado para las exportaciones de Oracle Database anteriores a la versión 12.2. Si utiliza esta opción y se necesitan más de 99 archivos de volcado, debe especificar varios nombres de archivos de volcado, cada uno con el parámetro %U o %u.

Puede utilizar otros parámetros de Data Pump Export, como compression, según sus necesidades. Para obtener más información, consulte Exportación de Oracle Data Pump en Utilidades 19c de Oracle Database o Utilidades de Oracle Database 23ai.

Carga de archivos de exportación en Cloud Object Storage

Para poder importar los datos que ha exportado desde la instancia de Oracle Database de origen, debe cargar los archivos de exportación en el almacenamiento de objetos en la nube.

Puede cargar los archivos de exportación en un cubo de almacenamiento existente en Oracle Cloud Infrastructure Object Storage o en un contenedor de almacenamiento existente en Oracle Cloud Infrastructure Object Storage Classic. O bien, utilice el siguiente procedimiento para crear un nuevo cubo de almacenamiento y cargar los archivos de exportación en él.

  1. Conéctese a la cuenta de Oracle Cloud en cloud.oracle.com.

  2. En la lista de navegación izquierda de Oracle Cloud Infrastructure, seleccione Almacenamiento de objetos y, a continuación, seleccione Almacenamiento de objetos en la sublista.

  3. Seleccione un compartimento en el que crear el cubo de almacenamiento.

  4. Haga clic en Crear cubo.

  5. En el cuadro de diálogo Create Bucket, asigne un nombre al cubo y, a continuación, haga clic en Create Bucket.

  6. Después de crear el cubo, haga clic en su nombre en la lista de cubos para mostrar la página Detalles de cubo.

  7. En el cuadro Objetos, haga clic en Cargar objetos.

  8. En el recuadro de diálogo Cargar Objetos, haga clic en el enlace Seleccionar Archivos del cuadro Seleccionar Archivos de la Computadora.

  9. En el explorador de archivos, desplácese a los archivos de exportación y selecciónelos. A continuación, haga clic en Abrir.

  10. En el cuadro de diálogo Upload Objects, haga clic en Upload Objects para iniciar la carga de los archivos que seleccionó.

  11. Cuando se hayan completado las cargas, cierre el cuadro de diálogo Cargar objetos.

Importación de datos con Oracle Data Pump

Oracle recomienda utilizar la versión de Oracle Data Pump más reciente para importar datos de archivos de Data Pump en Autonomous Database, ya que contiene mejoras y correcciones para una mejor experiencia.

Descargue la versión más reciente del paquete básico de Oracle Instant Client y el paquete de herramientas (que incluye Oracle Data Pump) para su plataforma desde Oracle Instant Client Downloads. Consulte las instrucciones de instalación en la página de descarga de instalación de la plataforma para conocer los pasos de instalación necesarios después de descargar Oracle Instant Client.

En Oracle Data Pump versión 18.3 y posteriores, el argumento credential autentica Data Pump para el servicio de Cloud Object Storage que utilice para los archivos de origen. El argumento dumpfile es una lista delimitada por comas de direcciones URL para los archivos de Data Pump.

Las versiones 12.2.0.1 y anteriores de Data Pump Import no tienen el parámetro credential. Si utiliza una versión anterior de Data Pump Import, debe definir una propiedad de credencial por defecto para Autonomous Database y utilizar la palabra clave default_credential en el parámetro dumpfile.

En Oracle Data Pump, si los archivos de origen residen en Oracle Cloud Infrastructure Object Storage, puede utilizar los URI nativos de Oracle Cloud Infrastructure o los URI de Swift. Consulte Formatos de URI de almacenamiento de objetos en la nube para obtener más información sobre estos formatos de URI.

  1. Almacene la credencial de Cloud Object Storage mediante el procedimiento DBMS_CLOUD.CREATE_CREDENTIAL.

    La importación de pump de datos soporta credenciales basadas en token de autenticación de Oracle Cloud Infrastructure y credenciales basadas en clave de firma de Oracle Cloud Infrastructure.

    Ejemplo 1: Para crear credenciales de token de autenticación de Oracle Cloud Infrastructure:
    BEGIN
    DBMS_CLOUD.CREATE_CREDENTIAL(
      credential_name => 'DEF_CRED_NAME',
      username => 'adb_user@oracle.com',
      password => 'password'
      );
    END;
    /
    Ejemplo 2: Para crear credenciales basadas en claves de firma de Oracle Cloud Infrastructure:
    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL (
        credential_name => 'DEF_CRED_NAME',
        user_ocid       => ‘ocid1.user.oc1..unique_ID’,
        tenancy_ocid    => ‘ocid1.tenancy.oc1..unique_ID’,
        private_key     => ‘MIIEogIBAAKCAQEAtUnxbmre.....wtnNpESQQQ0QLGPD8NM//JEBg=’,
        fingerprint     => ‘fingerprint value’
      );
    END;
    /

    Para obtener más información sobre los tipos de credenciales para Oracle Cloud Infrastructure Cloud Object Storage, consulte el procedimiento CREATE_CREDENTIAL.

  2. Si utiliza Oracle Data Pump versión 12.2.0.1 o anterior, debe definir la credencial como la credencial por defecto para Autonomous Database, como usuario ADMIN. Por ejemplo:
    alter database property set default_credential = 'ADMIN.DEF_CRED_NAME'
  3. Ejecute Data Pump Import con el parámetro dumpfile definido en la lista de URL de archivo de Cloud Object Storage.
    • Oracle Data Pump versión 18.3 o posterior: defina el parámetro credential en el nombre de la credencial que ha creado en el paso 1. Por ejemplo:

      impdp admin/password@ATPC1_high \
        credential=def_cred_name \
        dumpfile= https://namespace-string.objectstorage.us-ashburn-1.oci.customer-oci.com/n/namespace-string/b/bucketname/o/export%l.dmp \ 
        parallel=16 \
        transform=segment_attributes:n \
        exclude=cluster, db_link

      En este ejemplo, dumpfile es un URI de Swift de Oracle Cloud Infrastructure que especifica todos los archivos cuyo nombre coincide con export<number>.dmp en el cubo mybucket de la región us-phoenix-1. (idthydc0kinr es el espacio de nombres de almacenamiento de objetos en el que reside el cubo).

    • Oracle Data Pump versión 12.2.0.1 o anterior: inicie el valor del parámetro dumpfile con la palabra clave default_credential y dos puntos. Por ejemplo:

      impdp admin/password@ATPC1_high \
        dumpfile=default_credential:https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/export%l.dmp \
        parallel=16 \      
        transform=segment_attributes:n \      
        exclude=cluster, db_link
    Notas sobre la Importación de Pump de Datos
    • Si durante la exportación con expdp ha utilizado el parámetro encryption_pwd_prompt=yes, utilice encryption_pwd_prompt=yes e introduzca la misma contraseña en el indicador impdp que ha especificado durante la exportación.

    • El parámetro dumpfile soporta los comodines %L y %l, además de los comodines %U y %u heredados. Por ejemplo, dumpfile=export%L.dmp.

      Utilice el comodín %L o %l para las exportaciones de Oracle Database versión 12.2 y posteriores. Este comodín amplía el nombre del archivo de volcado en un entero que aumenta el ancho de variable de 3 dígitos a 10 dígitos, comenzando en 100 y terminando en 2147483646.

      Utilice el comodín %U o %u heredado para las exportaciones de Oracle Database anteriores a la versión 12.2. Si utiliza esta opción y se necesitan más de 99 archivos de volcado, debe especificar varios nombres de archivos de volcado, cada uno con el parámetro %U o %u.

    • Para obtener el mejor rendimiento de importación, utilice el servicio de base de datos high para la conexión de importación y defina el parámetro parallel en el número de CPU que tiene la base de datos.

    • Para obtener el formato de URL de archivo de volcado para diferentes servicios de Cloud Object Storage, consulte Formatos de URI de almacenamiento de objetos en la nube.

    • Para realizar una importación completa o importar objetos que sean propiedad de otros usuarios, necesita el rol DATAPUMP_CLOUD_IMP.

    Para obtener información sobre los objetos no permitidos en Autonomous Database, consulte Limitaciones sobre el uso de comandos SQL.

    Para obtener información detallada sobre los parámetros de importación, consulte Importación de Oracle Data Pump en Utilidades 19c de Oracle Database o Utilidades de Oracle Database 23ai.

Acceso a archivos log para la importación de Data Pump

Los archivos log para las operaciones de importación de Data Pump se almacenan en el directorio que especifique con el parámetro impdp directory del pump de datos.

Para acceder al archivo log, debe mover el archivo log a su instancia de Cloud Object Storage mediante el procedimiento DBMS_CLOUD.PUT_OBJECT. Por ejemplo, el siguiente bloque PL/SQL mueve el archivo import.log al almacenamiento de objetos en la nube:

BEGIN
  DBMS_CLOUD.PUT_OBJECT(
    credential_name => 'DEF_CRED_NAME',
    object_uri => 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/bucketname/o/import.log',
    directory_name  => 'DATA_PUMP_DIR',
    file_name => 'import.log');
END;
/

En este ejemplo, namespace-string es el espacio de nombres de almacenamiento de objetos de Oracle Cloud Infrastructure, y bucketname es el nombre del cubo. Consulte Descripción de los espacios de nombres de Object Storage para obtener más información.

Para obtener más información, consulte DBMS_CLOUD for Objects and Files.