Exportación de datos mediante Oracle Data Pump

Oracle Data Pump ofrece un traslado masivo de datos y metadatos muy rápido entre Autonomous Database y otras bases de datos Oracle.

Oracle recomienda utilizar la versión más reciente de Oracle Data Pump para exportar datos de Autonomous Database a otras bases de datos Oracle, ya que contiene mejoras y correcciones para una mejor experiencia. Descargue la versión más reciente 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 y el paquete de herramientas.

Para mover datos de una instancia de Autonomous Database a otras bases de datos Oracle mediante Oracle Data Pump, utilice una de las siguientes opciones:
  • Opción 1: Traslado de datos con exportación de Data Pump a un directorio de Autonomous Database

    Utilice Oracle Data Pump para exportar los datos a un directorio de la base de datos y, a continuación, mueva los datos del directorio al almacén de objetos en la nube. Este método puede resultar útil cuando desee mover datos de Autonomous Database a varias bases de datos de destino. En lugar de exportar los datos a varios almacenes de objetos en la nube, puede crear un juego de archivos de volcado una vez y utilizarlo para varias bases de datos de destino.

    Realice los siguientes pasos para mover datos de Autonomous Database exportándolos a un directorio de la base de datos:
    1. Exporte los datos a un directorio de Autonomous Database y mueva el juego de archivos de volcado del directorio al almacén de objetos en la nube. Consulte Exportación de datos utilizando un directorio de Autonomous Database.
    2. Descargue los archivos de volcado del almacén de objetos en la nube, importe los datos en la base de datos de destino y limpie el almacén de objetos en la nube. Consulte Descarga de archivos de volcado, ejecución de Data Pump Import y limpieza del almacén de objetos.
  • Opción 2: Traslado de datos con exportación de Data Pump al almacén de objetos

    Con este método de exportación, utilizará Oracle Data Pump para exportar datos directamente al almacén de objetos. Este método de exportación está soportado con Oracle Cloud Infrastructure Object Storage y Oracle Cloud Infrastructure Object Storage Classic. Esto evita la sobrecarga que supone crear un juego de archivos de volcado en un directorio de Autonomous Database y, a continuación, mover el juego de archivos de volcado al almacén de objetos en la nube. Si tiene previsto mover datos a una única base de datos de destino, este método ahorra el esfuerzo y acelera el proceso de exportación.

    Realice los siguientes pasos para mover datos de Autonomous Database exportándolos directamente al almacén de objetos:
    1. Exporte directamente los datos de Autonomous Database a un almacén de objetos en la nube. Consulte Exportación directa de datos de Autonomous Database al almacén de objetos.
    2. Descargue los archivos de volcado del almacén de objetos en la nube, importe los datos en la base de datos de destino y limpie el almacén de objetos en la nube. Consulte Descarga de archivos de volcado, ejecución de Data Pump Import y limpieza del almacén de objetos.

Exportación de datos utilizando un directorio de Autonomous Database

Para exportar datos mediante un directorio de Autonomous Database, primero debe crear un juego de archivos de volcado con los datos exportados en un directorio de la base de datos y, a continuación, cargar estos archivos desde el directorio de la base de datos al almacén de objetos en la nube.

Uso de Data Pump para crear un juego de archivos de volcado en Autonomous Database

  1. Cree un directorio en el que almacenar los archivos de volcado que contienen los datos exportados. Por ejemplo:
    CREATE DIRECTORY data_export_dir as 'data_export';
  2. Ejecute Data Pump Export con el parámetro dumpfile definido, el parámetro filesize definido en menos de 50G y el parámetro directory definido. Por ejemplo, a continuación se muestra cómo exportar un esquema denominado SALES en una instancia de Autonomous Database denominada ATPC1 con 64 ECPU:
    expdp sales/password@ATPC1_high 
    directory=data_export_dir 
    dumpfile=exp%L.dmp 
    parallel=16
    encryption_pwd_prompt=yes
    filesize=1G
    logfile=export.log
    Notas sobre los parámetros de pump de datos:
    • En el caso de las ECPU, parallel se debe definir en 0,25 veces el recuento de ECPU. Por lo tanto, en el ejemplo anterior con 64 ECPU, parallel se define en 0,25 x 64, es decir, 16 con expdp.

    • En el caso de las OCPU, parallel se debe definir en el mismo valor que el recuento de OCPU. En el ejemplo anterior con 16 OCPU, parallel se definirá en 16, con expdp.

    • Si durante la exportación con expdp utiliza el parámetro encryption_pwd_prompt=yes, debe utilizar 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 con 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.

    Para obtener el mejor rendimiento de exportación, utilice el servicio de base de datos HIGH para la conexión de exportación y defina el parámetro PARALLEL en el número de CPU de una base de datos. Para obtener información sobre el nombre de servicio de base de datos al que debe conectarse para ejecutar Data Pump Export, consulte Nombres de servicio de base de datos predefinidos para instancias de Autonomous Database.

    Una vez finalizada la exportación, puede ver los archivos de volcado generados ejecutando una consulta como la siguiente:
    SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_EXPORT_DIR');
    Por ejemplo, la salida de esta consulta muestra los archivos de volcado generados y el archivo log de exportación:
    
    OBJECT_NAME                 BYTES  CHECKSUM                   CREATED          LAST_MODIFIED  
    ---------------------- ---------- ----–---- –------------------------–----- --------------------
    exp01.dmp                   12288               12-NOV-19 06.10.47.0 PM GMT       12-NOV-19...
    exp02.dmp                    8192               12-NOV-19 06.10.48.0 PM GMT       12-NOV-19...
    exp03.dmp                 1171456               12-NOV-19 06.10.48.0 PM GMT       12-NOV-19...
    exp04.dmp                  348160               12-NOV-19 06.10.48.0 PM GMT       12-NOV-19...
    export.log                   1663               12-NOV-19 06.10.50.0 PM GMT       12-NOV-19...
    

Notas:

  • Para realizar una exportación completa o exportar objetos propiedad de otros usuarios, necesita el rol DATAPUMP_CLOUD_EXP.

  • La API que utiliza para mover los archivos de volcado a Object Storage soporta tamaños de archivo de hasta 50 GB, por lo que no debe especificar tamaños superiores a los del argumento filesize.

  • 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.

Traslado del juego de archivos de volcado de Autonomous Database al almacén de objetos en la nube

  1. Conexión a la instancia de Autonomous Database.

  2. Almacene la credencial de Cloud Object Storage mediante el procedimiento DBMS_CREDENTIAL.CREATE_CREDENTIAL. Por ejemplo:
    BEGIN
      DBMS_CREDENTIAL.CREATE_CREDENTIAL(
        credential_name => 'DEF_CRED_NAME',
        username => 'adb_user@oracle.com',
        password => 'password'
      );
    END;
    /
    Los valores que proporcione para username y password dependen del servicio de Cloud Object Storage que utilice:
    • Oracle Cloud Infrastructure Object Storage: username es el nombre de usuario de Oracle Cloud Infrastructure y password es el token de autenticación de Oracle Cloud Infrastructure. Consulte Trabajar con token de autenticación.

    • Oracle Cloud Infrastructure Object Storage Classic: username es el nombre de usuario de Oracle Cloud Infrastructure Classic y password es la contraseña de Oracle Cloud Infrastructure Classic.

      Esta operación almacena las credenciales en la base de datos en un formato cifrado. Puede utilizar cualquier nombre para el nombre de credencial. Tenga en cuenta que este paso solo es necesario una vez, a menos que cambien las credenciales del almacén de objetos. Una vez almacenadas las credenciales, puede utilizar el mismo nombre de credencial para todas las cargas de datos.

  3. Mueva los archivos de volcado de la instancia de Autonomous Database al almacén de objetos en la nube mediante una llamada a DBMS_CLOUD.PUT_OBJECT.

    Por ejemplo:
    BEGIN
       DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME',
         object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp01.dmp',
         directory_name => 'DATA_EXPORT_DIR',
         file_name => 'exp01.dmp');
       DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME',
         object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp02.dmp',
         directory_name => 'DATA_EXPORT_DIR',
         file_name => 'exp02.dmp');
       DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME',
         object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp03.dmp',
         directory_name => 'DATA_EXPORT_DIR',
         file_name => 'exp03.dmp');
       DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME',
         object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp04.dmp',
         directory_name => 'DATA_EXPORT_DIR',
         file_name => 'exp04.dmp');
    END;
    /

    Consulte Procedimiento PUT_OBJECT para obtener información sobre PUT_OBJECT.

Exportación directa de datos de Autonomous Database al almacén de objetos

Muestra cómo utilizar Oracle Data Pump para exportar datos directamente de Autonomous Database al almacén de objetos en la nube.

  1. Conexión a la instancia de Autonomous Database.
  2. Almacene la credencial de Cloud Object Storage mediante el procedimiento DBMS_CREDENTIAL.CREATE_CREDENTIAL. Por ejemplo:
    BEGIN
      DBMS_CREDENTIAL.CREATE_CREDENTIAL(
        credential_name => 'DEF_CRED_NAME',
               username => 'adb_user@oracle.com',
        password => 'password'
        );
    END;
    /
    Los valores que proporcione para username y password dependen del servicio de Cloud Object Storage que utilice:
    • Oracle Cloud Infrastructure Object Storage: username es el nombre de usuario de Oracle Cloud Infrastructure y password es el token de autenticación de Oracle Cloud Infrastructure. Consulte Trabajar con token de autenticación.
    • Oracle Cloud Infrastructure Object Storage Classic: username es el nombre de usuario de Oracle Cloud Infrastructure Classic y password es la contraseña de Oracle Cloud Infrastructure Classic.

    Esta operación almacena las credenciales en la base de datos en un formato cifrado. Puede utilizar cualquier nombre para el nombre de credencial. Tenga en cuenta que este paso solo es necesario una vez, a menos que cambien las credenciales del almacén de objetos. Una vez almacenadas las credenciales, puede utilizar el mismo nombre de credencial para todas las cargas de datos.

  3. Como usuario ADMIN, defina la credencial que ha especificado en el paso anterior como la credencial por defecto para Autonomous Database.
    Por ejemplo:
    ALTER DATABASE PROPERTY SET DEFAULT_CREDENTIAL = 'DEF_CRED_NAME';
  4. Ejecute la exportación de Data Pump con el parámetro dumpfile definido en la URL de un cubo existente en Cloud Object Storage (que termina con un nombre de archivo o un nombre de archivo con una variable de sustitución, como exp%U.dmp).
    • Oracle Data Pump versión 19.9 o posterior:
      defina el parámetro credential en el nombre de la credencial que ha creado en el paso 2. Por ejemplo:
      expdp admin/password@ADBD_high \
      SCHEMAS=SOE3 \
      filesize=5GB \
      credential=DEF_CRED_NAME \
      dumpfile=https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/adbdpreview1/mybucket/export%L.dmp \
      parallel=16 \
      encryption_pwd_prompt=yes \
      logfile=export.log \
      directory=data_pump_dir \
      EXCLUDE=statistics,index
      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-ashburn-1. (adbdpreview1 es el espacio de nombres de almacenamiento de objetos en el que reside el cubo).
    • Versiones de Oracle Data Pump anteriores a la 19.9:
      inicie el valor del parámetro dumpfile con la palabra clave default_credential y dos puntos. Por ejemplo:
      expdp admin/password@ADBD_high \
      SCHEMAS=SOE3 \
      filesize=5GB \
      dumpfile=DEF_CRED_NAME:https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/adbdpreview1/mybucket/export%L.dmp \ 
      parallel=16 \
      encryption_pwd_prompt=yes \
      logfile=export.log \
      directory=data_pump_dir \
      EXCLUDE=statistics,index 
      En este ejemplo, se requiere la palabra clave default_credential en el parámetro dumpfile.
    Notas sobre los parámetros de Oracle Data Pump:
    • Por defecto, la exportación de Oracle Data Pump comprime solo los metadatos antes de escribir en el juego de archivos de volcado. Puede definir el parámetro compression en ALL para comprimir metadatos y datos antes de escribir en el juego de archivos de volcado. Consulte COMPRESSION en Oracle Database 19c Utilities o Oracle Database 23ai Utilities para obtener más informació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.

      Para obtener más información, consulte Parámetros disponibles en el modo de línea de comandos de exportación de pump de datos en Oracle Data Base 19c Utilities o Oracle Data Base 23ai Utilities.

    • Para obtener el mejor rendimiento a la exportación, utilice el servicio de base de datos high para su conexión a exportación y defina el parámetro parallel en 0,25 veces el número de ECPU o el mismo que el número de OCPU de Autonomous Database. Para obtener información sobre el nombre de servicio de base de datos al que debe conectarse para ejecutar Data Pump Export, consulte Nombres de servicio de base de datos predefinidos para instancias de Autonomous Database.

    • 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 obtener información sobre los objetos no permitidos en Autonomous Database, consulte Limitaciones sobre el uso de comandos SQL.

  5. Valide los resultados.
    Oracle Data Pump divide cada parte del archivo de volcado en fragmentos más pequeños para cargas más rápidas. La consola de Oracle Cloud Infrastructure Object Storage muestra varios archivos para cada parte del archivo de volcado que exporte. El tamaño de los archivos de volcado reales se mostrará como cero (0) y sus fragmentos de archivo relacionados como 10 MB o menos. Por ejemplo:
    exp01.dmp
    exp01.dmp_aaaaaa
    exp02.dmp
    exp02.dmp_aaaaaa

    Note:

    Al descargar el archivo de volcado de cero bytes desde la consola de Oracle Cloud Infrastructure o mediante la CLI de Oracle Cloud Infrastructure, no obtendrá todos los archivos de volcado. Para descargar todos los archivos de volcado del almacén de objetos, utilice una herramienta que soporte Swift, como curl, y proporcione su conexión de usuario y token de autenticación Swift. Por ejemplo:
    curl -O -v -X GET -u 'user1@example.com:auth_token' \
       https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/namespace-string/bucketname/export01.dmp

Descarga de archivos de volcado, ejecución de Data Pump Import y limpieza del almacén de objetos

Si es necesario, descargue los archivos de volcado desde Cloud Object Store y utilice Oracle Data Pump Import para importar el juego de archivos de volcado en la base de datos de destino. A continuación, realice las tareas de limpieza necesarias.

  1. Descargue los archivos de volcado del almacén de objetos en la nube.

    Note:

    Este paso no es necesario si va a importar los datos a otra instancia de Autonomous Database.
    Si exporta directamente al almacén de objetos mediante Oracle Data Pump, como se muestra en Exportación directa de datos de Autonomous Database al almacén de objetos, los archivos de volcado del almacén de objetos mostrarán el tamaño 0. Oracle Data Pump divide cada parte del archivo de volcado en fragmentos más pequeños para cargas más rápidas. La consola de Oracle Cloud Infrastructure Object Storage muestra varios archivos para cada parte del archivo de volcado que exporte. El tamaño de los archivos de volcado reales se mostrará como cero (0) y sus fragmentos de archivo relacionados como 10 MB o menos. Por ejemplo:
    exp01.dmp
    exp01.dmp_aaaaaa
    exp02.dmp
    exp02.dmp_aaaaaa
    Al descargar el archivo de volcado de cero bytes desde la consola de Oracle Cloud Infrastructure o mediante la CLI de Oracle Cloud Infrastructure, no obtendrá todos los archivos de volcado. Para descargar todos los archivos de volcado del almacén de objetos, utilice una herramienta que soporte Swift, como curl, y proporcione su conexión de usuario y token de autenticación Swift. Por ejemplo:
    curl -O -v -X GET -u 'user1@example.com:auth_token' \
       https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/namespace-string/bucketname/exp01.dmp

    El comando cURL no soporta comodines ni caracteres de sustitución en su URL. Debe utilizar varios comandos cURL para descargar el juego de archivos de volcado del almacén de objetos. También puede utilizar un script que soporte caracteres de sustitución para descargar todos los archivos de volcado del almacén de objetos en un solo comando. Consulte la sección sobre cómo descargar todos los archivos de un trabajo de exportación al almacén de objetos en Autonomous Database mediante cURL para ver un ejemplo.

  2. Ejecute Data Pump Import para importar el juego de archivos de volcado en la base de datos de destino.

    Note:

    Si desea importar los datos a otra instancia de Autonomous Database, consulte Carga de datos mediante Oracle Data Pump.

    En el caso de archivos exportados directamente al almacén de objetos mediante Oracle Data Pump, como se muestra en Exportación directa de datos de Autonomous Database al almacén de objetos, si importa un archivo con los procedimientos DBMS_CLOUD que soportan el parámetro de format type con el valor 'datapump', solo debe proporcionar el nombre del archivo primario. Los procedimientos que soportan el tipo de formato 'datapump' detectan y descargan automáticamente los fragmentos.

  3. Realice tareas de limpieza posteriores a la importación. Si ha terminado de importar los archivos de volcado en las bases de datos de destino, borre el cubo que contiene los datos o elimine los archivos de volcado del cubo del almacén de objetos en la nube, y elimine los archivos de volcado de la ubicación en la que ha descargado los archivos de volcado para ejecutar Data Pump Import.

Para obtener información detallada, consulte Parámetros disponibles en el modo de línea de comandos de importación de Oracle Data Pump en Oracle Database 19c Utilities u Oracle Database 23ai Utilities.