

# Migración mediante espacios de tabla transportables de Oracle
<a name="oracle-migrating-tts"></a>

Puede utilizar la característica de espacios de tabla transportables de Oracle para copiar un conjunto de espacios de tabla de una base de datos de Oracle en las instalaciones a una instancia de base de datos de RDS para Oracle. En el nivel físico, los archivos de datos de origen y los archivos de metadatos se transfieren a la instancia de base de datos de destino mediante Amazon EFS o Amazon S3. La característica de espacios de tabla transportables utiliza el paquete `rdsadmin.rdsadmin_transport_util`. Para obtener información sobre la sintaxis y la semántica de este paquete, consulte [Transporte de espacios de tabla](rdsadmin_transport_util.md).

Para ver publicaciones de blog que explican cómo transportar espacios de tabla, consulte [Migrate Oracle Databases to AWS using transportable tablespace](https://aws.amazon.com/blogs/database/migrate-oracle-databases-to-aws-using-transportable-tablespace/) y [Amazon RDS for Oracle Transportable Tablespaces using RMAN](https://aws.amazon.com/blogs/database/amazon-rds-for-oracle-transportable-tablespaces-using-rman/).

**Topics**
+ [Descripción general de los espacios de tabla transportables de Oracle](#oracle-migrating-tts.overview)
+ [Fase 1: Configurar el host de origen](#oracle-migrating-tts.setup-phase)
+ [Fase 2: Preparar la copia de seguridad completa del espacio de tabla](#oracle-migrating-tts.initial-br-phase)
+ [Fase 3: Realizar y transferir copias de seguridad incrementales](#oracle-migrating-tts.roll-forward-phase)
+ [Fase 4: Transportar los espacios de tabla](#oracle-migrating-tts.final-br-phase)
+ [Fase 5: Validar los espacios de tabla transportados](#oracle-migrating-tts.validate)
+ [Fase 6: Limpiar los archivos sobrantes](#oracle-migrating-tts.cleanup)

## Descripción general de los espacios de tabla transportables de Oracle
<a name="oracle-migrating-tts.overview"></a>

Un conjunto de espacios de tabla transportables consta de archivos de datos para el conjunto de espacios de tabla que se transportan y un archivo de volcado de exportación que contiene los metadatos del espacio de tabla. En una solución de migración física, como los espacios de tabla transportables, se transfieren archivos físicos: archivos de datos, archivos de configuración y archivos de volcado de Data Pump.

**Topics**
+ [Ventajas y desventajas de los espacios de tabla transportables](#oracle-migrating-tts.overview.benefits)
+ [Limitaciones de los espacios de tabla transportables](#oracle-migrating-tts.limitations)
+ [Requisitos previos para los espacios de tabla transportables](#oracle-migrating-tts.requirements)

### Ventajas y desventajas de los espacios de tabla transportables
<a name="oracle-migrating-tts.overview.benefits"></a>

Le recomendamos que utilice espacios de tabla transportables cuando tenga que migrar uno o más espacios de tabla grandes a RDS con un tiempo de inactividad mínimo. Los espacios de tabla transportables ofrecen las siguientes ventajas con respecto a la migración lógica:
+ El tiempo de inactividad es inferior al de la mayoría de las demás soluciones de migración de Oracle.
+ Dado que la característica de espacio de tabla transportable solo copia archivos físicos, evita los errores de integridad de los datos y la corrupción lógica que pueden producirse en la migración lógica.
+ No se requiere ninguna licencia adicional.
+ Puede migrar un conjunto de espacios de tabla en diferentes plataformas y tipos de endianness, por ejemplo, de una plataforma Oracle Solaris a Linux. Sin embargo, no se admite el transporte de espacios de tabla hacia y desde servidores Windows.
**nota**  
Linux está totalmente probado y es compatible. No se han probado todas las variantes de UNIX.

Si usa espacios de tabla transportables, puede transportar datos mediante Amazon S3 o Amazon EFS:
+ Si utiliza EFS, las copias de seguridad permanecen en el sistema de archivos EFS durante la importación. Podrá eliminar los archivos después. En esta técnica, no es necesario aprovisionar el almacenamiento de EBS para la instancia de base de datos. Por este motivo, se recomienda utilizar Amazon EFS en lugar de S3. Para obtener más información, consulte [Integración de Amazon EFS](oracle-efs-integration.md).
+ Si usa S3, debe descargar las copias de seguridad de RMAN al almacenamiento de EBS adjunto a su instancia de base de datos. Los archivos permanecerán en su almacenamiento de EBS durante la importación. Tras la importación, puede liberar este espacio, que sigue asignado a la instancia de base de datos.

La principal desventaja de los espacios de tabla transportables es que se necesitan conocimientos relativamente avanzados de Oracle Database. Para obtener más información, consulte el tema sobre cómo [transportar espacios de tabla entre bases de datos](https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/transporting-data.html#GUID-F7B2B591-AA88-4D16-8DCF-712763923FFB) en la *Guía del administrador de bases de datos de Oracle*.

### Limitaciones de los espacios de tabla transportables
<a name="oracle-migrating-tts.limitations"></a>

Las limitaciones de Oracle Database para los espacios de tabla transportables se aplican cuando se utiliza esta característica en RDS para Oracle. Para obtener más información, consulte los apartados sobre [limitaciones de los espacios de tabla transportables]( https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/transporting-data.html#GUID-DAB51E42-9BBC-4001-B5CB-0ECDBE128787) y [limitaciones generales del transporte de datos](https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/transporting-data.html#GUID-28800719-6CB9-4A71-95DD-4B61AA603173) en la *Guía del administrador de bases de datos de Oracle*. Tenga en cuenta las siguientes limitaciones adicionales para los espacios de tabla transportables en RDS para Oracle:
+ Ni la base de datos de origen ni la de destino pueden utilizar Standard Edition 2 (SE2). Solo se admite la edición Enterprise.
+ No puede utilizar una base de datos Oracle Database 11g como origen. La característica de espacios de tablas transportables multiplataforma de RMAN se basa en el mecanismo de transporte RMAN, que Oracle Database 11g no admite.
+ No puede migrar datos de una instancia de base de datos de RDS para Oracle mediante espacios de tabla transportables. Solo puede usar espacios de tabla transportables para migrar datos a una instancia de base de datos de RDS para Oracle.
+ No admite el sistema operativo Windows.
+ No puede transportar espacios de tabla a una base de datos con un nivel de versión inferior. La base de datos de destino debe estar en el mismo nivel de versión o en una versión posterior que la base de datos de origen. Por ejemplo, no puede transportar espacios de tabla de Oracle Database 21c a Oracle Database 19c.
+ No puede transportar espacios de tablas administrativas como `SYSTEM` y `SYSAUX`.
+ No puede transportar objetos que no sean de datos, como paquetes PL/SQL, clases de Java, vistas, desencadenadores, secuencias, usuarios, roles y tablas temporales. Para transportar objetos que no sean de datos, créelos manualmente o utilice la exportación e importación de metadatos de Data Pump. Para obtener más información, consulte [My Oracle Support Note 1454872.1](https://support.oracle.com/knowledge/Oracle%20Cloud/1454872_1.html).
+ No puede transportar espacios de tabla cifrados ni utilizar columnas cifradas.
+ Si transfiere archivos mediante Amazon S3, el tamaño máximo de archivo admitido será de 5 TiB.
+ Si la base de datos de origen utiliza opciones de Oracle, como Spatial, no podrá transportar espacios de tabla a menos que se configuren las mismas opciones en la base de datos de destino.
+ No puede transportar espacios de tabla a una instancia de base de datos de RDS para Oracle en una configuración de réplica de Oracle. Como solución alternativa, puede eliminar todas las réplicas, transportar los espacios de tabla y, a continuación, volver a crear las réplicas.

### Requisitos previos para los espacios de tabla transportables
<a name="oracle-migrating-tts.requirements"></a>

 Antes de empezar, complete las siguientes tareas:
+ Revise los requisitos de los espacios de tabla transportables que se describen en los siguientes documentos de My Oracle Support:
  + [Reduzca el tiempo de inactividad del espacio de tabla transportable mediante la copia de seguridad incremental multiplataforma (ID del documento 2471245.1)](https://support.oracle.com/epmos/faces/DocumentDisplay?id=2471245.1)
  + [Restricciones y limitaciones del espacio de tabla transportable (TTS): detalles, referencia y versión, según corresponda (ID del documento 1454872.1)](https://support.oracle.com/epmos/faces/DocumentDisplay?id=1454872.1)
  + [Nota principal sobre los espacios de tabla transportables (TTS): preguntas y problemas frecuentes (ID del documento 1166564.1)](https://support.oracle.com/epmos/faces/DocumentDisplay?id=1166564.1)
+ Planifique la conversión de endianness. Si especifica el ID de la plataforma de origen, RDS para Oracle convierte el endianness automáticamente. Para obtener información sobre cómo encontrar los ID de plataforma, consulte [Data Guard Support for Heterogeneous Primary and Physical Standbys in Same Data Guard Configuration (Doc ID 413484.1)](https://support.oracle.com/epmos/faces/DocumentDisplay?id=413484.1) (Compatibilidad de Data Guard para instancias en espera principales y físicas heterogéneos en la misma configuración de Data Guard). 
+ Asegúrese de que la característica de espacio de tabla transportable esté habilitada en la instancia de base de datos de destino. La característica solo está habilitada si no reciben ningún error `ORA-20304` al ejecutar la siguiente consulta:

  ```
  SELECT * FROM TABLE(rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files);
  ```

  Si la característica de espacio de tabla transportable no está habilitada, reinicie la instancia de base de datos. Para obtener más información, consulte [Reinicio de una instancia de base de datos ](USER_RebootInstance.md).
+ Compruebe que el archivo de zona horaria sea el mismo en las bases de datos de origen y destino.
+ Compruebe que los juegos de caracteres de las bases de datos de origen y destino cumplen alguno de los siguientes requisitos:
  + Los conjuntos de caracteres son los mismos.
  + Los conjuntos de caracteres son compatibles. Para obtener una lista de los requisitos de compatibilidad, consulte [General Limitations on Transporting Data](https://docs.oracle.com/en/database/oracle/oracle-database/19/spmdu/general-limitations-on-transporting-data.html#GUID-28800719-6CB9-4A71-95DD-4B61AA603173) en la documentación de Oracle Database.
+ Si tiene previsto transferir archivos mediante Amazon S3, haga lo siguiente:
  + Asegúrese de que haya un bucket de Amazon S3 disponible para las transferencias de archivos, y de que el bucket de Amazon S3 esté en la misma región de AWS que la instancia de base de datos. Para ver las instrucciones, consulte [Crear un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html) en la *Guía de introducción de Amazon Simple Storage Service*.
  + Debe preparar el bucket de Amazon S3 para la integración de Amazon RDS siguiendo las instrucciones de [Configuración de permisos IAM para la integración de RDS para Oracle con Amazon S3](oracle-s3-integration.preparing.md).
+ Si tiene previsto transferir archivos mediante Amazon EFS, asegúrese de haber configurado EFS según las instrucciones de [Integración de Amazon EFS](oracle-efs-integration.md).
+ Le recomendamos encarecidamente que active las copias de seguridad automáticas en la instancia de base de datos de destino. Dado que el [paso de importación de metadatos](#oracle-migrating-tts.transport.import-dmp) puede fallar, es importante poder restaurar la instancia de base de datos al estado anterior a la importación, para evitar la necesidad de realizar copias de seguridad, transferir e importar los espacios de tabla de nuevo.

## Fase 1: Configurar el host de origen
<a name="oracle-migrating-tts.setup-phase"></a>

En este paso, se copian los scripts de espacios de tabla transportables proporcionados por My Oracle Support y se configuran los archivos de configuración necesarios. En los siguientes pasos, el *host de origen* ejecuta la base de datos que contiene los espacios de tabla que se transportarán a la *instancia de destino*.

**Para configurar el host de origen**

1. Inicie sesión en su host de origen como propietario de su inicio de Oracle.

1. Asegúrese de que sus variables de entorno `ORACLE_HOME` y `ORACLE_SID` apunten hacia la base de datos de origen.

1. Inicie sesión en la base de datos como administrador y compruebe que la versión de zona horaria, el juego de caracteres de la base de datos y el conjunto de caracteres nacionales sean los mismos que los de la base de datos de destino.

   ```
   SELECT * FROM V$TIMEZONE_FILE;
   SELECT * FROM NLS_DATABASE_PARAMETERS 
     WHERE PARAMETER IN ('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');
   ```

1. Configure la utilidad de espacio de tabla transportable tal como se describe en la [nota de soporte de Oracle 2471245.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=2471245.1). 

   La configuración incluye la edición del archivo `xtt.properties` en el host de origen. El siguiente archivo `xtt.properties` de ejemplo especifica las copias de seguridad de tres espacios de tabla del directorio `/dsk1/backups`. Estos son los espacios de tabla que pretende transportar a la instancia de base de datos de destino. También especifica el ID de la plataforma de origen para convertir el endianness automáticamente.
**nota**  
Para encontrar los ID de plataforma válidos, consulte [Data Guard Support for Heterogeneous Primary and Physical Standbys in Same Data Guard Configuration (Doc ID 413484.1)](https://support.oracle.com/epmos/faces/DocumentDisplay?id=413484.1) (Compatibilidad de Data Guard para instancias en espera principales y físicas heterogéneos en la misma configuración de Data Guard). 

   ```
   #linux system 
   platformid=13
   #list of tablespaces to transport
   tablespaces=TBS1,TBS2,TBS3
   #location where backup will be generated
   src_scratch_location=/dsk1/backups
   #RMAN command for performing backup
   usermantransport=1
   ```

## Fase 2: Preparar la copia de seguridad completa del espacio de tabla
<a name="oracle-migrating-tts.initial-br-phase"></a>

En esta fase, realiza una copia de seguridad de los espacios de tabla por primera vez, transfiere las copias de seguridad al host de destino y, a continuación, las restaura siguiendo el procedimiento `rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces`. Cuando se complete esta fase, las copias de seguridad iniciales del espacio de tabla estarán en la instancia de base de datos de destino y se podrán actualizar con copias de seguridad incrementales.

**Topics**
+ [Paso 1: realice copias de seguridad de los espacios de tabla en el host de origen](#oracle-migrating-tts.backup-full)
+ [Paso 2: transfiera los archivos de copia de seguridad a la instancia de base de datos de destino](#oracle-migrating-tts.transfer-full)
+ [Paso 3: importe los espacios de tabla en la instancia de base de datos de destino](#oracle-migrating-tts.initial-tts-import)

### Paso 1: realice copias de seguridad de los espacios de tabla en el host de origen
<a name="oracle-migrating-tts.backup-full"></a>

En este paso, utilizará el script `xttdriver.pl` para hacer una copia de seguridad completa de sus espacios de tabla. La salida de `xttdriver.pl` se almacena en la variable de entorno `TMPDIR`.

**Para hacer una copia de seguridad de los espacios de tabla**

1. Si los espacios de tabla están en modo de solo lectura, inicie sesión en la base de datos de origen como usuario con el privilegio `ALTER TABLESPACE` y coloque los espacios de tabla en modo de lectura/escritura. De no ser así, vaya al siguiente paso.

   En el siguiente ejemplo se establecen `tbs1`, `tbs2` y `tbs3` en modo de lectura/escritura.

   ```
   ALTER TABLESPACE tbs1 READ WRITE;
   ALTER TABLESPACE tbs2 READ WRITE;
   ALTER TABLESPACE tbs3 READ WRITE;
   ```

1. Realice una copia de seguridad de los espacios de tabla con el script `xttdriver.pl`. Si lo desea, puede especificar `--debug` para que ejecute el script en modo de depuración.

   ```
   export TMPDIR=location_of_log_files
   cd location_of_xttdriver.pl
   $ORACLE_HOME/perl/bin/perl xttdriver.pl --backup
   ```

### Paso 2: transfiera los archivos de copia de seguridad a la instancia de base de datos de destino
<a name="oracle-migrating-tts.transfer-full"></a>

En este paso, debe copiar los archivos de copia de seguridad y de configuración de la ubicación inicial a la instancia de base de datos de destino. Elija una de las siguientes opciones:
+ Si los hosts de origen y destino comparten un sistema de archivos de Amazon EFS, use una utilidad del sistema operativo, por ejemplo, `cp`, para copiar los archivos de copia de seguridad y el archivo `res.txt` de su ubicación inicial a un directorio compartido. A continuación, diríjase a [Paso 3: importe los espacios de tabla en la instancia de base de datos de destino](#oracle-migrating-tts.initial-tts-import).
+ Si necesita organizar sus copias de seguridad en un bucket de Amazon S3, siga estos pasos.

![\[Transfiera los archivos mediante Amazon EFS o Amazon S3.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/oracle-tts.png)


#### Paso 2.2: Cargar las copias de seguridad en el bucket de Amazon S3
<a name="oracle-migrating-tts.upload-full"></a>

Cargue las copias de seguridad y el archivo `res.txt` del directorio inicial al bucket de Amazon S3. Para obtener más información, consulte [Carga de objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) en la *Guía del desarrollador de Amazon Simple Storage Service*.

#### Paso 2.3: Descargar las copias de seguridad desde el bucket de Amazon S3 a la instancia de base de datos de destino
<a name="oracle-migrating-tts.download-full"></a>

En este paso, utilizará el procedimiento `rdsadmin.rdsadmin_s3_tasks.download_from_s3` para descargar las copias de seguridad en la instancia de base de datos de RDS para Oracle.

**Para descargar las copias de seguridad del bucket de Amazon S3**

1. Inicie SQL\$1Plus u Oracle SQL Developer e inicie sesión en la instancia de base de datos de destino de RDS para Oracle.

1. Descargue las copias de seguridad del bucket de Amazon S3 en la instancia de base de datos de destino mediante el procedimiento de Amazon RDS `rdsadmin.rdsadmin_s3_tasks.download_from_s3` para d. En el siguiente ejemplo se descargan todos los archivos de un bucket de Amazon S3 denominado `amzn-s3-demo-bucket` en el directorio `DATA_PUMP_DIR`.

   ```
   EXEC UTL_FILE.FREMOVE ('DATA_PUMP_DIR', 'res.txt');
   SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
     p_bucket_name    =>  'amzn-s3-demo-bucket',
     p_directory_name =>  'DATA_PUMP_DIR') 
   AS TASK_ID FROM DUAL;
   ```

   La instrucción `SELECT` devuelve el identificador de la tarea en un tipo de datos `VARCHAR2`. Para obtener más información, consulte [Descarga de archivos desde un bucket de Amazon S3 en una instancia de base de datos de Oracle](oracle-s3-integration.using.md#oracle-s3-integration.using.download).

### Paso 3: importe los espacios de tabla en la instancia de base de datos de destino
<a name="oracle-migrating-tts.initial-tts-import"></a>

Utilice el procedimiento `rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces` para restaurar los espacios de tabla en la instancia de base de datos de destino. Este procedimiento convierte automáticamente los archivos de datos al formato endian correcto.

Si realiza la importación desde una plataforma que no sea Linux, especifique la plataforma de origen mediante el parámetro `p_platform_id` cuando llame a `import_xtts_tablespaces`. Asegúrese de que el id. de plataforma coincida con el especificado en el archivo `xtt.properties` en [Paso 2: exporte los metadatos del espacio de tabla en el host de origen](#oracle-migrating-tts.transport.export).

**Importar los espacios de tabla en la instancia de base de datos de destino**

1. Inicie un cliente de Oracle SQL e inicie sesión como usuario maestro en su instancia de base de datos de destino de RDS para Oracle.

1. Ejecute el procedimiento `rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces` y especifique los espacios de tabla que se van a importar y el directorio que contiene las copias de seguridad.

   En el siguiente ejemplo se importan los espacios de tabla *TBS1*, *TBS2* y *TBS3* del directorio *DATA\$1PUMP\$1DIR*. La plataforma de origen es AIX-Based Systems (64 bits), con el id. de plataforma `6`. Puede encontrar los id. de plataforma consultando `V$TRANSPORTABLE_PLATFORM`.

   ```
   VAR task_id CLOB
   
   BEGIN
     :task_id:=rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces(
           'TBS1,TBS2,TBS3',
           'DATA_PUMP_DIR',
           p_platform_id => 6);
   END;
   /
   
   PRINT task_id
   ```

1. (Opcional) Supervise el progreso consultando la tabla `rdsadmin.rds_xtts_operation_info`. La columna `xtts_operation_state` muestra el valor `EXECUTING`, `COMPLETED` o `FAILED`.

   ```
   SELECT * FROM rdsadmin.rds_xtts_operation_info;
   ```
**nota**  
Para operaciones de larga duración, también puede consultar `V$SESSION_LONGOPS`, `V$RMAN_STATUS` y `V$RMAN_OUTPUT`.

1. Para ver el registro de la importación finalizada, utilice el ID de la tarea del paso anterior.

   ```
   SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||'&task_id'||'.log'));
   ```

   Asegúrese de que se haya completado correctamente la importación antes de continuar con el siguiente paso.

## Fase 3: Realizar y transferir copias de seguridad incrementales
<a name="oracle-migrating-tts.roll-forward-phase"></a>

En esta fase, se realizan y transfieren copias de seguridad incrementales periódicamente mientras la base de datos de origen esté activa. Esta técnica reduce el tamaño de la copia de seguridad final del espacio de tabla. Si realiza varias copias de seguridad incrementales, debe copiar el archivo `res.txt` después de la última copia de seguridad incremental antes de poder aplicarlo en la instancia de destino.

Los pasos son los mismos que en [Fase 2: Preparar la copia de seguridad completa del espacio de tabla](#oracle-migrating-tts.initial-br-phase), excepto que el paso de importación es opcional.

## Fase 4: Transportar los espacios de tabla
<a name="oracle-migrating-tts.final-br-phase"></a>

En esta fase, se realiza una copia de seguridad de los espacios de tabla de solo lectura y se exportan los metadatos de Data Pump, se transfiere estos archivos al host de destino y se importan tanto los espacios de tabla como los metadatos.

**Topics**
+ [Paso 1: realice una copia de seguridad de los espacios de tabla de solo lectura](#oracle-migrating-tts.final-backup)
+ [Paso 2: exporte los metadatos del espacio de tabla en el host de origen](#oracle-migrating-tts.transport.export)
+ [Paso 3: (solo Amazon S3) transfiera los archivos de copia de seguridad y exporte los archivos a la instancia de base de datos de destino](#oracle-migrating-tts.transport)
+ [Paso 4: Importar los espacios de tabla en la instancia de base de datos de destino](#oracle-migrating-tts.restore-full)
+ [Paso 5: Importar los metadatos del espacio de tabla en la instancia de base de datos de destino](#oracle-migrating-tts.transport.import-dmp)

### Paso 1: realice una copia de seguridad de los espacios de tabla de solo lectura
<a name="oracle-migrating-tts.final-backup"></a>

Este paso es idéntico al [Paso 1: realice copias de seguridad de los espacios de tabla en el host de origen](#oracle-migrating-tts.backup-full), salvo que aquí se establecen los espacios de tabla en modo de solo lectura antes de hacer una copia de seguridad de los espacios de tabla por última vez.

En el siguiente ejemplo se establecen `tbs1`, `tbs2` y `tbs3` en modo de solo lectura.

```
ALTER TABLESPACE tbs1 READ ONLY;
ALTER TABLESPACE tbs2 READ ONLY;
ALTER TABLESPACE tbs3 READ ONLY;
```

### Paso 2: exporte los metadatos del espacio de tabla en el host de origen
<a name="oracle-migrating-tts.transport.export"></a>

Para exportar los metadatos del espacio de tabla, ejecute la utilidad `expdb` en el host de origen. En el siguiente ejemplo se exportan los espacios de tabla *TBS1*, *TBS2* y *TBS3* al archivo de volcado *xttdump.dmp* en el directorio *DATA\$1PUMP\$1DIR*.

```
expdp username/pwd \
dumpfile=xttdump.dmp \
directory=DATA_PUMP_DIR \
statistics=NONE \
transport_tablespaces=TBS1,TBS2,TBS3 \
transport_full_check=y \
logfile=tts_export.log
```

Si *DATA\$1PUMP\$1DIR* es un directorio compartido en Amazon EFS, vaya a [Paso 4: Importar los espacios de tabla en la instancia de base de datos de destino](#oracle-migrating-tts.restore-full).

### Paso 3: (solo Amazon S3) transfiera los archivos de copia de seguridad y exporte los archivos a la instancia de base de datos de destino
<a name="oracle-migrating-tts.transport"></a>

Si utiliza Amazon S3 para organizar las copias de seguridad del espacio de tabla y el archivo de exportación de Data Pump, siga estos pasos.

#### Paso 3.1: cargue las copias de seguridad y el archivo de volcado del host de origen en el bucket de Amazon S3
<a name="oracle-migrating-tts.transport.upload-dmp"></a>

Cargue las copias de seguridad y los archivos de volcado del host de origen en el bucket de Amazon S3. Para obtener más información, consulte [Carga de objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) en la *Guía del desarrollador de Amazon Simple Storage Service*.

#### Paso 3.2: Descargar las copias de seguridad y el archivo de volcado desde el bucket de Amazon S3 a la instancia de base de datos de destino
<a name="oracle-migrating-tts.transport.download-dmp"></a>

En este paso, se utiliza el procedimiento `rdsadmin.rdsadmin_s3_tasks.download_from_s3` para descargar las copias de seguridad y el archivo de volcado en la instancia de base de datos de RDS para Oracle. Siga los pasos de [Paso 2.3: Descargar las copias de seguridad desde el bucket de Amazon S3 a la instancia de base de datos de destino](#oracle-migrating-tts.download-full).

### Paso 4: Importar los espacios de tabla en la instancia de base de datos de destino
<a name="oracle-migrating-tts.restore-full"></a>

Utilice el procedimiento `rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces` para restaurar los espacios de tabla. Para obtener información sobre la semántica de este procedimiento, consulte [Importación de espacios de tabla transportados a su instancia de base de datos](rdsadmin_transport_util_import_xtts_tablespaces.md).

**importante**  
Tras completar la importación final del espacio de tabla, el siguiente paso es [importar los metadatos de Oracle Data Pump](#oracle-migrating-tts.transport.export). Si se produce un error en la importación, es importante que la instancia de base de datos vuelva a su estado anterior al error. Por lo tanto, le recomendamos que cree una instantánea de base de datos de la instancia de base de datos siguiendo las instrucciones de [Creación de una instantánea de base de datos para una instancia de base de datos single-AZ para Amazon RDS](USER_CreateSnapshot.md). La instantánea contendrá todos los espacios de tabla importados, por lo que si se produce un error en la importación, no tendrá que repetir el proceso de copia de seguridad e importación.   
Si la instancia de base de datos de destino tiene activadas las copias de seguridad automáticas y Amazon RDS no detecta que se haya iniciado una instantánea válida antes de importar los metadatos, RDS intentará crear una instantánea. En función de la actividad de la instancia, esta instantánea puede o no funcionar correctamente. Si no se detecta una instantánea válida o no se puede iniciar una instantánea, la importación de metadatos se cerrará con errores.

**Importar los espacios de tabla en la instancia de base de datos de destino**

1. Inicie un cliente de Oracle SQL e inicie sesión como usuario maestro en su instancia de base de datos de destino de RDS para Oracle.

1. Ejecute el procedimiento `rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces` y especifique los espacios de tabla que se van a importar y el directorio que contiene las copias de seguridad.

   En el siguiente ejemplo se importan los espacios de tabla *TBS1*, *TBS2* y *TBS3* del directorio *DATA\$1PUMP\$1DIR*.

   ```
   BEGIN
     :task_id:=rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces('TBS1,TBS2,TBS3','DATA_PUMP_DIR');
   END;
   /
   PRINT task_id
   ```

1. (Opcional) Supervise el progreso consultando la tabla `rdsadmin.rds_xtts_operation_info`. La columna `xtts_operation_state` muestra el valor `EXECUTING`, `COMPLETED` o `FAILED`.

   ```
   SELECT * FROM rdsadmin.rds_xtts_operation_info;
   ```
**nota**  
Para operaciones de larga duración, también puede consultar `V$SESSION_LONGOPS`, `V$RMAN_STATUS` y `V$RMAN_OUTPUT`.

1. Para ver el registro de la importación finalizada, utilice el ID de la tarea del paso anterior.

   ```
   SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||'&task_id'||'.log'));
   ```

   Asegúrese de que se haya completado correctamente la importación antes de continuar con el siguiente paso.

1. Realice una instantánea manual de la base de datos siguiendo las instrucciones de [Creación de una instantánea de base de datos para una instancia de base de datos single-AZ para Amazon RDS](USER_CreateSnapshot.md).

### Paso 5: Importar los metadatos del espacio de tabla en la instancia de base de datos de destino
<a name="oracle-migrating-tts.transport.import-dmp"></a>

En este paso, se importan los metadatos del espacio de tabla transportables a la instancia de base de datos de RDS para Oracle mediante el procedimiento `rdsadmin.rdsadmin_transport_util.import_xtts_metadata`. Para obtener información sobre la sintaxis y la semántica de este procedimiento, consulte [Importación de metadatos de espacios de tabla transportables a su instancia de base de datos](rdsadmin_transport_util_import_xtts_metadata.md). Durante la operación, el estado de la importación se muestra en la tabla `rdsadmin.rds_xtts_operation_info`.

**importante**  
Antes de importar los metadatos, le recomendamos encarecidamente que confirme la creación correcta de la instantánea de base de datos después de importar los espacios de tabla. Si se produce un error en el paso de importación, restaure la instancia de base de datos, corrija los errores de importación y, a continuación, vuelva a intentar la importación.

**Importar los metadatos de Data Pump a la instancia de base de datos de RDS para Oracle**

1. Inicie el cliente de Oracle SQL e inicie sesión como usuario maestro en su instancia de base de datos de destino.

1. Cree los usuarios que posean esquemas en los espacios de tabla transportados, si estos usuarios aún no existen.

   ```
   CREATE USER tbs_owner IDENTIFIED BY password;
   ```

1. Importe los metadatos, especificando el nombre del archivo de volcado y su ubicación en el directorio.

   ```
   BEGIN
     rdsadmin.rdsadmin_transport_util.import_xtts_metadata('xttdump.dmp','DATA_PUMP_DIR');
   END;
   /
   ```

1. (Opcional) Consulte la tabla del historial de espacios de tabla transportables para ver el estado de la importación de los metadatos.

   ```
   SELECT * FROM rdsadmin.rds_xtts_operation_info;
   ```

   Cuando finalice la operación, los espacios de tabla estarán en modo de solo lectura.

1. (Opcional) Vea el archivo de registro.

   En el ejemplo siguiente se muestra el contenido del directorio BDUMP y, a continuación, se consulta el registro de importación.

   ```
   SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => 'BDUMP'));
   
   SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file(
     p_directory => 'BDUMP',
     p_filename => 'rds-xtts-import_xtts_metadata-2023-05-22.01-52-35.560858000.log'));
   ```

## Fase 5: Validar los espacios de tabla transportados
<a name="oracle-migrating-tts.validate"></a>

En este paso opcional, se validan los espacios de tabla transportados mediante el procedimiento `rdsadmin.rdsadmin_rman_util.validate_tablespace` y, a continuación, los espacios de tabla se establecen en modo de lectura/escritura.

**Para validar los datos transportados**

1. Inicie SQL\$1Plus o SQL Developer e inicie sesión como usuario maestro en su instancia de base de datos de destino.

1. Valide los espacios de tabla mediante el procedimiento `rdsadmin.rdsadmin_rman_util.validate_tablespace`.

   ```
   SET SERVEROUTPUT ON
   BEGIN
       rdsadmin.rdsadmin_rman_util.validate_tablespace(
           p_tablespace_name     => 'TBS1',
           p_validation_type     => 'PHYSICAL+LOGICAL',
           p_rman_to_dbms_output => TRUE);
       rdsadmin.rdsadmin_rman_util.validate_tablespace(
           p_tablespace_name     => 'TBS2',
           p_validation_type     => 'PHYSICAL+LOGICAL',
           p_rman_to_dbms_output => TRUE);
       rdsadmin.rdsadmin_rman_util.validate_tablespace(
           p_tablespace_name     => 'TBS3',
           p_validation_type     => 'PHYSICAL+LOGICAL',
           p_rman_to_dbms_output => TRUE);
   END;
   /
   ```

1. Coloque los espacios de tabla en modo de lectura/escritura.

   ```
   ALTER TABLESPACE TBS1 READ WRITE;
   ALTER TABLESPACE TBS2 READ WRITE;
   ALTER TABLESPACE TBS3 READ WRITE;
   ```

## Fase 6: Limpiar los archivos sobrantes
<a name="oracle-migrating-tts.cleanup"></a>

En este paso opcional, se eliminan los archivos innecesarios. Utilice el procedimiento `rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files` para enumerar los archivos de datos que quedaron huérfanos tras la importación de un espacio de tabla y, a continuación, utilice el procedimiento `rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files` para eliminarlos. Para obtener información sobre la sintaxis y la semántica de estos procedimientos, consulte [Enumeración de los archivos huérfanos después de importar un espacio de tabla](rdsadmin_transport_util_list_xtts_orphan_files.md) y [Eliminación de los archivos de datos huérfanos después de importar un espacio de tabla](rdsadmin_transport_util_cleanup_incomplete_xtts_import.md).

**Para limpiar los archivos sobrantes**

1. Elimine las copias de seguridad antiguas en *DATA\$1PUMP\$1DIR* de la siguiente manera:

   1. Para enumerar los archivos de copia de seguridad, ejecute `rdsadmin.rdsadmin_file_util.listdir`.

      ```
      SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => 'DATA_PUMP_DIR'));
      ```

   1. Para eliminar las copias de seguridad una por una, llame a `UTL_FILE.FREMOVE`.

      ```
      EXEC UTL_FILE.FREMOVE ('DATA_PUMP_DIR', 'backup_filename');
      ```

1. Si ha importado espacios de tabla pero no ha importado metadatos para estos espacios de tabla, puede eliminar los archivos de datos huérfanos de la siguiente manera:

   1. Haga una lista de los archivos de datos huérfanos que debe eliminar. En el siguiente ejemplo se ejecuta el procedimiento `rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files`.

      ```
      SQL> SELECT * FROM TABLE(rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files);
      
      FILENAME       FILESIZE
      -------------- ---------
      datafile_7.dbf 104865792
      datafile_8.dbf 104865792
      ```

   1. Para eliminar los archivos huérfanos, ejecute el procedimiento `rdsadmin.rdsadmin_transport_util.cleanup_incomplete_xtts_import`.

      ```
      BEGIN
        rdsadmin.rdsadmin_transport_util.cleanup_incomplete_xtts_import('DATA_PUMP_DIR');
      END;
      /
      ```

      La operación de limpieza genera un archivo de registro que utiliza el formato de nombre `rds-xtts-delete_xtts_orphaned_files-YYYY-MM-DD.HH24-MI-SS.FF.log` del directorio `BDUMP`.

   1. Lea el archivo de registro generado en el paso anterior. En el siguiente ejemplo se lee el registro `rds-xtts-delete_xtts_orphaned_files-2023-06-01.09-33-11.868894000.log`.

      ```
      SELECT * 
      FROM TABLE(rdsadmin.rds_file_util.read_text_file(
             p_directory => 'BDUMP',
             p_filename  => 'rds-xtts-delete_xtts_orphaned_files-2023-06-01.09-33-11.868894000.log'));
      
      TEXT
      --------------------------------------------------------------------------------
      orphan transported datafile datafile_7.dbf deleted.
      orphan transported datafile datafile_8.dbf deleted.
      ```

1. Si ha importado espacios de tabla y metadatos para estos espacios de tabla, pero se ha topado con errores de compatibilidad u otros problemas de Oracle Data Pump, limpie los archivos de datos parcialmente transportados de la siguiente manera:

   1. Enumere los espacios de tabla que contienen archivos de datos parcialmente transportados mediante consultas `DBA_TABLESPACES`.

      ```
      SQL> SELECT TABLESPACE_NAME FROM DBA_TABLESPACES WHERE PLUGGED_IN='YES';
      
      TABLESPACE_NAME
      --------------------------------------------------------------------------------
      TBS_3
      ```

   1. Elimine los espacios de tabla y los archivos de datos parcialmente transportados.

      ```
      DROP TABLESPACE TBS_3 INCLUDING CONTENTS AND DATAFILES;
      ```