Puoi recuperare un flusso di dati non riusciti definitivamente senza doverne creare uno nuovo. Puoi farlo specificando la posizione da cui Datastream tenta di per riprendere la lettura delle modifiche dalla fonte.
Panoramica del recupero dello stream
Uno stream in esecuzione può riscontrare alcuni errori irreversibili e cambiare stato in
FAILED_PERMANENTLY
. Questi errori impediscono il proseguimento dell'esecuzione dello stream e potrebbero causare la perdita di dati.
Puoi recuperare uno stream con errori permanenti impostandolo in modo da ignorare l'errore e continuare a leggere gli eventi in corso anziché ricreare lo stream e eseguire il backfill dei dati storici. Per recuperare uno stream con errori permanenti, reimposta la replica per iniziare a leggere da una posizione di replica diversa. Ciascun tipo supportato del tipo di origine ha una propria definizione di posizione di replica:
- Per le origini Oracle, una posizione di replica è un file di log di ripetizione nel database e il numero della modifica di sistema (SCN) in questo file.
- Per le origini MySQL, una posizione di replica è il file del log binario (binlog) del database e la posizione in questo file.
- Per le origini SQL Server, una posizione di replica è il numero di sequenza di log (LSN) nei log delle transazioni o nelle tabelle delle modifiche.
- Per le origini PostgreSQL (tra cui AlloyDB per PostgreSQL), una posizione di replica è il numero di sequenza di log (LSN) nello slot di replica. Durante il recupero, il flusso inizia a leggere dal primo LSN nello slot di replica.
Recupera un flusso per un'origine MySQL o Oracle
Per recuperare uno stream per un'origine MySQL o Oracle, hai a disposizione le seguenti opzioni:
Riprova dalla posizione corrente (consigliato): seleziona questa opzione per tentare di trasmettere in streaming dalla posizione corrente, dove l'ultimo stream non è riuscito. Devi prima correggere il file di log o recuperarlo dal backup. Questo è il l'opzione consigliata.
Salta la posizione corrente e trasmetti il flusso dalla successiva posizione disponibile: se mancano uno o più file di log, seleziona questa opzione per ignorarli e riprendere la trasmissione del flusso dalla prima posizione nel file successivo disponibile. La le modifiche ai file di log mancanti andranno perse, ma puoi recuperarle eseguendo un backfill.
Salta la posizione corrente e trasmetti il flusso dalla posizione più recente: se mancano uno o più file di log, seleziona questa opzione per ignorarli e riprendere la trasmissione del flusso dalla posizione più recente nel file di log più aggiornato. Le modifiche ai file di log mancanti andranno perse, ma puoi recuperarle eseguendo un backfill.
Riprendi dalla posizione e dal file di flusso dei dati preferiti: seleziona questa opzione. per riprendere il flusso da una posizione di log e un file di log specifici. Alcune modifiche potrebbero andrà persa se la posizione di log specificata non si sovrappone o non si sovrappone immediatamente segue la posizione di log persa. Puoi recuperare queste modifiche eseguendo un backfill.
Per recuperare un flusso di dati con errore permanente per un'origine MySQL o Oracle, esegui segui questi passaggi:
Vai alla pagina Stream in Google Cloud.
Fai clic su Recupero nella riga con il nome dello stream da recuperare.
Si apre il riquadro Scegli una strategia di recupero. Seleziona un'opzione. Se selezioni Riprendi dalla posizione e dal file di flusso dei dati preferiti, inserisci quanto segue:
- Per un'origine MySQL: il nome del file di log nel campo Nome file e la posizione del log nel campo Posizione. Se non specifichi la posizione, il flusso riprende dalla prima posizione nel file di log indicato.
- Per un'origine Oracle: il numero della modifica di sistema (SCN) nella sezione Modifica di sistema Numero (SCN). Questo campo è obbligatorio.
Fai clic su Applica.
Quando lo stream viene recuperato, nella colonna Recuperato della pagina Stream viene visualizzato un timestamp.
Recupera un flusso per un'origine PostgreSQL
Per recuperare uno stream per un'origine PostgreSQL, devi fornire il nome dello slot di replica. Il server utilizza questo slot di replica per inviare eventi a Datastream. Il nome dello slot di replica può essere uguale allo slot utilizzato per il flusso di dati non riuscito oppure diverso:
- Se il nuovo slot di replica ha un nome diverso, fornisci il nuovo nome dello slot di replica a Datastream.
Se non fornisci il nome dello slot di replica, Datastream utilizza il parametro il nome dello slot di replica specificato nella configurazione di origine.
Per ulteriori informazioni sugli slot di replica, consulta Configurare un database PostgreSQL di origine.
Eventuali eventi di modifica all'origine che si sono verificati tra la perdita della posizione del log e il primo LSN nel nuovo slot di replica andrà perso. Puoi recuperare queste modifiche eseguendo un backfill.
Per recuperare un flusso di dati con errore permanentemente non riuscito per un'origine PostgreSQL, esegui la seguenti passaggi:
Vai alla pagina Stream in Google Cloud.
Fai clic su Recupera nella riga con il nome del flusso che vuoi recuperare.
Viene visualizzato il riquadro Definisci un nuovo slot di replica.
Nel campo Nome dello slot di replica, fornisci il nome di un nuovo slot di replica da cui lo stream tenterà di eseguire il recupero. Se hai ricreato lo slot di replica utilizzando lo stesso nome o se vuoi riutilizzare lo slot specificato durante la configurazione dell'origine, puoi lasciare vuoto questo campo.
Fai clic su Applica.
Quando lo stream viene recuperato, viene visualizzato un timestamp nella colonna Recuperato. nella pagina Stream.
Puoi anche recuperare gli stream non riusciti definitivamente dalla pagina Dettagli stream. A questo scopo, fai clic su Recupera stream quando visualizzi informazioni dettagliate in merito al tuo stream.
Recupera un flusso per un'origine SQL Server
Per recuperare uno stream per un'origine SQL Server, hai a disposizione le seguenti opzioni:
Riprendi dalla prima posizione disponibile: seleziona questa opzione se il log è stato troncato o se mancano alcuni record nelle tabelle delle modifiche e vuoi riprendere dal primo evento disponibile. Gli eventi mancanti andranno persi, ma puoi recuperarli eseguendo un backfill.
Riprendi dal numero di sequenza di log (LSN) preferito: seleziona questa opzione per riprendi il flusso da un LSN specifico nei log delle transazioni o nelle tabelle delle modifiche. Alcuni eventi potrebbero andare persi se l'LSN specificato non si sovrappone immediatamente o segue l'ultimo LSN che Datastream è stato in grado di recuperare. Puoi recuperare questi eventi eseguendo un backfill.
L'LSN sia nei log delle transazioni sia nelle tabelle delle modifiche contiene 20 caratteri esadecimali, ma per i log delle transazioni è separato da un delimitatore. Ad esempio:
- LSN nei log delle transazioni:
0000123C:0000BA78:0004
- LSN nelle tabelle di modifica:
0000123C0000BA780004
- LSN nei log delle transazioni:
Per recuperare un flusso di dati con errore permanente per un'origine SQL Server, esegui la seguenti passaggi:
Vai alla pagina Stream in Google Cloud.
Fai clic su Recupero nella riga con il nome dello stream da recuperare.
Si apre il riquadro Scegli una strategia di recupero. Seleziona un'opzione.
Fai clic su Applica.
Quando lo stream viene recuperato, viene visualizzato un timestamp nella colonna Recuperato. nella pagina Stream.
Utilizza il recupero del flusso per un'origine MySQL in uno scenario di failover manuale
Puoi eseguire un failover manuale e utilizzare il recupero dello stream per evitare di ricreare gli stream da zero durante la manutenzione o in caso di errore dell'istanza principale. In genere, Datastream non supporta i failover alle repliche perché interrompono la continuità del binlog, ma puoi seguire questi passaggi per recuperare e assicurarti che i dati delle modifiche vengano acquisiti:
- Arresta tutte le scritture sull'istanza principale.
- Assicurati che la metrica di aggiornamento dei dati sia impostata su 0. Ciò significa che Datastream ha acquisito tutte le modifiche e non ci sono nuovi eventi da leggere dall'origine. Per maggiori informazioni, consulta Monitorare uno stream.
- Esegui il failover sulla nuova istanza di database.
- Se necessario, aggiorna il profilo di connessione del flusso alla nuova istanza di database (ad esempio, potresti dover modificare il nome host o l'indirizzo IP del database). Per ulteriori informazioni, consulta Modificare i profili di connessione.
- Recupera il flusso da una posizione specifica sull'istanza di failover per garantire la continuità del CDC.
Passaggi successivi
- Per scoprire di più sugli stati degli stream, consulta la sezione Ciclo di vita degli stream.
- Per scoprire come visualizzare le informazioni sul tuo stream, consulta Visualizzare uno stream.
- Per informazioni su come monitorare uno stream, consulta Monitorare uno stream.
- Per scoprire come gestire il backfill per uno stream, consulta Gestire il backfill per gli oggetti di uno stream.
- Per informazioni su come eliminare uno stream esistente, consulta l'articolo Eliminare uno stream.