Spese generali di registrazione

Il gestore database conserva i file di log che registrano tutte le modifiche del database. Esistono due strategie di registrazione: la registrazione circolare e la registrazione di archivio.

  • Con la registrazione circolare, i file di log vengono riutilizzati (a cominciare dal file di log iniziale) quando i file disponibili si riempiono. I record di log sovrascritti non sono recuperabili.
  • Con la registrazione di archivio, i file di log vengono archiviati quando vengono riempiti con record di log. La conservazione dei log abilita il recupero rollforward, in cui le modifiche al database (unità di lavoro completate o transazioni) registrate nei file di log possono essere riapplicate durante il recupero di emergenza.
Tutte le modifiche ai dati regolari e alle pagine di indice vengono scritte sul buffer di log prima di essere scritte sul disco dal processo del logger. L'elaborazione dell'istruzione SQL deve attendere che i dati di log vengano scritti sul disco:
  • Su COMMIT
  • Finché le pagine di dati corrispondenti non vengono scritte su disco, poiché il server Db2® utilizza la registrazione write - ahead, in cui non tutte le pagine di dati e di indice modificate devono essere scritte su disco quando una transazione viene completata con un'istruzione COMMIT
  • Fino a quando non vengono apportate modifiche (per lo più derivanti dall'esecuzione di istruzioni del linguaggio di definizione dati) ai metadati
  • Quando il buffer di log è pieno

Db2 gestisce la scrittura dei dati di log su disco, compresi l'avvio dell'I/O e la quantità di dati, al fine di ridurre al minimo il tempo complessivo di elaborazione delle istruzioni SQL.

Le modifiche ai LOB (large object) e LONG VARCHARs vengono tracciate tramite il paging shadow. Le modifiche della colonna LOB non vengono registrate a meno che non si specifichi la conservazione del log e la colonna LOB sia stata definita senza la clausola NOT LOGGED nell'istruzione CREATE TABLE. Le modifiche alle pagine di allocazione per i tipi di dati LONG o LOB vengono registrate come pagine di dati regolari. I valori LOB in linea partecipano completamente alla registrazione di aggiornamento, inserimento o eliminazione, come se fossero valori VARCHAR.