Diagnostica dei problemi nelle migrazioni da Oracle a PostgreSQL

Il processo del job di migrazione potrebbe generare errori durante l'esecuzione.

  • Alcuni errori, ad esempio una password errata nel database di origine, sono recuperabili. Il job di migrazione riprende automaticamente dopo la correzione di questi errori.
  • Alcuni errori non sono recuperabili, ad esempio quelli nella replica dei dati. Devi riavviare il job di migrazione dopo aver corretto questi errori.

Quando si verifica un errore, lo stato del job di migrazione diventa Failed e lo stato secondario riflette l'ultimo stato prima dell'errore. Per risolvere un problema, vai al job di migrazione non riuscito per visualizzare l'errore e segui i passaggi descritti nel messaggio di errore. Per visualizzare ulteriori dettagli sull'errore, vai a Cloud Monitoring utilizzando il link nel job di migrazione. I log vengono filtrati in base al job di migrazione specifico.

Nella tabella seguente sono riportati alcuni esempi di problemi e le relative soluzioni:

Sintomo Cause possibili Cose da provare
Messaggio di errore: Cloud DMS can't set up a tunnel to be connected to the bastion host. Database Migration Service non è riuscito ad accedere all'bastion host o l'bastion host non accetta connessioni. Verifica le impostazioni del tunnel SSH di forwarding nel profilo di connessione e nella configurazione del bastion host, quindi riprova.
Messaggio di errore: Cloud DMS can't connect to the database o Cloud DMS private connectivity error, cannot connect to the database. Database Migration Service non è riuscito a stabilire la connettività al database Oracle di origine.

Verifica di poter accedere al database Oracle di origine dal tuo progetto e assicurati di aver configurato correttamente le impostazioni di connettività nel profilo di connessione di origine.

Se è incluso un codice di errore Oracle specifico, ad esempio ORA-12170: TNS:Connect timeout occurred, consulta la documentazione Oracle per ulteriori informazioni.

Messaggio di errore: Archiving mode is not ARCHIVELOG. L'origine non è stata configurata correttamente. Configura l'origine correttamente. Per ulteriori informazioni, consulta Configurare il database Oracle di origine.
Messaggio di errore: Supplemental logging ("ALL COLUMN LOGGING") isn't turned on for the tables listed below. L'origine non è stata configurata correttamente. Configura l'origine correttamente. Per ulteriori informazioni, consulta Configurare il database Oracle di origine.
Messaggio di errore: No Archive Log Files were found in the source. Database Migration Service legge solo i log dell'archivio chiusi e non sono stati trovati log nel database di origine.
  1. Esegui il seguente comando nel database di origine per chiudere il file di log corrente: ALTER SYSTEM SWITCH LOGFILE.
  2. Prova a trovare di nuovo i log.

Se il database non ha operazioni di scrittura attive, potrebbe essere necessario eseguire almeno un'operazione INSERT per attivare la creazione del log.

Messaggio di errore: We're missing the necessary permissions to read from the source. L'origine non è stata configurata correttamente. Configura l'origine correttamente. Per ulteriori informazioni, consulta Configurare il database Oracle di origine.
Messaggio di errore: Unable to connect to the destination database. Si è verificato un problema di connessione al database di destinazione. Verifica le impostazioni nel profilo di connessione PostgreSQL di destinazione. Per la connettività privata, consulta Risolvere gli errori di Private Service Connect.
Messaggio di errore: database {database_name} does not exist. Database Migration Service si aspetta che il nome del database di destinazione e il nome utente corrispondano. Assicurati che il nome utente indicato nel profilo di connessione di destinazione e il nome del database di destinazione corrispondano. Ricrea il database di destinazione o crea un nome utente diverso che corrisponda al database di destinazione. Per saperne di più, consulta Configurare il database Cloud SQL per PostgreSQL di destinazione.

Assicurati di aver eseguito Ora2pg per creare lo schema nel database di destinazione.

Messaggio di errore: The following tables don't exist in the destination database: {table_names} Le tabelle elencate di cui stai tentando di eseguire la migrazione non esistono nel database di destinazione. Assicurati di aver eseguito Ora2pg per creare lo schema nel database di destinazione o di modificare le impostazioni del job di migrazione.
Messaggio di errore: password authentication failed for user {username}. Il nome utente o la password per il database di destinazione non sono configurati correttamente. Assicurati che il profilo di connessione PostgreSQL di destinazione sia configurato correttamente con il nome utente e la password corretti.
Messaggio di errore: The following tables in the destination database don't have primary keys: {table_names}. Le tabelle elencate esistono nel database di destinazione, ma mancano le chiavi primarie. Assicurati di aver eseguito Ora2pg per creare lo schema nel database di destinazione. Se nella tabella di origine manca una chiave primaria, creala manualmente nel database di destinazione.
Avviso: The following tables have foreign keys: {table_names}. Le tabelle elencate esistono nel database di destinazione, ma hanno chiavi esterne. Database Migration Service non esegue la replica dei dati in modo transazionale, pertanto la migrazione delle tabelle potrebbe non essere eseguita in ordine. Se sono presenti chiavi esterne e viene eseguita la migrazione di una tabella figlio che utilizza una chiave esterna prima della tabella principale, potresti riscontrare errori di replica.

Per evitare questi problemi di integrità dei dati, salta le chiavi esterne utilizzando l'opzione REPLICATION per l'utente di migrazione. Per ulteriori informazioni, consulta Configurare la destinazione.

Messaggio di errore: Unable to resume replication as log position is lost. Questo errore potrebbe verificarsi quando il processo di replica viene messo in pausa per molto tempo, con la conseguente perdita della posizione del log. Un job di migrazione non deve essere messo in pausa per periodi vicini al periodo di conservazione dei log. Quando si verifica l'errore, ricrea il job di migrazione.
Messaggio di errore: ORA-00942: table or view does not exist. Questo errore potrebbe verificarsi a causa della memorizzazione nella cache sul server Oracle. Ricrea l'utente del database per risolvere il problema di memorizzazione nella cache.
Il job di migrazione rimane nella fase di dump completo e non passa alla fase di rilevamento delle modifiche (CDC). Database Migration Service sta ancora eseguendo il dump completo per alcune tabelle oppure non riesce a completare il dump completo di una o più tabelle a causa di errori.
  • Controlla gli errori del job di migrazione e correggi quelli che si applicano alle tabelle o rimuovi le tabelle associate dal job.
  • Controlla i log di Database Migration Service per verificare se è in corso un'attività di dump completo e attendi il completamento.