Migración mediante espacios de tabla transportables de Oracle
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.
Para ver publicaciones de blog que explican cómo transportar espacios de tabla, consulte Migrate Oracle Databases to AWS using transportable tablespace
Temas
- Descripción general de los espacios de tabla transportables de Oracle
- Fase 1: Configurar el host de origen
- Fase 2: Preparar la copia de seguridad completa del espacio de tabla
- Fase 3: Realizar y transferir copias de seguridad incrementales
- Fase 4: Transportar los espacios de tabla
- Fase 5: Validar los espacios de tabla transportados
- Fase 6: Limpiar los archivos sobrantes
Descripción general de los espacios de tabla transportables de Oracle
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.
Temas
Ventajas y desventajas de los espacios de tabla transportables
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.
-
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
Limitaciones de los espacios de tabla transportables
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
-
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
ySYSAUX
. -
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
. -
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
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:
-
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)
(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.
-
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 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.
-
-
Si tiene previsto transferir archivos mediante Amazon EFS, asegúrese de haber configurado EFS según las instrucciones de Integración de Amazon EFS.
-
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 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
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
-
Inicie sesión en su host de origen como propietario de su inicio de Oracle.
-
Asegúrese de que sus variables de entorno
ORACLE_HOME
yORACLE_SID
apunten hacia la base de datos de origen. -
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');
-
Configure la utilidad de espacio de tabla transportable tal como se describe en la nota de soporte de Oracle 2471245.1
. La configuración incluye la edición del archivo
xtt.properties
en el host de origen. El siguiente archivoxtt.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)
(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
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.
Temas
Paso 1: realice copias de seguridad de los espacios de tabla en el host de origen
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
-
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
ytbs3
en modo de lectura/escritura.ALTER TABLESPACE tbs1 READ WRITE; ALTER TABLESPACE tbs2 READ WRITE; ALTER TABLESPACE tbs3 READ WRITE;
-
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
cdlocation_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
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. Seleccione 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 archivores.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. -
Si necesita organizar sus copias de seguridad en un bucket de Amazon S3, siga estos pasos.
Paso 2.2: Cargar las copias de seguridad en el bucket de Amazon S3
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 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
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
-
Inicie SQL*Plus u Oracle SQL Developer e inicie sesión en la instancia de base de datos de destino de RDS para Oracle.
-
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
en el directorioamzn-s3-demo-bucket
.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 datosVARCHAR2
. 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.
Paso 3: importe los espacios de tabla en la instancia de base de datos de destino
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.
Importar los espacios de tabla en la instancia de base de datos de destino
-
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.
-
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
yTBS3
del directorioDATA_PUMP_DIR
. La plataforma de origen es AIX-Based Systems (64 bits), con el id. de plataforma6
. Puede encontrar los id. de plataforma consultandoV$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 -
(Opcional) Supervise el progreso consultando la tabla
rdsadmin.rds_xtts_operation_info
. La columnaxtts_operation_state
muestra el valorEXECUTING
,COMPLETED
oFAILED
.SELECT * FROM rdsadmin.rds_xtts_operation_info;
nota
Para operaciones de larga duración, también puede consultar
V$SESSION_LONGOPS
,V$RMAN_STATUS
yV$RMAN_OUTPUT
. -
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
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, excepto que el paso de importación es opcional.
Fase 4: Transportar los espacios de tabla
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.
Temas
- Paso 1: realice una copia de seguridad de los espacios de tabla de solo lectura
- Paso 2: exporte los metadatos del espacio de tabla en el host de origen
- 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
- Paso 4: Importar los espacios de tabla en la instancia de base de datos de destino
- Paso 5: Importar los metadatos del espacio de tabla en la instancia de base de datos de destino
Paso 1: realice una copia de seguridad de los espacios de tabla de solo lectura
Este paso es idéntico al Paso 1: realice copias de seguridad de los espacios de tabla en el host de origen, 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
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_PUMP_DIR
.
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_PUMP_DIR
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.
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
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
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 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
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.
Paso 4: Importar los espacios de tabla en la instancia de base de datos de destino
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.
importante
Tras completar la importación final del espacio de tabla, el siguiente paso es importar los metadatos de Oracle Data Pump. 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. 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
-
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.
-
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
yTBS3
del directorioDATA_PUMP_DIR
.BEGIN :task_id:=rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces('
TBS1,TBS2,TBS3
','DATA_PUMP_DIR
'); END; / PRINT task_id -
(Opcional) Supervise el progreso consultando la tabla
rdsadmin.rds_xtts_operation_info
. La columnaxtts_operation_state
muestra el valorEXECUTING
,COMPLETED
oFAILED
.SELECT * FROM rdsadmin.rds_xtts_operation_info;
nota
Para operaciones de larga duración, también puede consultar
V$SESSION_LONGOPS
,V$RMAN_STATUS
yV$RMAN_OUTPUT
. -
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.
-
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.
Paso 5: Importar los metadatos del espacio de tabla en la instancia de base de datos de destino
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. 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
-
Inicie el cliente de Oracle SQL e inicie sesión como usuario maestro en su instancia de base de datos de destino.
-
Cree los usuarios que posean esquemas en los espacios de tabla transportados, si estos usuarios aún no existen.
CREATE USER
tbs_owner
IDENTIFIED BYpassword
; -
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; / -
(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.
-
(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
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
-
Inicie SQL*Plus o SQL Developer e inicie sesión como usuario maestro en su instancia de base de datos de destino.
-
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; / -
Coloque los espacios de tabla en modo de lectura/escritura.
ALTER TABLESPACE
TBS1
READ WRITE; ALTER TABLESPACETBS2
READ WRITE; ALTER TABLESPACETBS3
READ WRITE;
Fase 6: Limpiar los archivos sobrantes
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 y Eliminación de los archivos de datos huérfanos después de importar un espacio de tabla.
Para limpiar los archivos sobrantes
-
Elimine las copias de seguridad antiguas en
DATA_PUMP_DIR
de la siguiente manera:-
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
')); -
Para eliminar las copias de seguridad una por una, llame a
UTL_FILE.FREMOVE
.EXEC UTL_FILE.FREMOVE ('
DATA_PUMP_DIR
', 'backup_filename
');
-
-
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:
-
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
-
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-
del directorioYYYY-MM-DD.HH24-MI-SS.FF
.logBDUMP
. -
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
.logSELECT * 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.
-
-
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:
-
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
-
Elimine los espacios de tabla y los archivos de datos parcialmente transportados.
DROP TABLESPACE
TBS_3
INCLUDING CONTENTS AND DATAFILES;
-