Diagnostica dei problemi

Panoramica

Il flusso potrebbe generare errori durante il runtime.

  • Alcuni errori, come una password errata nel database di origine, sono recuperabili, ovvero possono essere corretti e il flusso riprende automaticamente.
  • Gli errori possono interessare un singolo oggetto, ad esempio un evento contenente tipi di dati non supportati. Altri errori potrebbero interessare diversi oggetti o l'intero flusso, ad esempio quando Datastream non riesce a connettersi al database di origine.
  • A seconda dell'errore, le informazioni vengono fornite nelle pagine Stream o Dettagli stream dell'interfaccia utente di Datastream. Puoi anche utilizzare le API di Datastream per recuperare le informazioni sull'errore.

Per risolvere un errore, vai allo stream per visualizzarlo e segui i passaggi descritti nel messaggio di errore.

Questa pagina contiene informazioni sugli errori di configurazione, connettività, Oracle e MySQL, oltre ai passaggi per risolvere gli errori.

Errori di configurazione e connettività

Errore Passaggi per la risoluzione dei problemi
Errore di connessione al database di origine (generico).

Questo può accadere per vari motivi. Per risolvere questo errore, esegui le seguenti operazioni:

  1. Assicurati che il database di origine sia attivo e raggiungibile.
  2. Vai al profilo di connessione di origine dalle pagine Stream o Profili di connessione.
  3. Verifica che le informazioni sulla connettività del profilo di connessione siano corrette.
  4. Verifica che il nome utente e la password corrispondano.
  5. Verifica che il nome utente esista nel database e che disponga dei privilegi richiesti.
  6. Salva le modifiche apportate nella pagina Profili di connessione.

Lo stream riprende automaticamente.

Errore di connessione al database di origine (lista consentita IP). Questo può accadere se il metodo di connettività scelto è Lista consentita IP, ma uno o più indirizzi IP in uscita di Datastream non vengono aggiunti correttamente sul database di origine. Assicurati che gli indirizzi IP in uscita visualizzati nel profilo di connessione Datastream siano configurati sul firewall di rete, in modo che il server di database di origine possa accettare connessioni da questi indirizzi IP. Una volta risolto il problema, lo stream riprende automaticamente.
Errore di connessione al database di origine (tunnel SSH di forwarding). Questo può accadere se si verifica un problema con il tunnel SSH di inoltro. Controlla lo stato del tunnel. Se il tunnel è arrestato, è necessario avviarlo. Una volta risolto il problema, lo stream riprende automaticamente.
Datastream non può connettersi a un bastion host tramite un tunnel SSH di forwarding. Verifica che la configurazione del tunnel SSH di forwarding sia configurata correttamente nel profilo di connessione di origine e che la porta sia aperta sul server del tunnel SSH.
Errore di connessione al database di origine a causa di certificati non validi. Questo può accadere se si è verificato un problema con i certificati forniti durante la definizione del profilo di connessione di origine. Vai alla pagina Profili di connessione e seleziona il profilo di connessione specificato. Verifica che i certificati siano configurati correttamente. Dopo aver apportato le modifiche, salva il profilo di connessione e lo stream riprende automaticamente.
Impossibile utilizzare la connettività privata per connettersi al database di origine.
  1. Assicurati di aver completato tutti i prerequisiti descritti nella sezione Prima di iniziare.
  2. Dopo aver creato la configurazione di connettività privata, verifica che la route contenente l'indirizzo IP interno del database venga visualizzata nella scheda Route esportate della pagina Peering di rete VPC.

    Per farlo, vai alla pagina Peering di rete VPC, quindi cerca il peering aggiunto (il nome è peering-[UUID]). La route è disponibile nella scheda Route esportate. Se questo percorso non esiste, aggiungilo manualmente.

  3. Datastream non verifica la sovrapposizione con le route di peering dinamiche. Specificare una subnet che si sovrappone a una route dinamica può causare problemi di connettività. Di conseguenza, sconsigliamo di utilizzare una subnet che fa parte di una route dinamica.
  4. Assicurati che le route personalizzate per gli intervalli di indirizzi IP di Datastream siano annunciate correttamente. Se mancano le route personalizzate, consulta la guida Annunci di route personalizzati.
  5. Se i problemi di connessione al database di origine persistono, consulta Configurare un proxy inverso.
Il tipo di connettività STATIC_SERVICE_IP_CONNECTIVITY non è consentito quando i criteri dell'organizzazione constraints/datastream.disablePublicConnectivity è attiva.

Hai selezionato i metodi di connettività di rete della lista consentita IP o del tunnel SSH di forwarding per il profilo di connessione che stai creando. Tuttavia, il criterio dell'organizzazione Blocca metodi di connettività pubblica per Datastream è abilitato. Di conseguenza, non puoi selezionare metodi di connettività pubblica per il tuo profilo di connessione.

Per risolvere questo problema, seleziona il metodo di connettività di rete peering VPC privato o disabilita il criterio dell'organizzazione.

Per disattivare il criterio dell'organizzazione:

  1. Vai alla pagina Criteri dell'organizzazione nella Google Cloud Console.
  2. Seleziona il criterio dell'organizzazione Datastream - Blocca metodi di connettività pubblica.
  3. Fai clic su MODIFICA.

  4. Nella sezione Si applica a della pagina, seleziona Personalizza.
  5. Nella sezione Applicazione, seleziona Off.

  6. Fai clic su SALVA.
  7. Torna al profilo di connessione Oracle che stai creando, quindi fai clic su CREA.
Durante la configurazione del database di origine per il mio flusso, non riesco a trovare le tabelle e gli schemi che voglio trasferire nell'elenco degli oggetti da includere.

Questo può accadere se il database ha migliaia di tabelle e schemi. Alcuni di questi potrebbero non essere inclusi nell'elenco degli oggetti di cui eseguire il pull durante la configurazione dell'origine per il flusso nella console Google Cloud. Anziché selezionare Schemi e tabelle specifici nella sezione Seleziona oggetti da includere, scegli Personalizzato. Nel campo Criteri di corrispondenza degli oggetti, inserisci gli schemi e le tabelle da cui vuoi estrarre da Datastream.

Ho aggiunto più tabelle al mio stream utilizzando il menu Oggetti da includere. Tuttavia, osservando la scheda Oggetti in Dettagli stream, posso notare che mancano alcune tabelle. Assicurati che sia disponibile almeno un aggiornamento CDC per ciascuna di queste tabelle, in modo che Datastream possa riconoscere le modifiche e includere automaticamente le tabelle nel flusso.
Errore durante il caricamento dell'elenco di oggetti quando utilizzi il menu Oggetti da includere nella console Google Cloud. Questo può accadere se il database ha più di 5000 schemi e tabelle. Utilizza un metodo diverso per specificare quali oggetti includere oppure utilizza l'API Datastream. Per ulteriori informazioni, consulta Configurare i database di origine.
Eventi eliminati durante il flusso di dati e non replicati nella destinazione.

Datastream potrebbe eliminare eventi non supportati durante il flusso di dati. Per risolvere il problema, puoi eseguire le seguenti azioni:

  • Attiva manualmente un backfill dell'intera tabella. Funziona se gli eventi eliminati sono solo eventi UPSERT. Se gli eventi eliminati includono eventi DELETE, devi troncare la tabella in BigQuery prima di eseguire il backfill.

    Per informazioni su come eseguire un backfill, consulta Avviare il backfill.

  • Contatta l'Assistenza Google e chiedi di eseguire un backfill parziale. Questo è possibile solo se riesci a identificare gli eventi eliminati con una clausola SQL WHERE e se nessuno degli eventi è DELETE.
  • Ignora il problema se il numero di eventi eliminati è basso o se gli eventi eliminati non sono significativi.

Errori Oracle

Errore Passaggi per la risoluzione dei problemi
Il logging supplementare non è configurato correttamente nel database di origine.

Se la configurazione del logging supplementare non è corretta nel database di origine, può verificarsi un errore durante il recupero dei dati Change Data Capture (CDC) in corso. Verifica che il logging supplementare sia configurato correttamente. In particolare, verifica che sia attivato il logging supplementare per le tabelle di database di cui viene eseguito il flusso dall'origine alla destinazione. Lo stream riprende automaticamente.

Impossibile riprendere la replica perché la posizione del log è stata persa. Questo errore può verificarsi quando il processo di replica viene messo in pausa per molto tempo, causando la perdita della posizione del log. I flussi non devono essere messi in pausa per periodi di tempo che si avvicinano al periodo di conservazione dei log. Ricrea lo stream.
I file di log sono mancanti, parzialmente o interamente.

I file di log potrebbero essere stati eliminati. Oracle elimina definitivamente i file di log il prima possibile, a meno che non specifichi un periodo di rotazione minimo per mantenerli. In Oracle Server, imposta per quanto tempo conservare i file di log. Ad esempio, utilizza CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS; per conservare i file di log per almeno 4 giorni.

Per un deployment RDS, utilizza exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',96);

L'elenco di esclusione include l'elenco di inclusione. L'elenco di inclusione è contenuto completamente all'interno dell'elenco di esclusione, quindi l'elenco di oggetti che Datastream estrae dall'origine è vuoto. Modifica la selezione degli oggetti e riprova.
La modalità di logging per il database Oracle non è impostata su ARCHIVELOG. Cambia la modalità di logging e riprova.
Datastream restituisce un messaggio di errore ORA-00942: table or view does not exist, ma tutto è configurato correttamente. Ciò può essere dovuto alla memorizzazione nella cache sul server Oracle. Ricreare l'utente del database deve risolvere il problema di memorizzazione nella cache.
Le modifiche a un'origine Oracle non si riflettono nella destinazione quando il flusso è già in esecuzione. Poiché Datastream legge dai file di log di ripetizione archiviati, le modifiche apportate all'origine non vengono riflesse nella destinazione fino a quando il log non viene archiviato. Per visualizzare le modifiche nella destinazione, modifica il criterio di archiviazione dei log o forza manualmente il cambio dei log. Per ulteriori informazioni, vedi Utilizzare i file di log di ripetizione del database Oracle.
Si è verificato un errore interno imprevisto. Per maggiori dettagli, contatta l'Assistenza Google.

Errori MySQL

Errore Passaggi per la risoluzione dei problemi
Binlog non è configurato correttamente nel database di origine.

Questo può accadere per i flussi di dati MySQL continui se la configurazione binlog non è corretta nel database di origine. Per risolvere questo errore, esegui le seguenti operazioni:

  1. Verifica che il binlog sia configurato correttamente.
  2. Verifica che il formato del log binario del database MySQL sia impostato su ROW.
  3. Riavvia lo stream.
Impossibile riprendere la replica perché la posizione binlog è stata persa. Questo errore può verificarsi quando il processo di replica viene sospeso per molto tempo, causando la perdita della posizione del binlog. I flussi non devono essere messi in pausa per periodi di tempo che si avvicinano al periodo di conservazione del binlog. Ricrea lo stream.
Errore durante l'esecuzione del flusso a causa di versioni del database di origine e di destinazione incompatibili.

Questo può accadere quando il database di origine non ottempera alla matrice di supporto della versione. Per risolvere questo errore, esegui le seguenti operazioni:

  1. Assicurati che il database di origine rispetti la matrice.
  2. Ricrea il flusso con il database di origine aggiornato.
I binlog di origine MySQL di AWS RDS sono mancanti, parzialmente o interamente. I binlog potrebbero essere stati eliminati. AWS RDS elimina definitivamente i binlog nel più breve tempo possibile, a meno che non venga specificato un periodo di rotazione minimo per mantenerli disponibili. Nell'istanza MySQL di AWS RDS di origine imposta per quanto tempo, in ore, devono essere conservati i binlog. Ad esempio, utilizza mysql.rds_set_configuration('binlog retention hours', 168); per mantenere i binlog a disposizione per almeno 7 giorni.
L'elenco di esclusione include l'elenco di inclusione. L'elenco di inclusione è contenuto completamente all'interno dell'elenco di esclusione, quindi l'elenco di oggetti che Datastream estrae dall'origine è vuoto. Modifica la selezione degli oggetti e riprova.
Datastream non può replicare un database MySQL. Assicurati che Datastream disponga delle autorizzazioni per replicare il database.
Quando crei un profilo di connessione per un'origine MySQL, nel menu Tipo di crittografia non vengono accettati più certificati SSL con codifica PEM. Datastream non supporta le catene di certificati SSL nei profili di connessione MySQL. Sono supportati solo certificati x509 con codifica PEM.
Latenza elevata durante il flusso di dati da un'origine MySQL.

Aumenta la capacità di Datastream di leggere dal database di origine:

Si è verificato un errore interno imprevisto. Per maggiori dettagli, contatta l'Assistenza Google.

Errori PostgreSQL

Errore Passaggi per la risoluzione dei problemi
La decodifica logica non è configurata correttamente nel database di origine.

Verifica che la decodifica logica sia configurata correttamente. Consulta Configurare un database PostgreSQL di origine.

Lo slot di replica non esiste Se lo slot di replica non esiste nel database, può verificarsi un errore durante il recupero dei dati Change Data Capture (CDC) in corso. Verifica che lo slot di replica sia configurato correttamente. Consulta Configurare un database PostgreSQL di origine.
Lo slot di replica è configurato con un plug-in errato Questo errore può verificarsi se lo slot di replica è configurato con un plug-in diverso da pgoutput. Verifica che lo slot di replica sia configurato correttamente. Per ulteriori informazioni, consulta Database PostgreSQL di origine.
Lo slot di replica è attivo in un altro processo. Questo errore può verificarsi quando lo slot di replica è utilizzato da un altro processo. Gli slot di replica possono essere utilizzati solo da un singolo processo alla volta. Assicurati di non utilizzare lo stesso slot di replica in nessun altro processo ad eccezione di Datastream.
La pubblicazione non è configurata correttamente Questo errore può verificarsi quando la pubblicazione non è configurata per esporre le tabelle incluse nella configurazione del flusso. Verifica che la pubblicazione sia configurata correttamente. Consulta Configurare le informazioni sul database di origine per il flusso.
La pubblicazione non esiste. Questo errore può verificarsi se la pubblicazione non esiste nel database. Verifica che la pubblicazione sia configurata correttamente. Consulta Configurare un database PostgreSQL di origine.
Impossibile riprendere la replica perché i file WAL sono stati persi. Questo errore può verificarsi quando il processo di replica viene sospeso per molto tempo, causando la perdita dei file WAL. I flussi non devono essere messi in pausa per periodi di tempo che si avvicinano al periodo di conservazione dei file WAL. Ricrea lo stream.
L'elenco di esclusione include l'elenco di inclusione. L'elenco di inclusione è contenuto completamente all'interno dell'elenco di esclusione, quindi l'elenco di oggetti che Datastream estrae dall'origine è vuoto. Modifica la selezione degli oggetti e riprova.
Datastream non può replicare uno schema PostgreSQL. Assicurati che Datastream disponga delle autorizzazioni per replicare lo schema.
Le transazioni di grandi dimensioni sul database di origine causano problemi di replica e sincronizzazione dei dati. Se inserisci, aggiorni o elimini un numero significativo di record nel database di origine, lo slot di replica potrebbe essere sovraccarico a causa degli eventi corrispondenti. Datastream ha bisogno di tempo per leggere ed elaborare questi eventi. Poiché gli slot di replica PostgreSQL sono a thread singolo, l'elaborazione di altre modifiche nello slot di replica, incluse le modifiche ai dati di altre tabelle, viene ritardata finché Datastream non raggiunge tutte le modifiche nello slot di replica.
Le transazioni di grandi dimensioni sul database di origine causano una bassa velocità effettiva CDC. Datastream non supporta CDC multi-thread in PostgreSQL. Per superare questo limite e aumentare la velocità effettiva CDC, puoi suddividere l'origine in più flussi, ciascuno con il proprio slot di pubblicazione e replica. Ad esempio, potresti voler creare un flusso per la tabella più grande del database e un altro per tutte le altre tabelle oppure un flusso per le tabelle con priorità più alta e un altro per le restanti. I casi d'uso possono variare, quindi devi considerare cosa è più utile nel tuo scenario CDC specifico. Per informazioni sulla creazione di una pubblicazione, consulta Configurare un database PostgreSQL di origine.
Eventi non supportati eliminati con il codice motivo: BIGQUERY_TOO_MANY_PRIMARY_KEYS. Quando l'identità di replica PostgreSQL per una tabella è impostata su FULL, Datastream tratta tutte le colonne di questa tabella come chiavi primarie. Se la tabella contiene più di 16 colonne, ciò costituisce una violazione delle limitazioni relative alla CDC di BigQuery e provoca l'errore. Per risolvere il problema:
  1. Modifica l'identità di replica in DEFAULT:
    ALTER TABLE TABLE_NAME REPLICA IDENTITY DEFAULT
    Sostituisci TABLE_NAME con il nome della tabella per cui vuoi modificare l'identità di replica.
  2. Rimuovi la tabella dall'elenco degli oggetti del flusso da includere. Per saperne di più, consulta Modificare le informazioni di configurazione sul database di origine.
  3. Elimina la tabella da BigQuery. Per ulteriori informazioni, vedi Eliminare le tabelle.
  4. In Datastream, aggiungi di nuovo la tabella al flusso modificando la configurazione di origine.
Si è verificato un errore interno imprevisto. Per maggiori dettagli, contatta l'Assistenza Google.

Errori di SQL Server

Errore Passaggi per la risoluzione dei problemi
La tecnologia CDC è disabilitata per il database DATABASE_NAME.

La Change Data Capture (CDC) deve essere abilitata per il database. Datastream richiede l'accesso in lettura diretto ai log delle transazioni per replicare le modifiche in tempo reale nel database di origine e ottenere informazioni di log complete. Abilita CDC per il database e riprova.

Per informazioni sull'abilitazione di CDC per un database, consulta Configurare un database SQL Server di origine.

Tabelle con CDC disabilitata.

La tecnologia Change Data Capture (CDC) deve essere abilitata per tutte le tabelle incluse nel flusso. Datastream richiede l'accesso in lettura diretto ai log delle transazioni per replicare le modifiche in tempo reale alle tabelle di origine e ottenere informazioni di log complete. Abilita CDC per le tabelle incluse nel flusso e riprova.

Per informazioni sull'abilitazione di CDC per le tabelle di origine, consulta Configurare un database SQL Server di origine.

Autorizzazioni mancanti. Datastream non dispone delle autorizzazioni necessarie per leggere dall'origine. Concedi i privilegi appropriati all'account utente utilizzato per la connessione al tuo database e riprova.
La versione SQL Server EDITION_NAME non è supportata. Datastream non supporta questa versione di SQL Server. Per saperne di più sulle versioni supportate di SQL Server, vedi Panoramica di SQL Server come origine.
La versione SQL Server VERSION_NAME dell'edizione Standard non è supportata. Datastream non supporta questa versione dell'edizione SQL Server Standard. Per saperne di più sulle versioni supportate di SQL Server, consulta Panoramica di SQL Server come origine.

Errori BigQuery

Errore Passaggi per la risoluzione dei problemi
BIGQUERY_UNSUPPORTED_PRIMARY_KEY_CHANGE, details: Failed to write to BigQuery due to an unsupported primary key change: adding primary keys to existing tables is not supported. Se la chiave primaria cambia nell'origine, devi eliminare la tabella in BigQuery e avviare di nuovo il backfill. Questo è un limite di BigQuery, perché non è possibile garantire l'unione corretta di nuovi eventi con le righe esistenti se la chiave primaria è diversa. Per ulteriori informazioni, consulta Configurare una destinazione BigQuery.