Cómo diagnosticar problemas en las migraciones de Oracle a PostgreSQL

Es posible que el proceso de trabajo de migración genere errores durante el tiempo de ejecución.

  • Algunos errores, como una contraseña incorrecta en la base de datos de origen, se pueden recuperar. El trabajo de migración se reanuda automáticamente después de corregir estos errores.
  • Algunos errores son irrecuperables, como los errores en la replicación de datos. Debes reiniciar el trabajo de migración después de corregir estos errores.

Cuando se produce un error, el estado del trabajo de migración cambia a Failed y el estado secundario refleja el último estado antes de la falla. Para solucionar un error, navega al trabajo de migración que falló para verlo y sigue los pasos que se indican en el mensaje de error. Para ver más detalles sobre el error, navega a Cloud Monitoring con el vínculo del trabajo de migración. Los registros se filtran según la tarea de migración específica.

En la siguiente tabla, encontrarás algunos ejemplos de problemas y cómo resolverlos:

Síntoma Causas posibles Solución
Mensaje de error: Cloud DMS can't set up a tunnel to be connected to the bastion host. Database Migration Service no pudo acceder al host de bastión o este no acepta conexiones. Verifica la configuración del túnel SSH de reenvío en el perfil de conexión y la configuración del host de bastión, y vuelve a intentarlo.
Mensaje de error: Cloud DMS can't connect to the database o Cloud DMS private connectivity error, cannot connect to the database. Database Migration Service no pudo establecer conectividad con la base de datos de Oracle de origen.

Verifica que puedas acceder a la base de datos de Oracle de origen desde tu proyecto y asegúrate de configurar correctamente la configuración de conectividad en el perfil de conexión de origen.

Si se incluye un código de error específico de Oracle, por ejemplo, ORA-12170: TNS:Connect timeout occurred, consulta la documentación de Oracle para obtener más información.

Mensaje de error: Archiving mode is not ARCHIVELOG. La fuente no se configuró correctamente. Configura la fuente correctamente. Para obtener más información, consulta Configura la base de datos de Oracle de origen.
Mensaje de error: Supplemental logging ("ALL COLUMN LOGGING") isn't turned on for the tables listed below. La fuente no se configuró correctamente. Configura la fuente correctamente. Para obtener más información, consulta Configura la base de datos de Oracle de origen.
Mensaje de error: No Archive Log Files were found in the source. Database Migration Service solo lee registros de archivo cerrados y no se encontraron registros en la base de datos de origen.
  1. Ejecuta el siguiente comando en la base de datos de origen para cerrar el archivo de registro actual: ALTER SYSTEM SWITCH LOGFILE.
  2. Vuelve a buscar los registros.

Si la base de datos no tiene ninguna operación de escritura activa, es posible que debas realizar al menos una operación INSERT para activar la creación del registro.

Mensaje de error: We're missing the necessary permissions to read from the source. La fuente no se configuró correctamente. Configura la fuente correctamente. Para obtener más información, consulta Configura la base de datos de Oracle de origen.
Mensaje de error: Unable to connect to the destination database. Se produjo un problema al conectarse a la base de datos de destino. Verifica la configuración en el perfil de conexión de PostgreSQL de destino. Para obtener información sobre la conectividad privada, consulta Cómo solucionar problemas de Private Service Connect.
Mensaje de error: database {database_name} does not exist. Database Migration Service espera que el nombre de la base de datos de destino y el nombre de usuario coincidan. Asegúrate de que el nombre de usuario indicado en el perfil de conexión de destino y el nombre de la base de datos de destino coincidan. Vuelve a crear la base de datos de destino o crea un nombre de usuario diferente que coincida con la base de datos de destino. Para obtener más información, consulta Configura tu base de datos de destino de Cloud SQL para PostgreSQL.

Asegúrate de ejecutar Ora2pg para crear el esquema en la base de datos de destino.

Mensaje de error: The following tables don't exist in the destination database: {table_names} Las tablas que intentas migrar no existen en la base de datos de destino. Asegúrate de ejecutar Ora2pg para crear el esquema en la base de datos de destino o modificar la configuración del trabajo de migración.
Mensaje de error: password authentication failed for user {username}. El nombre de usuario o la contraseña de la base de datos de destino están mal configurados. Asegúrate de que el perfil de conexión de PostgreSQL de destino esté configurado correctamente con el nombre de usuario y la contraseña correctos.
Mensaje de error: The following tables in the destination database don't have primary keys: {table_names}. Las tablas que se enumeran existen en la base de datos de destino, pero les faltan claves primarias. Asegúrate de ejecutar Ora2pg para crear el esquema en la base de datos de destino. Si a la tabla de origen le falta una clave primaria, crea la clave manualmente en la base de datos de destino.
Advertencia: The following tables have foreign keys: {table_names}. Las tablas que se enumeran existen en la base de datos de destino, pero tienen claves externas. Database Migration Service no replica los datos de forma transaccional, por lo que es posible que las tablas se migren fuera de orden. Si hay claves externas y una tabla secundaria que usa una clave externa se migra antes que su tabla superior, es posible que se produzcan errores de replicación.

Para evitar estos problemas de integridad de los datos, omite las claves externas con la opción REPLICATION para el usuario de migración. Para obtener más información, consulta Cómo configurar tu destino.

Mensaje de error: Unable to resume replication as log position is lost. Este error puede ocurrir cuando el proceso de replicación se pausa durante mucho tiempo, lo que provoca la pérdida de la posición del registro. Un trabajo de migración no debe detenerse durante períodos cercanos al período de retención de registros. Cuando se produzca el error, vuelve a crear el trabajo de migración.
Mensaje de error: ORA-00942: table or view does not exist. Este error puede ocurrir como resultado de la caché en el servidor de Oracle. Vuelve a crear el usuario de la base de datos para solucionar el problema de almacenamiento en caché.
La tarea de migración permanece en la fase de volcado completo y no avanza a la fase de captura de datos modificados (CDC). Database Migration Service aún está realizando un volcado completo de algunas de las tablas, o bien una o más de ellas no pueden terminar el volcado completo debido a errores.
  • Verifica los errores de la tarea de migración y corrige los errores que se aplican a las tablas o quita las tablas asociadas de la tarea.
  • Verifica los registros de Database Migration Service para ver si hay una actividad de volcado completa en curso y espera a que finalice.