Ripristino di file e filegroup rinominati

Il nome di un file o di un filegroup può essere modificato e persino riutilizzato altrove. Il Motore di database di SQL Server tiene traccia internamente dei file e dei filegroup tramite identificatori univoci globali (GUID, Globally Unique Identifier). Nella maggior parte delle situazioni un'operazione di ripristino è in grado di riconoscere e gestire correttamente la modifica di un nome.

Un nome modificato viene gestito diversamente a seconda che il file da ripristinare sia in linea o non in linea.

  • Durante un ripristino non in linea, il catalogo del database, incluso l'elenco corrente dei filegroup, non è accessibile. L'operazione di ripristino mette in corrispondenza il nome specificato con i nomi dei file o dei filegroup inclusi nel backup. Se pertanto il nome è stato riutilizzato dopo la creazione del backup, è possibile che venga ripristinato il file errato. In un secondo momento, tuttavia, verranno eliminati tutti i file non inclusi nel database in corrispondenza del punto di recupero. Se da un lato tale operazione garantisce la correttezza del database, dall'altro implica ulteriori attività di ripristino e rollforward, inevitabili in quanto il punto di ripristino non è precedentemente noto e non è quindi possibile prevedere i file presenti nel database in corrispondenza di un punto sconosciuto.

  • Durante un ripristino in linea il catalogo del database è accessibile. Se in fase di ripristino viene specificato il nuovo nome di un file o un filegroup, il Motore di database otterrà il GUID corrispondente dal catalogo del database e ripristinerà il file o il filegroup con tale GUID se è presente nel backup.

    Il GUID non è presente nel catalogo se viene specificato il vecchio nome. Se il GUID corrisponde a quello di un file o di un filegroup corrente incluso nel backup, il Motore di database ripristinerà tale file o filegroup dal backup.

    Se invece il GUID del backup non corrisponde a uno dei file o dei filegroup correnti, si verificherà un errore.

Gestione di un nome di file o filegroup riutilizzato durante il ripristino

Il nome di un file o di un filegroup eliminato può essere riutilizzato in un secondo momento. È ad esempio possibile riutilizzare il nome di un filegroup precedente per un nuovo file. Tale operazione è simile alla ridenominazione di un file o di un filegroup. Quando si riutilizza un nome, tuttavia, lo stesso nome viene utilizzato per fare riferimento a oggetti diversi in momenti diversi.

L'operazione di ripristino gestisce automaticamente le modifiche relative al numero e ai nomi di file e filegroup. Per semplificare le procedure di ripristino, è consigliabile eseguire un backup di database completo dei file e dei filegroup nuovi o modificati non appena sono stati modificati.

Il Motore di database gestisce un file rinominato il cui nome è stato riutilizzato dopo l'ultimo backup in base all'accessibilità del catalogo del database e alla presenza del nome nel catalogo:

  • Se il catalogo del database è accessibile e il nome è presente nel catalogo, il Motore di database determinerà il GUID del file o del filegroup corrispondente e ripristinerà il file o il filegroup con tale GUID dal backup. Se il nome non corrisponde a uno dei file o dei filegroup correnti, si verificherà un errore.

  • Se il catalogo non è accessibile perché il ripristino del database viene eseguito in modalità non in linea, il Motore di database determinerà l'oggetto da ripristinare in base alle informazioni incluse nel backup, come descritto più indietro in questo argomento.

Il Motore di database può impedire il riutilizzo di un nome fino all'esecuzione di un backup del log. In tal caso, viene visualizzato un messaggio di errore.