In questa pagina sono elencati gli errori noti e i passaggi consigliati per la risoluzione dei problemi relativi a:
Errori dei job di migrazione
Il processo del job di migrazione potrebbe generare errori durante il runtime.
- 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 gli errori 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 cambia in Failed e lo stato secondario riflette l'ultimo stato prima dell'errore.
Per risolvere un errore, 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 di come possono essere risolti:
| Sintomo | Cause possibili | Da provare |
|---|---|---|
Messaggio di errore: Database Migration Service can't set up a tunnel to be
connected to the bastion host.
|
Database Migration Service non è riuscito ad accedere al bastion host o il bastion host non accetta connessioni. | Verifica le impostazioni del tunnel SSH di forwarding nel profilo di connessione di origine e nella configurazione del server del tunnel SSH, quindi riprova. |
Messaggio di errore: Database Migration Service can't connect to the database
o
Database Migration Service 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 di origine dal tuo progetto. Controlla le impostazioni relative al tuo metodo di configurazione della connettività di origine. Se è incluso un codice di errore Oracle specifico, ad esempio |
Messaggio di errore: Archiving mode is not ARCHIVELOG. |
Il database di origine non è in esecuzione in modalità ARCHIVELOG. |
Configura il database di origine in modo che utilizzi la modalità ARCHIVELOG.
Per saperne di più, consulta
Configura il database Oracle di origine.
|
Messaggio di errore: Supplemental logging ("ALL COLUMN LOGGING") isn't turned
on for the tables listed below.
|
I dati di log supplementari non sono abilitati nel database di origine. | Abilita i dati di log supplementari e imposta la modalità su ALL.
Per saperne di più, consulta
Configura il database Oracle di origine.
|
Messaggio di errore: No Archive Log Files were found in the source. |
Database Migration Service legge solo i log di archiviazione chiusi e non sono stati trovati log nel database di origine. |
Se il database non ha operazioni di scrittura attive, potrebbe essere necessario eseguire almeno un'operazione |
Messaggio di errore: We're missing the necessary permissions to read
from the source.
|
L'account utente di migrazione nel database di origine non dispone delle autorizzazioni richieste. |
Database Migration Service si connette all'origine come l'account utente che configuri nel profilo di connessione di origine. Questo account deve disporre di un insieme specifico di autorizzazioni (ad esempio Assicurati che l'account utente per la migrazione disponga dei privilegi necessari. Per saperne di più, consulta Configura il database Oracle di origine. |
Messaggio di errore: Unable to connect to the destination database. |
Si è verificato un problema durante la connessione al database di destinazione. | Verifica di poter accedere al database di destinazione dal tuo progetto. Controlla le impostazioni relative al tuo metodo di configurazione della connettività 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. | Database Migration Service crea la tabella e le definizioni necessarie quando converti lo schema di origine. |
Messaggio di errore: password authentication failed for user {username}. |
Il nome utente o la password del 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 nel messaggio di errore esistono nel database di destinazione, ma non hanno chiavi primarie. |
I workspace della conversione di Database Migration Service aggiungono automaticamente le chiavi primarie per le tabelle che non le hanno quando converti lo schema. Se utilizzi workspace della conversione legacy, devi creare manualmente le chiavi primarie nella destinazione. Per saperne di più, consulta Workspace della conversione legacy. |
Avviso: The following tables have foreign keys: {table_names}. |
Le tabelle elencate nel messaggio di errore esistono nel database di destinazione, ma hanno chiavi esterne. |
Database Migration Service non replica i 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 padre, potrebbero verificarsi errori di replica. Per evitare questi problemi di integrità dei dati, ignora le chiavi esterne utilizzando l'opzione |
Messaggio di errore: Unable to resume replication as log position is lost. |
Questo errore potrebbe verificarsi quando il processo di replica viene sospeso per un lungo periodo di tempo, causando la perdita della posizione del log. | Un job di migrazione non deve essere messo in pausa per un periodo di tempo superiore (o vicino) al periodo di conservazione dei log. Se la posizione del log viene persa, devi ricreare 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 Change Data Capture (CDC). | Database Migration Service sta ancora eseguendo il dump completo di alcune tabelle o una o più tabelle non possono completare il dump completo a causa di errori. |
|
Problemi di connettività
Questa sezione elenca e descrive i passaggi per la risoluzione dei problemi relativi alla connettività di rete.
Impossibile connettersi al database di destinazione: EOF
L'esecuzione di un test di connettività restituisce il messaggio di errore [DATABASE] unable to connect to the destination database: EOF.
Possibile causa: il collegamento al servizio non è configurato correttamente.
Cose da provare: assicurati che enable_proxy_protocol sia impostato su false nel
file di configurazione Terraform del collegamento al servizio.
Il protocollo proxy è supportato solo per i server HTTP come NGINX e Apache.
Quando utilizzi gcloud per creare la configurazione di Private Service Connect, il protocollo proxy è disabilitato per impostazione predefinita.
Timeout della connessione, connessione rifiutata
L'esecuzione dei Connectivity Tests non va a buon fine o scade. La causa più probabile è un routing configurato in modo errato all'interno della configurazione di Private Service Connect. Questo problema può verificarsi per diversi motivi.
Possibile causa: manca una regola firewall che consenta all'intervallo CIDR NAT di Private Service Connect di accedere alla subnet Private Service Connect in cui si trova il bastion, in particolare all'interfaccia nic0 della VM bastion.
Cose da provare: assicurati che la policy dell'organizzazione non limiti le regole firewall interne, come la regola firewall psc_sp_in_fw definita nello script Terraform di esempio per la
configurazione della connettività IP privato di destinazione per le istanze Cloud SQL non abilitate per PSC.
Possibile causa: il proxy non è attivo. Non esiste un listener sulla porta fornita, pertanto la connessione si blocca.
Cosa provare: puoi provare a stabilire una connessione SSH alla VM bastion e cercare il proxy utilizzando il seguente comando:
netstat -tunalp | grep PORT
Analizza le risposte al comando:
Se ricevi una risposta vuota, il proxy non è attivo. Prova a eseguire i seguenti comandi:
sudo su; cd /e verifica se il server Dante è installato eseguendosudo dpkg -s dante-server:Se il proxy è installato, viene visualizzato il seguente messaggio:
Status: install ok installedSe il proxy non è installato, il problema probabile è la mancanza di un router. Aggiungi un router e verifica se puoi scaricare il proxy eseguendo
apt-get install dante-server.
Se il proxy è in esecuzione e in ascolto sulla porta fornita, prova ad aprire una connessione seguendo questi passaggi:
Installa il client PostgreSQL:
sudo apt-get install postgresql-client.Connettiti al database PostgreSQL:
psql -h 127.0.0.1 -p PORT -U DBUSERNAME -W(ti verrà chiesto di inserire la password).Sostituisci quanto segue:
PORT: il numero di porta del database.DBUSERNAME: il nome utente utilizzato per connettersi al database PostgreSQL.
Installa il client telnet:
sudo apt-get install telnetConnettiti al client telnet:
telnet 127.0.0.1 PORTSostituisci
PORTcon il numero di porta del database.
A seconda dei risultati dei comandi:
Se i comandi non riescono ad aprire una connessione, prova a esaminare i log del proxy per individuare la causa principale. La causa principale può variare a seconda della configurazione dell'istanza Cloud SQL.
Se la connessione viene aperta utilizzando telnet, ma si blocca nel client, il problema probabile è il routing dell'indirizzo IP del bastion. Nella VM, digita
ip routenel terminale. Controlla se riesci a individuare una regola di instradamento che instrada le connessioni all'indirizzo IP privato dell'istanza Cloud SQL utilizzando l'intervallonicsecondario (nic1, l'indirizzo IPDB_SUBNETWORK_GATEWAY).
Possibile causa: il collegamento al servizio non accetta la connessione dell'endpoint proveniente da Database Migration Service. Il collegamento al servizio contiene un elenco di progetti accettati e il progetto Database Migration Service non è incluso nell'elenco.
Cosa puoi fare: per risolvere il problema, prova una delle seguenti soluzioni:
Nella console Google Cloud , vai a Private Service Connect.
Nella scheda Servizi pubblicati, accetta la connessione da Database Migration Service per il collegamento al servizio (se è in attesa).
Aggiungi il progetto richiedente ai progetti inclusi nella lista consentita nel collegamento al servizio (se viene rifiutato).
Per saperne di più sull'aggiunta di un progetto consentito in Terraform, consulta la documentazione di Terraform.
Per saperne di più sull'aggiunta di un progetto inserito nella lista consentita in
gcloud, consulta la documentazione di riferimento di Google Cloud CLI.
Se il problema persiste, ricrea il profilo di connessione.
Elimina il profilo di connessione associato alla connettività Private Service Connect e ricrealo.
Risolvi gli errori SCAN di Oracle
Questa sezione descrive i potenziali problemi che potresti riscontrare durante la migrazione da origini Oracle Real Application Clusters (RAC) utilizzando la funzionalità Single Client Access Name (SCAN).
Impossibile stabilire la connettività a un database Oracle SCAN
L'esecuzione dei Connectivity Tests non va a buon fine o scade.
Possibile causa: potresti stare tentando di stabilire la connettività direttamente al database di origine Oracle SCAN. Database Migration Service non supporta la connettività diretta ai database utilizzando la funzionalità SCAN negli ambienti Oracle RAC.
Cosa puoi fare: per risolvere il problema, prova una delle seguenti soluzioni:
Connettiti direttamente a uno dei nodi.
Utilizza Oracle Connection Manager.
Crea una configurazione di connettività privata utilizzando una soluzione di reverse proxy come HAProxy.