En esta página, se enumeran los errores conocidos y los pasos recomendados para solucionar problemas en los siguientes casos:
Errores del trabajo de migración
El proceso del trabajo de migración puede generar 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 que se corrigen estos errores.
- Algunos errores no se pueden recuperar, como los errores en la replicación de datos. Debes reiniciar el trabajo de migración después de que se corrijan estos errores.
Cuando se produce un error, el estado del trabajo de migración cambia a Failed y el subestado refleja el último estado antes de la falla.
Para solucionar un error, navega hasta el trabajo de migración con errores para ver el error 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 el trabajo de migración específico.
En la siguiente tabla, puedes encontrar algunos ejemplos de problemas y cómo se pueden resolver:
| Síntoma | Causas posibles | Solución |
|---|---|---|
Mensaje de error: Database Migration Service 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 el host de bastión no está aceptando conexiones. | Verifica la configuración del túnel SSH de reenvío en el perfil de conexión de origen y la configuración del servidor de túnel SSH, y vuelve a intentarlo. |
Mensaje de error: Database Migration Service can't connect to the database
o
Database Migration Service private connectivity error, cannot connect to the database.
|
Database Migration Service no pudo establecer la conectividad con la base de datos de Oracle de origen. |
Verifica que puedas acceder a la base de datos de origen desde tu proyecto. Verifica la configuración relacionada con el método de configuración de conectividad de origen. Si se incluye un código de error específico de Oracle, por ejemplo
|
Mensaje de error: Archiving mode is not ARCHIVELOG. |
Tu base de datos de origen no se ejecuta en el modo ARCHIVELOG. |
Configura tu base de datos de origen para usar el modo ARCHIVELOG.
Para obtener más información, consulta
Configura tu base de datos de Oracle de origen.
|
Mensaje de error: Supplemental logging ("ALL COLUMN LOGGING") isn't turned
on for the tables listed below.
|
Tu base de datos de origen no tiene habilitados los datos de registros complementarios. | Habilita los datos de registros complementarios y establece su modo en ALL.
Para obtener más información, consulta
Configura tu base de datos de Oracle de origen.
|
Mensaje de error: No Archive Log Files were found in the source. |
Database Migration Service solo lee los registros de archivo cerrados, y no se encontraron registros en la base de datos de origen. |
Si la base de datos no tiene operaciones de escritura activas, es posible que debas
realizar al menos una operación |
Mensaje de error: We're missing the necessary permissions to read
from the source.
|
La cuenta de usuario de migración en tu base de datos de origen no tiene los permisos necesarios. |
Database Migration Service se conecta a tu origen como la cuenta de usuario que
configuras en el perfil de conexión de origen. Esa cuenta necesita un conjunto específico
de permisos (por ejemplo Asegúrate de que la cuenta de usuario de migración tenga los privilegios necesarios. Para obtener más información, consulta Configura tu 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 que puedas acceder a la base de datos de destino desde tu proyecto. Verifica la configuración relacionada con el método de configuración de conectividad de destino. |
Mensaje de error: The following tables don't exist in the destination database: {table_names}. |
Las tablas enumeradas que intentas migrar no existen en la base de datos de destino. | Database Migration Service crea la tabla y las definiciones necesarias cuando conviertes tu esquema de origen. |
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 en el mensaje de error existen en la base de datos de destino, pero no tienen claves primarias. |
Los espacios de trabajo de conversión de Database Migration Service agregan automáticamente claves primarias para las tablas que no las tienen cuando conviertes el esquema. Si usas espacios de trabajo de conversión heredados, debes crear las claves primarias de forma manual en tu destino. Para obtener más información, consulta Espacios de trabajo de conversión heredados. |
Advertencia: The following tables have foreign keys: {table_names}. |
Las tablas que se enumeran en el mensaje de error existen en la base de datos de destino, pero tienen claves externas. |
Database Migration Service no replica datos de forma transaccional, por lo que las tablas se pueden migrar fuera de orden. Si hay claves externas, y se migra una tabla secundaria que usa una clave externa antes que su superior, es posible que encuentres errores de replicación. Para evitar estos problemas de integridad de los datos, omite las claves externas con la |
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 un período prolongado, lo que provoca la pérdida de la posición de registro. | Un trabajo de migración no debe pausarse por más tiempo que el período de retención de registros (o cerca de él). Si se pierde la posición de registro, debes volver a crear el trabajo de migración. |
Mensaje de error: ORA-00942: table or view does not exist. |
Este error puede ocurrir como resultado del almacenamiento en caché en el servidor de Oracle. | Vuelve a crear el usuario de la base de datos para corregir el problema de almacenamiento en caché. |
| El trabajo 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 realiza el volcado completo de algunas de las tablas, o una o más de las tablas no pueden finalizar el volcado completo debido a errores. |
|
Problemas de conectividad
En esta sección, se enumeran y describen los pasos para solucionar posibles problemas de conectividad de red.
No se puede conectar a la base de datos de destino: EOF
Cuando se ejecuta una prueba de conectividad, se muestra el mensaje de error [DATABASE] unable to connect to the destination database: EOF.
Causa posible: El adjunto de servicio está configurado de forma incorrecta.
Solución: Asegúrate de que enable_proxy_protocol esté configurado como
false en el
archivo de configuración de Terraform del adjunto de servicio.
El protocolo de proxy solo es compatible con servidores HTTP, como NGINX y Apache.
Cuando se usa gcloud para crear la configuración de Private Service Connect, el protocolo de proxy está inhabilitado de forma predeterminada.
Se agotó el tiempo de espera de la conexión o se rechazó la conexión
La ejecución de la prueba de conectividad falla o se agota el tiempo de espera. Lo más probable es que esto se deba a un enrutamiento mal configurado dentro de la configuración de Private Service Connect. Puede haber varias razones para este problema.
Causa posible: Falta una regla de firewall que permita que el rango CIDR de NAT de Private Service Connect acceda a la subred de Private Service Connect en la que se encuentra el bastión, específicamente la interfaz nic0 de la VM del bastión.
Solución: Asegúrate de que tu política de la organización no restrinja las reglas de firewall internas, como la regla de firewall psc_sp_in_fw definida en
el ejemplo de secuencia de comandos de Terraform para
configurar la conectividad de IP privada de destino para instancias de AlloyDB para PostgreSQL no habilitadas para PSC.
Causa posible: El proxy está inactivo. No hay un objeto de escucha en el puerto proporcionado y, por lo tanto, la conexión se bloquea.
Solución: Puedes intentar establecer una conexión SSH con la VM del bastión y buscar el proxy con el siguiente comando:
netstat -tunalp | grep PORT
Analiza las respuestas al comando:
Si obtienes una respuesta vacía, el proxy está inactivo. Intenta ejecutar los siguientes comandos:
sudo su; cd /y verifica si el servidor Dante está instalado ejecutandosudo dpkg -s dante-server:Si el proxy está instalado, recibirás el siguiente mensaje:
Status: install ok installedSi el proxy no está instalado, el problema probable es que falta un router. Agrega un router y verifica si puedes descargar el proxy ejecutando
apt-get install dante-server.
Si el proxy se ejecuta y escucha en el puerto proporcionado, intenta abrir una conexión a él haciendo lo siguiente:
Instala el cliente de PostgreSQL:
sudo apt-get install postgresql-client.Conéctate a la base de datos de PostgreSQL:
psql -h 127.0.0.1 -p PORT -U DBUSERNAME -W(se te pedirá que ingreses la contraseña).Reemplaza lo siguiente:
PORT: el número de puerto de la base de datos.DBUSERNAME: el nombre de usuario que se usa para conectarse a la base de datos de PostgreSQL.
Instala el cliente de telnet:
sudo apt-get install telnetConéctate al cliente de telnet:
telnet 127.0.0.1 PORTReemplaza
PORTpor el número de puerto de la base de datos.
Según los resultados de los comandos:
Si los comandos no pueden abrir una conexión, intenta consultar los registros del proxy para ubicar la causa raíz. La causa raíz puede variar según la configuración de la instancia de AlloyDB para PostgreSQL.
Si la conexión se abre con telnet, pero se bloquea en el cliente, el problema probable es el enrutamiento de la dirección IP del bastión. En tu VM, escribe
ip routeen la terminal. Comprueba si puedes ubicar una regla de enrutamiento que enrute las conexiones a la dirección IP privada de la instancia de AlloyDB para PostgreSQL con lanic(nic1, la dirección IP deDB_SUBNETWORK_GATEWAY).
Causa posible: El adjunto de servicio no acepta la conexión de extremo que proviene de Database Migration Service. El adjunto de servicio contiene una lista de proyectos que se aceptan, y el proyecto de Database Migration Service no está incluido en la lista.
Solución: Para resolver el problema, prueba una de las siguientes opciones:
En la Google Cloud consola, ve a Private Service Connect.
En la pestaña Servicios publicados, acepta la conexión de Database Migration Service para tu adjunto de servicio (si está pendiente).
Agrega el proyecto solicitante a los proyectos permitidos en el adjunto de servicio (si se rechaza).
Para obtener más información sobre cómo agregar un proyecto permitido en Terraform, consulta la documentación de Terraform.
Para obtener más información sobre cómo agregar un proyecto incluido en la lista de entidades permitidas en
gcloud, consulta la documentación de referencia de Google Cloud CLI Cloud.
Si esto no resuelve el problema, vuelve a crear el perfil de conexión.
Borra el perfil de conexión asociado con la conectividad de Private Service Connect y vuelve a crearlo.
Soluciona problemas de Oracle SCAN
En esta sección, se describen los posibles problemas que puedes tener cuando migras desde fuentes de Oracle Real Application Clusters (RAC) con la función Single Client Access Name (SCAN).
No se puede establecer la conectividad con una base de datos de Oracle SCAN
La ejecución de la prueba de conectividad falla o se agota el tiempo de espera.
Causa posible: Es posible que intentes establecer la conectividad directamente con tu base de datos de origen de Oracle SCAN. Database Migration Service no admite la conectividad directa a bases de datos con la función SCAN en entornos de Oracle RAC.
Solución: Para resolver el problema, prueba una de las siguientes opciones:
Conéctate directamente a uno de los nodos.
Crea una configuración de conectividad privada con una solución de proxy inverso, como HAProxy.