Database Oracle corrotto: il primo errore è il riavvio

26 Ago 26

Sono le 3 del mattino. Un job batch si blocca, i log iniziano a riempirsi di ORA-01578, qualcuno in reparto IT propone la soluzione più ovvia: riavviare l’istanza e vedere se “si risolve da sola”. Non si risolve da sola. Quel riavvio, nella maggior parte dei casi, è il momento esatto in cui un problema recuperabile diventa una perdita di dati permanente.

Chi ci chiama in queste situazioni ha già capito che il tempo non è dalla sua parte. Non vuole una spiegazione teorica su cosa sia un block corruption. Vuole sapere cosa fare, in che ordine, e chi deve farlo.

Il riavvio è il primo errore

La corruzione di un database Oracle si manifesta quasi sempre con sintomi ambigui: query che restituiscono errori intermittenti, un tablespace che non si apre, un ORA-600 che compare senza pattern chiaro. La reazione istintiva è forzare un restart, sperando che il problema si “auto-corregga” al riavvio dell’istanza.

Il riavvio non corregge nulla. Sovrascrive lo stato del sistema nel momento esatto in cui quello stato ti serviva per capire cosa è successo e cosa è ancora recuperabile. Ogni checkpoint successivo alla corruzione è un’informazione che perdi per sempre.

Corruzione logica o corruzione fisica: non è la stessa emergenza

Prima regola: non tutte le corruzioni sono uguali, e trattarle come se lo fossero è il secondo errore più comune dopo il riavvio.

  • Corruzione fisica — blocchi danneggiati a livello di storage, spesso causati da problemi hardware, controller RAID, o interruzioni improvvise durante una scrittura.
  • Corruzione logica — struttura dei dati incoerente, indici disallineati, constraint violati: il blocco è leggibile, ma il contenuto non ha senso.

La diagnosi corretta cambia completamente la strategia di intervento. Confonderle significa applicare il rimedio sbagliato — e nel frattempo, il vero problema continua a propagarsi.

I passi che contano davvero

Prima di toccare qualsiasi cosa, la sequenza è sempre la stessa, indipendentemente dalla versione o dall’architettura:

  • Isolare l’istanza — nessun nuovo accesso in scrittura, nessun job automatico che possa aggravare la situazione.
  • RMAN VALIDATE DATABASE — per mappare esattamente quali blocchi sono corrotti e quali no, senza modificare nulla.
  • DBVERIFY sui datafile sospetti, per confermare l’estensione reale del danno prima di decidere.
  • Congelare lo stato attuale con un backup a freddo della situazione così com’è, corrotta o non corrotta — è la tua unica assicurazione contro un secondo errore.
  • Solo dopo, valutare flashback database, restore point o recovery via RMAN, in base a cosa la diagnosi ha effettivamente rivelato.

Chi salta il primo passo per “guadagnare tempo” quasi sempre lo perde due volte.

RTO e RPO non sono slide da comitato

In molte aziende, RTO e RPO esistono solo su un documento di business continuity mai testato davvero. Nel momento della corruzione, quel documento diventa l’unica cosa che conta: quanto tempo puoi restare fermo, e quanti dati puoi permetterti di perdere tra l’ultimo backup buono e l’evento.

Se non hai mai simulato un recovery reale, non lo scopri leggendo la documentazione Oracle alle 4 del mattino. Lo scopri quando è troppo tardi per cambiare strategia.

Perché serve un DBA senior, non un tutorial

Su forum e community trovi decine di guide su come “risolvere ORA-01578”. Nessuna di quelle guide conosce la tua architettura, il tuo storage, la tua storia di backup, i tuoi vincoli di compliance. Applicare un comando copiato da uno stack overflow su un database di produzione corrotto è come operare a scatola chiusa — funziona, finché non funziona.

Un DBA certificato con esperienza reale su recovery critici non segue un tutorial: costruisce una diagnosi, valuta le opzioni in base al danno effettivo, e decide cosa sacrificare e cosa salvare — perché in certe situazioni, salvare tutto non è un’opzione, e bisogna scegliere in fretta cosa è davvero irrinunciabile.

Cosa facciamo, concretamente

La nostra divisione Oracle & DB Engineering lavora esattamente su questo tipo di emergenze: amministrazione, tuning, backup e migrazioni cloud, con DBA certificati disponibili on-site o in outsourcing. Non arriviamo con un manuale generico — arriviamo con una checklist di diagnosi già pronta e la capacità di attivare un intervento in presenza entro 48 ore in tutta Italia, o in remoto in tempi ancora più stretti quando la situazione lo richiede.

Se il tuo database Oracle è corrotto in questo momento: fermati prima di riavviare. Isola l’istanza. Congela lo stato. Poi chiamaci — la finestra in cui i dati sono ancora recuperabili è più stretta di quanto pensi, ma esiste, e va usata bene, non in fretta e male.

Articoli Correlati

Ransomware attivo: le prime 4 ore che contano

Ransomware attivo: le prime 4 ore che contano

Sono le 3 di notte. Un dipendente del turno notturno vede i file condivisi trasformarsi in estensioni sconosciute. Poi compare la schermata: un countdown, un indirizzo Bitcoin, la minaccia di pubblicare i dati. La prima reazione, quasi sempre, è sbagliata: si spegne...

leggi di più
Prima di aprire una sede estera, fai due diligence

Prima di aprire una sede estera, fai due diligence

Un’azienda italiana decide di espandersi all’estero. Apre una sede, assume un country manager locale, traduce il sito in inglese. Sei mesi dopo scopre che il partner commerciale ha un contenzioso aperto in tribunale, che il fornitore IT scelto non è...

leggi di più
La segretaria costa uno stipendio. DIREKTA no.

La segretaria costa uno stipendio. DIREKTA no.

Sono le 22:40. Un imprenditore deve spostare una riunione delle 9, rispondere a un fornitore che minaccia di bloccare una consegna e riassumere gli appunti di un incontro fatto tre ore prima, prima che si dimentichi i punti chiave. La segretaria è a casa. Ha smesso di...

leggi di più