Tablespace transportable de pump de datos

Sólo se puede utilizar este método si la plataforma local tiene formato little endian, mientras que los juegos de caracteres de la base de datos local y la base de datos del servicio Oracle Cloud Infrastructure Database son compatibles.

El método Tablespace transportable generalmente es mucho más rápido que una exportación/importación convencional de los mismos datos, ya que basta con copiar los archivos de datos que contienen todos los datos reales en la ubicación de destino. Utilice un pump de datos para transferir únicamente los metadatos de los objetos del tablespace a la nueva base de datos.

Para migrar una base de datos origen local al despliegue de la base de datos del servicio de base de datos mediante el método tablespace transportable de pump de patos, realice estas tareas:

  1. En el host de la base de datos local, prepare la base de datos para la exportación del tablespace transportable de pump de datos.

  2. En el host de la base de datos local, invoque la Exportación de pump de datos para realizar la exportación del tablespace transportable.

  3. Utilice una herramienta de copia segura para transferir el archivo de volcado de exportación de pump de datos y los archivos de datos de tablespace al nodo de cálculo del servicio de base de datos.

  4. Ajuste los tablespaces locales de nuevo a READ WRITE.

  5. En el nodo de cálculo del servicio de base de datos, prepare la base de datos para la importación del tablespace.

  6. En el nodo de cálculo del servicio de base de datos, invoque la importación de pump de datos y conéctese a la base de datos.

  7. Ajuste los tablespaces de la base de datos del servicio de base de datos al modo READ WRITE.

  8. Después de verificar que los datos se han importado correctamente, puede eliminar el archivo de volcado.

Tablespace transportable de pump de datos: ejemplo

Este ejemplo proporciona una demostración paso a paso de las tareas necesarias para migrar tablespaces de una base de datos Oracle local a una base de datos del servicio de base de datos.

En este ejemplo se realiza una migración de los tablespaces FSDATA y FSINDEX.

En este ejemplo, la base de datos local está en un host de Linux.

  1. En el host de la base de datos local, prepare la base de datos para la exportación del tablespace transportable de pump de datos.

    1. En el host de la base de datos local, cree un directorio en el sistema operativo que se utilizará para la exportación local.

      mkdir /u01/app/oracle/admin/orcl/dpdump/for_cloud
    2. En el host de la base de datos local, invoque SQL*Plus y conéctese a la base de datos local como usuario SYSTEM.

      sqlplus system
      Enter password: <enter the password for the SYSTEM user>
    3. Cree un objeto de directorio en la base de datos local para hacer referencia al directorio del sistema operativo.

      SQL> CREATE DIRECTORY dp_for_cloud AS '/u01/app/oracle/admin/orcl/dpdump/for_cloud';
    4. Determine los nombres de los archivos de datos que pertenecen a los tablespaces FSDATA y FSINDEX consultando DBA_DATA_FILES. Estos archivos también se mostrarán en la salida de exportación.

      SQL> SELECT file_name FROM dba_data_files
        2  WHERE tablespace_name = 'FSDATA';
      
      FILE_NAME
      -----------------------------------------------------------------
      /u01/app/oracle/oradata/orcl/fsdata01.dbf
      
      SQL> SELECT file_name FROM dba_data_files 
        2  WHERE tablespace_name = 'FSINDEX';
      
      FILE_NAME
      -----------------------------------------------------------------
      /u01/app/oracle/oradata/orcl/fsindex01.dbf
    5. En el host de la base de datos local, defina todos los tablespaces que se transportarán (juego transportable) en modo READ ONLY.

      SQL> ALTER TABLESPACE fsindex READ ONLY;
      Tablespace altered.
      SQL> ALTER TABLESPACE fsdata READ ONLY;
      Tablespace altered.
    6. Salga de SQL*Plus.

  2. En el host de la base de datos local, invoque la Exportación de pump de datos para realizar la exportación del tablespace transportable.

    En el host de la base de datos local, invoque la exportación de pump de datos y conéctese a la base de datos local. Exporte los tablespaces locales con la opción TRANSPORT_TABLESPACES. Proporcione la contraseña para el usuario SYSTEM cuando se le solicite.

    expdp system TRANSPORT_TABLESPACES=fsdata,fsindex TRANSPORT_FULL_CHECK=YES DIRECTORY=dp_for_cloud
  3. Utilice una herramienta de copia segura para transferir el archivo de volcado de exportación de pump de datos y los archivos de datos de tablespace al nodo de cálculo del servicio de base de datos.

    En este ejemplo, el archivo de volcado se copia en el directorio /u01. Seleccione la ubicación adecuada según el tamaño del archivo que se va a transferir.

    1. En el nodo de cálculo del servicio de base de datos, cree un directorio para el archivo de volcado.

      mkdir /u01/app/oracle/admin/ORCL/dpdump/from_onprem
    2. Antes de utilizar la herramienta scp para copiar archivos, asegúrese de que la clave privada SSH que proporciona acceso al nodo de cálculo de servicio de base de datos está disponible en el host local.

    3. En el host de la base de datos local, utilice la utilidad scp para transferir el archivo de volcado y todos los archivos de datos del juego transportable al nodo de cálculo del servicio de base de datos.

      scp -i private_key_file \ 
      /u01/app/oracle/admin/orcl/dpdump/for_cloud/expdat.dmp \
      oracle@IP_address_DBaaS_VM:/u01/app/oracle/admin/ORCL/dpdump/from_onprem
      
      $ scp -i private_key_file \/u01/app/oracle/oradata/orcl/fsdata01.dbf \
      oracle@IP_address_DBaaS_VM:/u02/app/oracle/oradata/ORCL
      
      $ scp -i private_key_file \/u01/app/oracle/oradata/orcl/fsindex01.dbf \
      oracle@IP_address_DBaaS_VM:/u02/app/oracle/oradata/ORCL
  4. Ajuste los tablespaces locales de nuevo a READ WRITE.

    1. Invoque SQL*Plus e inicie sesión como usuario SYSTEM.

    2. Ajuste los tablespaces FSDATA y FSINDEX de nuevo al modo READ WRITE.

      SQL> ALTER TABLESPACE fsdata READ WRITE;
      Tablespace altered.
      SQL> ALTER TABLESPACE fsindex READ WRITE;
      Tablespace altered.
    3. Salga de SQL*Plus.

  5. En el nodo de cálculo del servicio de base de datos, prepare la base de datos para la importación del tablespace.

    1. En el nodo de cálculo del servicio de base de datos, llame a SQL*Plus y conéctese a la base de datos como usuario SYSTEM.

    2. Cree un objeto de directorio en la base de datos del servicio de base de datos.

      SQL> CREATE DIRECTORY dp_from_onprem AS '/u01/app/oracle/admin/ORCL/dpdump/from_onprem';
    3. Si los propietarios de los objetos que se van a importar no existen en la base de datos, créelos antes de realizar la importación. El modo tablespace transportable de la importación no crea los usuarios.

      SQL> CREATE USER fsowner
        2  PROFILE default
        3  IDENTIFIED BY fspass
        4  TEMPORARY TABLESPACE temp
        5  ACCOUNT UNLOCK;
  6. En el nodo de cálculo del servicio de base de datos, invoque la importación de pump de datos y conéctese a la base de datos.

    Importe los datos a la base de datos con la opción TRANSPORT_DATAFILES.

    impdp system DIRECTORY=dp_from_onprem \
    TRANSPORT_DATAFILES='/u02/app/oracle/oradata/ORCL/fsdata01.dbf', \
    '/u02/app/oracle/oradata/ORCL/fsindex01.dbf'
  7. Ajuste los tablespaces de la base de datos del servicio de base de datos al modo READ WRITE.

    1. Invoque SQL*Plus e inicie sesión como usuario SYSTEM.

    2. Ajuste los tablespaces FSDATA y FSINDEX al modo READ WRITE.

      SQL> ALTER TABLESPACE fsdata READ WRITE;
      Tablespace altered.
      SQL> ALTER TABLESPACE fsindex READ WRITE;
      Tablespace altered.
    3. Salga de SQL*Plus.

  8. Después de verificar que los datos se han importado correctamente, puede eliminar el archivo de volcado expdat.dmp.