¿Qué objetos puedo migrar mediante una tarea de AWS DMS?

7 minutos de lectura
0

Tengo una tarea de AWS Database Migration Service (AWS DMS) que no migra todos los objetos de esquema de base de datos. ¿Qué objetos migra una tarea de AWS DMS y cómo puedo migrar los objetos restantes?

Descripción corta

Si su tarea de AWS DMS no migra un objeto, puede que se deba a que las tareas de AWS DMS no migran este tipo de objeto. AWS DMS crea varios objetos, como tablas y claves principales, pero no crea objetos que no sean necesarios para migrar datos desde el origen. Algunos ejemplos de objetos que AWS DMS no crea incluyen índices secundarios, valores predeterminados de datos y restricciones de clave no principales.

Para obtener más información sobre los objetos que crea AWS DMS, consulte Troubleshooting migration tasks in AWS Database Migration Service (Solución de problemas de las tareas de migración en AWS Database Migration Service).

Para migrar los objetos restantes que AWS DMS no migra, utilice uno de estos métodos:

  • Para una migración homogénea (entre dos bases de datos del mismo tipo de motor), migre el esquema utilizando las herramientas nativas del motor a fin de exportar e importar el propio esquema, sin ningún dato.
  • Para la migración heterogénea (entre dos bases de datos que utilizan diferentes tipos de motores), utilice la Herramienta de conversión de esquemas de AWS (AWS SCT) a fin de generar un esquema de destino completo.

Resolución

Comprobar si un objeto se migra mediante una tarea de AWS DMS

En primer lugar, utilice estas pautas para comprobar si un objeto se migra mediante una tarea de AWS DMS:

  • Una tarea de AWS DMS crea la tabla en el destino, junto con la restricción de clave principal y el índice.
  • Si no existe ninguna clave principal, la tarea crea la clave única (si existe en la tabla de origen).
  • Si existen restricciones NOT NULL en la tabla de origen, la tarea de AWS DMS crea las restricciones NOT NULL en el destino. Esto no incluye columnas de objetos grandes (LOB). Si AWS DMS crea las tablas de destino, establece las columnas LOB como anulables, de forma predeterminada. Para obtener más información, consulte Migración de objetos binarios grandes (LOB).
  • Si la tabla de origen tiene una columna de incremento automático, la propiedad de incremento automático no se migra.
  • La tarea de AWS DMS no replica otras propiedades específicas de tablas, como restricciones de clave externa, comprobaciones, valores predeterminados de datos y comentarios.
  • La tarea de AWS DMS no migra los objetos de base de datos, como índices secundarios, vistas, procedimientos, funciones, paquetes y disparadores. Migre estos objetos por separado.

Migrar objetos con las herramientas nativas del motor (migración homogénea)

Para una migración de base de datos homogénea, utilice sus herramientas nativas a fin de realizar una exportación de los metadatos del esquema, sin los datos. Este volcado de solo metadatos se importa a la base de datos de destino para crear los objetos de la base de datos, sin ningún dato. A continuación, ejecute la tarea de AWS DMS con la configuración de tareas TargetTablePrepMode establecida en TRUNCATE_BEFORE_LOAD. Esto significa que la tarea no descarta ni vuelve a crear las tablas en el destino.

Oracle

Para migrar objetos con bases de datos Oracle, utilice la utilidad de bombeo de datos de exportación (expdp) para realizar un volcado solo de metadatos. Con el parámetro CONTENT=METADATA_ONLY, la utilidad de bombeo de datos descarga solo las definiciones de objetos de base de datos. La utilidad no descarga ningún dato de fila de tabla.

1.    Para realizar un volcado solo de metadatos, cree un archivo de parámetros para exportar el esquema:

$> cat export_sample_user.par 
userid=DMS_USER/password@SOURCE_DB
directory=DATA_PUMP_DIR
logfile=export_dms_sample_user_metadata.log
dumpfile=export_dms_sample_user_metadata_%U.dmp
schemas=DMS_SAMPLE
CONTENT=METADATA_ONLY

2    Ejecute la exportación con la utilidad expdp:

expdp parfile=export_sample_user.par

3.    Después de crear los archivos de volcado en el DATA_PUMP_DIR de la base de datos de origen, cópielos en el DATA_PUMP_DIR de la base de datos Oracle de destino. Para crear los objetos en la base de datos Oracle de destino, ejecute la utilidad de bombeo de datos de importación (impdp) para importar los metadatos:

impdp admin@TARGET_DB directory=DATA_PUMP_DIR logfile=import.log dumpfile=export_dms_sample_user_metadata_%U.dmp

SQL Server

Para migrar objetos mediante SQL Server, genere un script SQL para el esquema de la base de datos:

  1. Inicie sesión en la base de datos de origen mediante SQL Server Management Studio (SSMS).
  2. Haga clic con el botón derecho en la base de datos para la que desea generar scripts, elija Tasks (Tareas) y, a continuación, elija Generate Scripts (Generar scripts).
  3. En Select specific database objects (Seleccionar objetos de base de datos específicos), seleccione las tablas, las vistas y cualquier otro objeto que desee usar y, a continuación, haga clic en Next (Siguiente).
  4. Seleccione el botón Advanced (Avanzado) y, a continuación, seleccione los tipos de datos para los que desea crear un script.
  5. Si desea obtener el SQL de los índices secundarios, defina Script indexes (Índices de scripts) como true (verdadero). Los índices de scripts están configurados como false (falso) de forma predeterminada.
  6. Elija cómo desea guardar los scripts. Por ejemplo, cree un archivo SQL en el disco, copie el SQL en una nueva ventana de consulta o copie los scripts en el portapapeles.
  7. Elija Next (Siguiente).
  8. Vuelva a seleccionar Next (Siguiente) y, a continuación, Finish (Finalizar).

Para crear objetos en la base de datos de destino, ejecute el script SQL que se genera después de completar estos pasos.

MySQL

Para migrar objetos con MySQL, utilice la utilidad mysqldump a fin de generar un archivo de volcado que contenga solo los metadatos del esquema. La opción --no-data le dice a mysqldump que no vuelque los datos de la tabla, por lo que los resultados del archivo de volcado solo contienen instrucciones para crear las tablas. Para un volcado de solo definición, agregue las opciones --routines y --events a fin de incluir también las definiciones de rutinas y eventos almacenadas.

Ejemplo:

mysqldump --no-data --routines --events -h SOURCE_DB_SERVER_NAME -u DMS_USER -p SOURCE_DB > path_to_dump_file.sql

Para crear los objetos en la base de datos de destino, ejecute el script SQL que se genera después de ejecutar el comando anterior.

PostgreSQL

Para migrar objetos con bases de datos PostgreSQL, utilice la utilidad pg_dump a fin de generar un archivo de volcado que contenga solo los metadatos del esquema. La opción -s o --schema-only vuelca las definiciones de objeto (esquema) y no los datos.

Ejemplo:

pg_dump --host SOURCE_DB_SERVER_NAME --port 5432 --username DMS_USER --schema-only --verbose SOURCE_DB > path_to_dump_file.sql

Para crear los objetos en la base de datos de destino, ejecute el script SQL que se genera después de ejecutar el comando anterior.

Migrar objetos con la Herramienta de conversión de esquemas de AWS (AWS SCT)

Utilice AWS SCT para convertir y migrar los esquemas de bases de datos existentes de un motor de base de datos a otro. O bien, utilice AWS SCT para copiar un esquema de base de datos local existente en una instancia de base de datos de Amazon Relational Database Service (Amazon RDS) que ejecute el mismo motor.

Para convertir el esquema de la base de datos, siga estos pasos:

  1. Creación de reglas de migración en AWS SCT.
  2. Conversión del esquema mediante AWS SCT.
  3. Guardar y aplicar el esquema convertido en AWS SCT.

Para obtener más información, consulte Convertir los esquemas de base de datos con AWS SCT.


Información relacionada

Vista general de AWS DMS

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años