Esta página enumera errores conocidos y pasos recomendados para la solución de problemas para:
Errores en el 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 una vez que se corrigen estos errores.
- Algunos errores son irrecuperables, como los errores en la replicación de datos. Debe reiniciar el trabajo de migración después de que se solucionen 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 del error. Para solucionar un error, navegue hasta el trabajo de migración fallido para ver el error y siga los pasos descritos en el mensaje de error. Para ver más detalles sobre el error, navegue hasta Cloud Monitoring mediante el enlace en el trabajo de migración. Los registros se filtran según el trabajo de migración específico.
En la siguiente tabla, puede encontrar algunos ejemplos de problemas y cómo se pueden resolver:
Síntoma | Posibles causas | Cosas para probar |
---|---|---|
Mensaje de error: Database Migration Service can't set up a tunnel to be connected to the bastion host . | El servicio de migración de bases de datos no pudo acceder al host bastión o el host bastión no acepta conexiones. | Verifique la configuración del túnel SSH de reenvío en el perfil de conexión de origen y la configuración del servidor del túnel SSH , e inténtelo nuevamente. |
Mensaje de error: Database Migration Service can't connect to the database o Database Migration Service private connectivity error, cannot connect to the database . | El servicio de migración de bases de datos no pudo establecer conectividad con la base de datos Oracle de origen. | Verifique que pueda acceder a la base de datos de origen desde su proyecto. Verifique las configuraciones relacionadas con su método de configuración de conectividad de origen . Si se incluye un código de error de Oracle específico, por ejemplo |
Mensaje de error: Archiving mode is not ARCHIVELOG . | Su base de datos de origen no se está ejecutando en el modo ARCHIVELOG . | Configure su base de datos de origen para utilizar el modo ARCHIVELOG . Para obtener más información, consulte Configurar su base de datos Oracle de origen . |
Mensaje de error: Supplemental logging ("ALL COLUMN LOGGING") isn't turned on for the tables listed below . | Su base de datos de origen no tiene habilitados los datos de registro complementarios. | Habilite los datos de registro complementarios y establezca su modo en ALL . Para obtener más información, consulte Configurar su base de datos Oracle de origen . |
Mensaje de error: No Archive Log Files were found in the source . | El servicio de migración de bases de datos solo lee registros de archivos cerrados y no se encontró ningún registro en la base de datos de origen. |
Si la base de datos no tiene ninguna operación de escritura activa, es posible que necesite 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 su base de datos de origen no tiene los permisos necesarios. | El Servicio de migración de bases de datos se conecta a su origen como la cuenta de usuario que configura en el perfil de conexión de origen. Esa cuenta necesita un conjunto específico de permisos (por ejemplo, Asegúrese de que la cuenta de usuario de migración tenga los privilegios necesarios. Para obtener más información, consulte Configurar su base de datos Oracle de origen . |
Mensaje de error: Unable to connect to the destination database . | Hubo un problema al conectarse a la base de datos de destino. | Verifique que pueda acceder a la base de datos de destino desde su proyecto. Verifique las configuraciones relacionadas con el método de configuración de conectividad de su destino . |
Mensaje de error: The following tables don't exist in the destination database: {table_names} . | Las tablas enumeradas que está intentando migrar no existen en la base de datos de destino. | El Servicio de migración de bases de datos crea la tabla y las definiciones necesarias cuando convierte su 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úrese de que el perfil de conexión 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 enumeradas en el mensaje de error existen en la base de datos de destino, pero les faltan claves principales. | Las áreas de trabajo de conversión del Servicio de migración de bases de datos agregan automáticamente claves principales para las tablas que no las tienen al convertir el esquema. Si utiliza espacios de trabajo de conversión heredados, deberá crear las claves principales manualmente en su destino. Para obtener más información, consulte Espacios de trabajo de conversión heredados . |
Advertencia: The following tables have foreign keys: {table_names} . | Las tablas enumeradas en el mensaje de error existen en la base de datos de destino, pero tienen claves externas. | El servicio de migración de bases de datos no replica datos de forma transaccional, por lo que es posible que las tablas se migren desordenadas. Si hay claves externas presentes y una tabla secundaria que usa una clave externa se migra antes que su tabla principal, es posible que se produzcan errores de replicación. Para evitar estos problemas de integridad de los datos, omita las claves externas utilizando la opción |
Mensaje de error: Unable to resume replication as log position is lost . | Este error puede ocurrir cuando el proceso de replicación está en pausa durante un período prolongado, lo que provoca la pérdida de la posición del registro. | Un trabajo de migración no debe pausarse por más tiempo que (o cerca) del período de retención de registros. Si se pierde la posición del registro, deberá volver a crear el trabajo de migración. |
Mensaje de error: ORA-00942: table or view does not exist . | Este error puede producirse como resultado del almacenamiento en caché en el servidor Oracle. | Vuelva a crear el usuario de la base de datos para solucionar el problema del 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). | El servicio de migración de bases de datos todavía está realizando un volcado completo para algunas de las tablas, o una o más tablas no pueden finalizar el volcado completo debido a errores. |
|
Problemas de conectividad
Esta sección enumera y describe los pasos para la solución de posibles problemas de conectividad de red.
No se puede conectar a la base de datos de destino: EOF
Al ejecutar una prueba de conectividad, aparece [DATABASE] unable to connect to the destination database: EOF
.
Posible causa: el archivo adjunto del servicio está configurado incorrectamente.
Cosas que puede intentar: asegúrese de que enable_proxy_protocol
esté configurado en false
en el archivo de configuración de Terraform adjunto al servicio . El protocolo 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á deshabilitado de forma predeterminada.
Tiempo de espera de conexión, conexión rechazada
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 permite que el rango CIDR NAT de Private Service Connect acceda a la subred de Private Service Connect donde se encuentra el bastión, específicamente la interfaz nic0
de la máquina virtual del bastión.
Cosas que puede intentar: asegúrese de que la política de su organización no restrinja las reglas de firewall internas, como la regla de firewall psc_sp_in_fw
definida en el script Terraform de ejemplo para configurar la conectividad de IP privada de destino para instancias de AlloyDB para PostgreSQL no habilitadas para PSC .
Posible causa: el proxy está inactivo. No hay ningún escucha en el puerto suministrado y, por lo tanto, la conexión se bloquea.
Cosas que puede intentar: puede intentar establecer una conexión SSH con la máquina virtual bastión y buscar el proxy mediante el siguiente comando:
-
netstat -tunalp | grep PORT
Analice las respuestas al comando:
Si recibe una respuesta vacía, el proxy está inactivo. Intente ejecutar los siguientes comandos:
sudo su; cd /
y verifique si el servidor Dante está instalado ejecutandosudo dpkg -s dante-server
:Si el proxy está instalado, recibirá el siguiente mensaje:
Status: install ok installed
Si el proxy no está instalado, el problema probable es que falta un enrutador. Agregue un enrutador y verifique si puede descargar el proxy ejecutando
apt-get install dante-server
.
Si el proxy se está ejecutando y escuchando en el puerto proporcionado, intente abrir una conexión haciendo lo siguiente:
Instale el cliente PostgreSQL:
sudo apt-get install postgresql-client
.Conéctese a la base de datos PostgreSQL:
psql -h 127.0.0.1 -p PORT -U DBUSERNAME -W
(se le pedirá que ingrese la contraseña).Reemplace lo siguiente:
-
PORT
: el número de puerto de la base de datos. -
DBUSERNAME
: el nombre de usuario utilizado para conectarse a la base de datos PostgreSQL.
-
Instale el cliente telnet:
sudo apt-get install telnet
Conéctese al cliente telnet:
telnet 127.0.0.1 PORT
Reemplace
PORT
con el número de puerto de la base de datos.
Dependiendo de los resultados de los comandos:
Si los comandos no logran abrir una conexión, intente consultar los registros del proxy para localizar 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 mediante telnet pero se bloquea en el cliente, el problema probable es el enrutamiento de la dirección IP del bastión. En su VM, escriba
ip route
en la terminal. Vea si puede ubicar una regla de enrutamiento que enrute las conexiones a la dirección IP privada de la instancia de AlloyDB para PostgreSQL utilizando lanic
secundaria (nic1
, la dirección IPDB_SUBNETWORK_GATEWAY
).
Posible causa: el archivo adjunto del servicio no acepta la conexión del punto final procedente del Servicio de migración de base de datos. El archivo adjunto del servicio contiene una lista de proyectos que se aceptan y el proyecto del Servicio de migración de bases de datos no está incluido en la lista.
Cosas que puedes probar: Para resolver el problema, prueba cualquiera de las siguientes opciones:
En el Google Cloud consola, vaya a Private Service Connect .
Ir a Conexión de Servicio Privado
En la pestaña Servicios publicados , acepte la conexión del Servicio de migración de bases de datos para su servicio adjunto (si está pendiente).
Agregue el proyecto solicitante a los proyectos incluidos en la lista de permitidos en el archivo adjunto del servicio (si se rechaza).
Para obtener más información sobre cómo agregar un proyecto incluido en la lista permitida en Terraform, consulte la documentación de Terraform .
Para obtener más información sobre cómo agregar un proyecto incluido en la lista permitida en
gcloud
, consulta la documentación de referencia de la CLI de Google Cloud .
Si esto no resuelve el problema, vuelva a crear el perfil de conexión.
Elimine el perfil de conexión asociado con la conectividad de Private Service Connect y vuelva a crearlo.
Solucionar problemas de errores de Oracle SCAN
Esta sección describe los posibles problemas que puede tener al migrar desde orígenes de Oracle Real Application Clusters (RAC) utilizando la función de nombre de acceso de cliente único (SCAN).
No se puede establecer conectividad con una base de datos Oracle SCAN
La ejecución de la prueba de conectividad falla o se agota el tiempo de espera.
Posible causa: es posible que esté intentando establecer conectividad directamente con su base de datos de origen de Oracle SCAN. El servicio de migración de bases de datos no admite la conectividad directa a bases de datos mediante la función SCAN en entornos Oracle RAC.
Cosas que puedes probar: Para resolver el problema, prueba cualquiera de las siguientes opciones:
Conéctese directamente a uno de los nodos.
Utilice el Administrador de conexiones de Oracle .
Cree una configuración de conectividad privada utilizando una solución de proxy inverso como HAProxy.