Recuperare uno stream

Puoi recuperare uno stream con esito negativo permanente senza dover creare un nuovo stream. A questo scopo, specifica la posizione da cui Datastream tenta di riprendere la lettura delle modifiche dall'origine.

Panoramica del recupero dei dati in streaming

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 errore permanente 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 in modo da avviare la lettura da una posizione di replica diversa. Ogni tipo di origine supportato ha la propria definizione di posizione di replica:

  • Per le origini Oracle, una posizione di replica è un file di log redo 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 (incluso AlloyDB per PostgreSQL), una posizione di replica è il numero di sequenza del log (LSN) nello slot di replica. Durante il recupero, lo stream inizia a leggere dal primo LSN nello slot di replica.

Recuperare uno stream 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 il flusso dalla posizione corrente in cui l'ultima trasmissione non è riuscita. Devi prima correggere il file di log o recuperarlo dal backup. Questa è 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. 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 essere perse se la posizione del log specificata non si sovrappone alla posizione di log persa o non la segue immediatamente. Puoi recuperare queste modifiche eseguendo un backfill.

Per recuperare uno stream con errore permanente per un'origine MySQL o Oracle, svolgi i seguenti passaggi:

  1. Vai alla pagina Stream in Google Cloud.

    Vai alla pagina Stream

  2. Fai clic su Recupero nella riga con il nome dello stream che vuoi recuperare.

  3. 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, lo stream riprende dalla prima posizione nel file di log indicato.
    • Per un'origine Oracle: il numero della modifica di sistema (SCN) nel campo Numero della modifica di sistema (SCN). Questo campo è obbligatorio.
  4. Fai clic su Applica.

  5. Quando lo stream viene recuperato, nella colonna Recuperato della pagina Stream viene visualizzato un timestamp.

Recuperare uno stream 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 a quello utilizzato per lo stream non riuscito o diverso:

  • Se il nuovo slot di replica ha un nome diverso, fornisci il nuovo nome dello slot di replica a Datastream.
  • Se non fornisci un nome dello slot di replica, Datastream utilizza il nome dello slot di replica specificato nella configurazione dell'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 andranno persi. Puoi recuperare queste modifiche eseguendo un backfill.

Per recuperare uno stream con errore permanente per un'origine PostgreSQL:

  1. Vai alla pagina Stream in Google Cloud.

    Vai alla pagina Stream

  2. Fai clic su Recupero nella riga con il nome dello stream che vuoi recuperare.

  3. Viene visualizzato il riquadro Definisci un nuovo slot di replica.

  4. 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.

  5. Fai clic su Applica.

  6. Quando lo stream viene recuperato, nella colonna Recuperato della pagina Stream viene visualizzato un timestamp.

Puoi anche recuperare gli stream non riusciti definitivamente dalla pagina Dettagli stream. A tal fine, fai clic su Recupero stream quando visualizzi informazioni dettagliate sul tuo stream.

Recuperare uno stream 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 vengono persi, ma puoi recuperarli eseguendo un backfill.

  • Riprendi dal tuo numero di sequenza di log (LSN) preferito: seleziona questa opzione per riprendere 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 all'ultimo LSN che Datastream è riuscito a recuperare o non lo segue immediatamente. 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 variazione: 0000123C0000BA780004

Per recuperare uno stream con errore permanente per un'origine SQL Server, svolgi i seguenti passaggi:

  1. Vai alla pagina Stream in Google Cloud.

    Vai alla pagina Stream

  2. Fai clic su Recupero nella riga con il nome dello stream che vuoi recuperare.

  3. Si apre il riquadro Scegli una strategia di recupero. Seleziona un'opzione.

  4. Fai clic su Applica.

  5. Quando lo stream viene recuperato, nella colonna Recuperato della pagina Stream viene visualizzato un timestamp.

Utilizzare il recupero dello stream 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é interrompe la continuità del log bin, ma puoi seguire questi passaggi per recuperare il flusso e assicurarti che i dati sulle modifiche vengano acquisiti:

  1. Interrompi tutte le scritture nell'istanza principale.
  2. 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.
  3. Esegui il failover alla nuova istanza del database.
  4. Se necessario, aggiorna il profilo di connessione dello stream alla nuova istanza di database (ad esempio, potrebbe essere necessario modificare il nome host o l'indirizzo IP del database). Per ulteriori informazioni, vedi Modificare i profili di connessione.
  5. Recupera lo stream da una posizione specifica nell'istanza di failover per garantire la continuità del CDC.

Passaggi successivi