Questa pagina elenca gli errori noti e i passaggi consigliati per la risoluzione dei problemi relativi a:
Errori del 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 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 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 come possono essere risolti:
Sintomo | Cause possibili | Cose 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à della sorgente. 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 ulteriori informazioni, consulta la sezione
Configurare il database Oracle di origine.
|
Messaggio di errore: Supplemental logging ("ALL COLUMN LOGGING") isn't turned
on for the tables listed below .
|
Nel database di origine non sono abilitati i dati dei log supplementari. | Abilita i dati di log supplementari e imposta la modalità su ALL .
Per ulteriori informazioni, consulta la sezione
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 di archivio 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 account utente configurato nel profilo di connessione di origine. Questo account richiede un insieme specifico
di autorizzazioni (ad esempio Assicurati che l'account utente di migrazione disponga dei privilegi necessari. Per ulteriori informazioni, consulta la sezione Configurazione del 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 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 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 giusti. |
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 mancano le chiavi primarie. |
Le aree di lavoro di conversione di Database Migration Service aggiungono automaticamente le chiavi primarie per le tabelle che non le hanno quando converti lo schema. Se utilizzi le aree di lavoro di conversione legacy, devi creare le chiavi primarie manualmente nella destinazione. Per ulteriori informazioni, vedi Workspace di 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 le tabelle potrebbero essere migrate in modo non sequenziale. Se sono presenti chiavi esterne e una tabella secondaria che utilizza una chiave esterna viene migrata prima della tabella principale, potresti riscontrare 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 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 per alcune tabelle o una o più tabelle non riescono a 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.
Cosa provare: assicurati che enable_proxy_protocol
sia impostato su
false
nel
file di configurazione Terraform del collegamento del 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 è disattivato per impostazione predefinita.
Timeout della connessione, connessione rifiutata
L'esecuzione del test di connettività non va a buon fine o scade. Ciò è probabilmente dovuto a un routing configurato in modo errato all'interno della configurazione di Private Service Connect. Questo problema può verificarsi per diversi motivi.
Causa possibile: 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.
Cosa provare: assicurati che il criterio dell'organizzazione non limiti le regole firewall interne, ad esempio 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 funziona. Non è presente alcun listener sulla porta fornita, e 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 funziona. Prova a eseguire i seguenti comandi:
sudo su; cd /
e controlla se il server Dante è installato eseguendosudo dpkg -s dante-server
:Se il proxy è installato, viene visualizzato il seguente messaggio:
Status: install ok installed
Se il proxy non è installato, il problema probabile è un router mancante. Aggiungi un router e verifica se riesci a 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 eseguendo le seguenti operazioni:
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 telnet
Connettiti al client telnet:
telnet 127.0.0.1 PORT
Sostituisci
PORT
con 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 host. Nella VM, digita
ip route
nel terminale. Verifica se riesci a individuare una regola di routing che indirizza le connessioni all'indirizzo IP privato dell'istanza Cloud SQL utilizzandonic
secondario (nic1
, l'indirizzo IPDB_SUBNETWORK_GATEWAY
).
Possibile causa: l'allegato del servizio non accetta la connessione dell'endpoint proveniente da Database Migration Service. Il collegamento del servizio contiene un elenco di progetti accettati e il progetto Database Migration Service non è incluso nell'elenco.
Cosa provare: 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 del servizio (se è in attesa).
Aggiungi il progetto richiedente ai progetti consentiti nel collegamento del 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 consentito 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.
Risolvere i problemi relativi agli errori di Oracle SCAN
Questa sezione descrive i potenziali problemi che potresti riscontrare durante la migrazione dalle 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 del test di connettività non va a buon fine o scade.
Possibile causa:potresti tentare 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 provare: 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 proxy inverso come HAProxy.