Quando una pipeline del CDC si blocca, l'istinto è automatico: farla ripartire. In fretta.
Nel frattempo, la fonte potrebbe essere ancora impegnata nell'elaborazione delle transazioni. L'arretrato potrebbe continuare ad aumentare. Report, applicazioni e processi a valle potrebbero già funzionare con dati obsoleti.
E prima o poi qualcuno si pone la domanda: possiamo semplicemente riavviarlo?
È solitamente in quel momento che la guarigione diventa più difficile.
Perché il vero problema spesso non è il guasto in sé, ma tutto ciò che è accaduto mentre la replica non era in funzione.
Un riavvio riuscito dimostra una sola cosa: la replica è di nuovo in funzione.
Ciò non dimostra che l'obiettivo sia completo, aggiornato o corretto.
I guasti più pericolosi dei CDC non sono sempre quelli in cui la replica si interrompe. Sono quelli in cui la replica riprende e nessuno è in grado di spiegare cosa sia successo durante l'interruzione o di dimostrare che i dati recuperati siano affidabili.
L'obiettivo non è semplicemente riavviare il sistema il più rapidamente possibile, ma evitare che un singolo errore si trasformi in un ripristino più complesso. Un processo di replica interrotto non significa automaticamente che le transazioni siano andate perse. E un riavvio riuscito non significa automaticamente che la destinazione sia corretta.
Il primo passo è non premere Riavvia.
Le attuali linee guida del NIST per la gestione degli incidenti separano le fasi di rilevamento, risposta, ripristino e miglioramento continuo. Questa disciplina più ampia favorisce la comprensione dell'accaduto e la conservazione di un contesto sufficiente per prendere una decisione di ripristino difendibile prima di modificare l'ambiente.*
Serve a stabilire dove si è interrotta l'elaborazione, cosa è continuato ad accadere alla fonte, qual è la situazione attuale ai fini del recupero e quali prove saranno necessarie in seguito.
Considerate nell'ordine corretto, le sette domande seguenti vi aiuteranno a svolgere questo processo.
Il messaggio "Replica interrotta" non è sufficientemente specifico per scegliere un percorso di ripristino.
Innanzitutto, individua dove si è verificato il problema. Si è verificato un problema di replica?
Quindi, stabilite la cronologia degli eventi. Il momento in cui qualcuno ha notato il problema potrebbe non coincidere con il momento in cui il problema è effettivamente iniziato.
Controllo
Un errore di acquisizione, un errore di applicazione, un backlog in crescita e un'interruzione del sistema di destinazione sono problemi diversi. Potrebbero richiedere team diversi e azioni di ripristino diverse. Si è pronti a procedere quando si può affermare: "Ecco dove si è interrotto il processo, ecco quando è successo e ecco cosa è interessato". Non semplicemente: "La replica è interrotta da qualche parte".
Questa è una delle domande più importanti nel processo di ripristino. Le piattaforme di replica possono memorizzare lo stato del processo o del riavvio, il che aiuta a determinare da dove l'elaborazione può riprendere dopo un'interruzione.
A seconda della fonte e della piattaforma, potresti imbatterti in termini come:
Non date per scontato che questi termini abbiano esattamente lo stesso significato su ogni piattaforma. La questione importante è se sia possibile identificare il punto in cui l'elaborazione si è interrotta e se tali informazioni siano sufficientemente affidabili da consentire il ripristino.
A seconda della sorgente e della piattaforma di replica, i team potrebbero incontrare diversi marcatori di ripristino e terminologie relative alla posizione di elaborazione. Per gli ambienti Db2 per z/OS, questi concetti possono includere RBA o LRSN.
La questione fondamentale è se esistano informazioni di ripristino valide e salvate e se il team comprenda cosa rappresentino tali informazioni. Per i processi RDRS Change Data Capture supportati, le informazioni di stato salvate consentono di riprendere l'elaborazione nella posizione corretta specifica per la sorgente dopo il riavvio. La posizione e la terminologia dipendono dalla tecnologia di origine.
Controllo
Una posizione nota al momento del ripristino è molto diversa dal ricostruire dove si pensa che la pipeline si sia interrotta durante un incidente. Sei pronto ad andare avanti quando il team ha uno stato di riavvio/processo identificabile e comprende cosa significa per questa origine e destinazione.
Se la sorgente ha continuato a funzionare, le transazioni potrebbero essere proseguite mentre la destinazione ha smesso di ricevere modifiche. Ciò significa che il team deve comprendere sia il divario di replica sia l'impatto a valle.
Controlla il divario
Per la CDC basata su log, verificare la conservazione dei log di origine e la cronologia archiviata. In alcuni ambienti CDC basati su log, i log di origine conservati o archiviati possono essere rilevanti per l'elaborazione delle modifiche accumulate durante un'interruzione. I prerequisiti esatti variano a seconda di:
Non dare per scontato che l'esistenza di log archiviati significhi automaticamente che ogni percorso di ripristino rimanga disponibile. Verifica cosa supporta la piattaforma per l'ambiente specifico. Controlla chi sta già utilizzando la destinazione:
Una pipeline può essere tecnicamente ancora recuperabile, mentre i dati obsoleti a valle stanno già diventando un problema aziendale. Sei pronto ad andare avanti quando hai capito cosa è successo durante l'interruzione, quanto sei indietro e chi potrebbe essere già stato coinvolto.
È in questa fase che i team spesso sentono la pressione di dover prendere una decisione rapida. A seconda della piattaforma, lo stato di ripristino salvato può essere chiamato checkpoint, segnalibro, stato di riavvio, posizione di elaborazione o in altro modo.
Ciò che conta è se esiste un percorso di ripristino supportato per lo scenario di errore effettivo. A volte la replica può riprendere dallo stato salvato e recuperare il ritardo. Altre volte è necessario un confronto o una risincronizzazione più mirati. E a volte è opportuno un ricaricamento più ampio.
A seconda dell'origine, della destinazione, della configurazione, della cronologia conservata e dello scenario di errore, i percorsi disponibili possono includere:
In alcuni ambienti, un carico iniziale completo potrebbe non essere necessario. La possibilità di procedere al ripristino senza di esso dipende da condizioni quali:
L'obiettivo non è evitare a tutti i costi un riavvio, bensì determinare se un percorso di riavvio o recupero supportato sia appropriato per questo specifico problema.
Controllo
Gli esperti descrivono l'alternativa, per quanto dolorosa, in modo molto chiaro: "riavvio completo" o addirittura "risincronizzazione da zero". La domanda a cui rispondere è: quando possiamo ripristinare il sistema senza ricominciare da capo e quando no? Si può procedere quando il team è in grado di spiegare perché il percorso di ripristino scelto è adatto a questo specifico incidente.
Un riavvio riuscito non dimostra di per sé che l'obiettivo sia corretto. A seconda dei dati e dell'architettura, i team dovrebbero verificare:
Un problema particolarmente facile da non notare è la cancellazione. Una pipeline può apparire integra mentre un record che è stato eliminato nell'origine è ancora presente nella destinazione.
Controllo
"Ora tutto funziona di nuovo" non ti dice se qualcosa è sfuggito lungo il percorso. Sei pronto ad andare avanti quando sai quali modalità di guasto sono rilevanti nel tuo ambiente e quali prove potrebbero rivelarle.
Non aspettare la fase di ripristino per decidere come validare il sistema. Prima di riavviare, definisci quali prove saranno necessarie prima che i team a valle vengano informati che il sistema di destinazione è nuovamente pronto per l'uso. A seconda dell'ambiente, la validazione può includere:
Nessun singolo metodo dimostra tutto. La domanda importante per ogni verifica di validazione è:
Cosa dimostra tutto ciò e cosa non dimostra?
Chiedere
L'errore che i team di ripristino commettono spesso è quello di presumere che "La replica è di nuovo in esecuzione" e "Il target è di nuovo affidabile" siano la stessa cosa.
Non lo sono.
Uno riguarda lo stato di salute del sistema. L'altro riguarda l'integrità dei dati. Il ripristino non è completo finché non si dispone di prove per entrambi. Si è pronti a procedere quando il team ha definito un approccio di convalida adeguato alla fonte, alla destinazione, all'incidente e al rischio aziendale.
Una pipeline può essere in esecuzione mentre il backlog è ancora presente. Può essere in fase di recupero mentre i dati a valle rimangono obsoleti. E può mostrare uno stato di processo sano mentre rimangono irrisolti i dubbi sui dati recuperati. Prima di chiudere l'incidente, verifica sia il processo che l'esito.
Controllo
Chiudere un incidente troppo presto può lasciare irrisolti problemi relativi a dati, convalide o impatti a valle, nascosti dietro uno stato di processo apparentemente corretto. È possibile chiudere l'incidente quando il team può affermare che la replica è stabile, i dati rilevanti sono stati convalidati, i team a valle comprendono lo stato attuale e si può spiegare cosa è successo.
Le sette domande presentate in questo articolo aiutano a identificare cosa potrebbe essere andato storto e da cosa dipende il recupero. Non dimostrano che l'obiettivo recuperato sia corretto. Dopo il recupero, il passo successivo consiste nel determinare se qualcuno di questi rischi si sia effettivamente verificato e se ci si possa fidare dell'obiettivo.
Risorsa correlata: La pipeline è di nuovo in funzione. Ci si può fidare dei dati?
Queste sette domande non riguardano la possibilità di premere Riavvia. Riguardano la capacità di rispondere a: Da dove possiamo riprendere? Cosa è successo durante l'interruzione? Possiamo recuperare senza ricominciare da capo? E come dimostreremo che nulla è andato perso?
Questa è la differenza tra far ripartire la pipeline e ripristinarla a uno stato affidabile.
| Domanda | Ti trovi in una posizione più forte quando… | Bandiera rossa |
| Cosa non ha funzionato? | Sai esattamente dove e quando si è interrotta l'elaborazione. | La squadra sta modificando l'ambiente prima di accertare l'accaduto. |
| Dove possiamo riprendere? | Lo stato di riavvio/processo salvato è disponibile e compreso. | La posizione di ripresa viene assunta o ricostruita durante l'incidente. |
| Cosa è successo durante questo periodo di interruzione? | Comprendi l'arretrato, la cronologia delle fonti disponibili e l'impatto a valle. | Nessuno sa quanto sia indietro rispetto all'obiettivo né chi lo stia usando. |
| Riavvio del checkpoint o risincronizzazione? | Il percorso di ripristino si basa su origine, destinazione, stato, cronologia e scenario di errore effettivi. | Riavviare o ricaricare completamente il sistema è semplicemente la risposta abituale. |
| Cosa potrebbe esserci di sbagliato? | Sono stati presi in considerazione i cambiamenti mancanti, i duplicati, le eliminazioni, i valori obsoleti e i rischi relativi all'ordinamento/schema. | Un riavvio riuscito viene considerato come prova che l'obiettivo è corretto. |
| Come lo dimostreremo? | È stata definita la convalida per i dati interessati e la finestra di ripristino. | "Il processo è ecologico" ne è la prova. |
| Siamo davvero guariti? | Sono compresi i ritardi, la convalida dei dati, la predisposizione a valle e le eccezioni rimanenti. | L'incidente si chiuderà non appena i dati riprenderanno a circolare. |
Ogni piattaforma del CDC prima o poi subirà guasti, interruzioni o eventi di ripristino.
La questione non è se gli incidenti accadono. La questione è quanto impegno, incertezza e rischio comportano quando accadono.
Un singolo episodio negativo non significa automaticamente che sia necessario un diverso approccio al trattamento. Tuttavia, il dolore ricorrente durante il periodo di recupero merita un'analisi più approfondita.
Chiediti se stai riscontrando ripetutamente:
Negli ambienti mainframe in cui Db2 per z/OS, VSAM, IMS o ADABAS sono i sistemi di registrazione, il comportamento di ripristino deve essere valutato per la specifica origine dati, e non dedotto da una generica affermazione di "supporto mainframe".
A quel punto, la domanda cambia da "Come risolviamo questo incidente?" a "Il nostro attuale approccio di replica ci fornisce la capacità di ripristino e la visibilità di cui abbiamo effettivamente bisogno?"
La capacità di recupero è una delle funzionalità più importanti da valutare in qualsiasi piattaforma CDC.
Rocket Data Replicate & Sync (RDRS) gestisce la replica aziendale tra ambienti mainframe e moderne piattaforme distribuite e cloud.
Se stai valutando RDRS per un ambiente come quello descritto sopra, applica gli stessi criteri che applicheresti a qualsiasi piattaforma di replica.
Le sette domande poste in questo articolo – cosa è andato storto, da dove possiamo riprendere, cosa è successo durante l'interruzione, quale percorso di ripristino si applica, cosa potrebbe non funzionare, come lo dimostreremo e come saremo certi di aver completato il processo – sono le stesse domande a cui rispondere per qualsiasi piattaforma, incluso RDRS, prima di poter considerare affidabile un target ripristinato.
Richiedi una dimostrazione di come funziona il ripristino nella tua specifica configurazione di origine e destinazione:
La possibilità di recuperare da un particolare guasto senza una risincronizzazione più ampia o un riavvio completo dipende dall'origine, dalla destinazione, dalla topologia, dalla cronologia conservata, dalla configurazione e dalla natura del guasto.
La domanda più utile non è: "La piattaforma supporta il ripristino?"
La richiesta è: "Mostrateci come funziona il ripristino negli scenari di errore che il nostro ambiente si trova effettivamente ad affrontare."
*NIST SP 800-61 Rev. 3: Raccomandazioni e considerazioni per la risposta agli incidenti
Rimettere in moto la replica è solo una parte del lavoro. La domanda successiva è:
Come possiamo dimostrare che i dati recuperati sono completi?
Impara a definire la finestra di recupero, a determinare quali prove sono disponibili, a indagare sulle discrepanze e a stabilire quando il bersaglio è pronto per l'utilizzo successivo.
Il vostro sistema di sviluppo del CDC non è fermo. Siete sicuri che sia in salute?
Prima di riavviare, sai cosa ha causato l'errore?
La pipeline è di nuovo in funzione. Ci si può fidare dei dati?
Quando un problema di ripristino del CDC si trasforma in un problema della piattaforma?
Come si fa a sapere se le richieste di rimborso di un fornitore del CDC saranno fondate?
Come elaborare un business case per gli investimenti del CDC per la ripresa
