Sql Server: I database di sistema e i modelli di recupero

Distribution

Apparso con Sql Server 2008 R2, il database 'Distribution' registra i dati ed i metadati per tutte le repliche definite nell’istanza.

master

Il database 'master' registra le informazione a livello di sistema di un server Sql, quali ad esempio, account utente, linked server end-points; inoltre registra anche la presenza degli altri database (di sistema ed utente), dei loro file nonché delle informazioni di inizializzazione di Sql Server.

Fino alla versione 2008R2 registrava anche gli oggetti di sistema (ad esempio, sys.objects); dalla versione 2012 queste informazioni sono state spostate nel database 'resource'.

model

Il database 'model' viene usato come modello dall’istruzione CREATE DATABASE (o dalla analoga funzione nel Management Studio); ogni oggetto qui creato (tabella, stored procedure, tipo di dato, funzioni…), ma anche le opzioni del database verranno riportati anche nel nuovo database.

msdb

Il database 'msdb' viene usato da Sql Server Agent, Service Broker, Database Mail e Management Studio. Per default il database 'msdb' viene impostato al Recovery Model 'Simple', ma se si desidera le tabelle di storicizzazione dei backup e restore, Microsoft consiglia di impostare il Recovery Model a 'Full'.

Bisogna però prestare attenzione al fatto che ogni volta che i database di sistema vengono ricostruiti (ad esempio per un upgrade) il Recovery Model viene reimpostato a 'Simple'.

Resource

Apparso con Sql Server 2012, è un database in sola lettura e che non può contenere dati (o metadati) utente. Contiene fisicamente tutti gli oggetti di sistema che poi appaiono logicamente nello schema 'sys' di ciasun database.

tempdb

Il database 'tempdb' è accessibile a tutti gli utenti connessi all’istanza Sql Server e contiene oggetti temporanei creati esplicitamente (tabelle temporanee e variabili di tipo tabella, cursori o stored procedure temporanee), oggetti creati internamente da Sql Server e così via.

Il database viene ricreato ad ogni avvio di Sql Server; gli oggetti qui creati vengono automaticamente distrutti alla chiusura della connessione. Di conseguenza non c’è mai alcun dato da salvare nel database tempdb: tra l’altro le operazioni di backup e restore sul database sono inibite.

Recovery Model

Il Recovery Model è una proprietà di un database che determina il modo in cui saranno registrate le transazioni, se è necessario (e permesso) eseguire il backup del log delle transazioni e quali tipi di operazioni di ripristino sono disponibili.

Simple

Non richiede backup del log delle transazioni; lo spazio del log viene automaticamente recuperato. Presenta però l’inconveniente di consentire il recupero dei dati solo fino all’ultimo backup (completo) effettuato e valido; tutto ciò che è successivo viene perso.

Full

Richiede il backup del log delle transazioni ed è possibile recuperare i dati fino ad un momento arbiitrariamente scelto, purché i backup fino a quel momento siano validi, minimizzando il rischio di perdita di dati (limitati al caso in cui la parte terminale del log sia danneggiata).

Bulk logged

Richiede il backup del log delle transazioni, riduce lo spazio necessario al log delle transazioni e consente il recupero dei dati fino al termine dell’ultimo backup. Il rischio di perdita di dati è limitato al caso in cui sia danneggiato il log delle transazioni oppure sono state eseguite altre operazioni bulk successivamentne all’ultimo backup del log.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

*