Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Questo articolo documenta gli argomenti descritti nelle sezioni Sintassi del RESTORE {DATABASE|LOG} e dell'insieme associato di istruzioni ausiliarie: RESTORERESTORE FILELISTONLY,RESTORE HEADERONLYRESTORE ,RESTORE LABELONLYRESTORE ,RESTORE REWINDONLYRESTORE , e .RESTORERESTORE VERIFYONLY La maggior parte degli argomenti sono supportati solo da un subset di queste sei istruzioni. Informazioni dettagliate sono contenute nella descrizione dell'argomento.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
Per informazioni sulla sintassi, vedere gli articoli seguenti:
Argomenti
DATABASE
Supportato da:RESTORE
Specifica il database di destinazione. Se viene specificato un elenco di file e filegroup, vengono ripristinati solo i file e filegroup dell'elenco.
Per un database impostato per l'uso del modello di recupero con registrazione completa o con registrazione minima delle operazioni bulk, in SQL Server nella maggior parte dei casi è necessario eseguire il backup della parte finale del log prima di ripristinare il database. Ripristinare un database senza prima fare il backup della coda del log comporta un errore, a meno che l'istruzione RESTOREDATABASE non contenga la clausola WITH REPLACE o WITH STOPAT, che deve specificare un orario o una transazione avvenuta dopo la fine del backup dei dati. Per altre informazioni sui backup della parte finale del log, vedere Backup della parte finale del log (SQL Server).
LOG
Supportato da:RESTORE
Specifica che è necessario applicare un backup del log delle transazioni al database. I log delle transazioni devono essere applicati in ordine sequenziale. In SQL Server viene eseguito un controllo del log delle transazioni di cui è stato eseguito il backup per verificare che le transazioni vengano caricate nel database corretto e nella sequenza corretta. Per applicare più log delle transazioni, utilizzare l'opzione NORECOVERY in tutte le operazioni di ripristino, ad eccezione dell'ultima.
Nota
In genere, l'ultimo log ripristinato è il backup della parte finale del log. Il termine backup della parte finale del log indica un backup del log creato appena prima del ripristino di un database, in genere in seguito a un errore del database. La creazione di un backup della parte finale del log per il database potenzialmente danneggiato consente di evitare perdite di dati, grazie all'acquisizione della sezione del log per cui non è ancora disponibile una copia di backup, ovvero la parte finale del log. Per altre informazioni, vedere Backup della parte finale del log (SQL Server).
Per altre informazioni, vedere Applicazione dei backup di log delle transazioni (SQL Server).
{ database_name | @database_name_var }
Supportato da:RESTORE
Database in cui viene ripristinato il log o il database completo. Se indicato in forma di variabile (@database_name_var), questo nome può essere specificato come costante stringa (@database_name_var = database_name) oppure come variabile di tipo stringa di caratteri, ad eccezione del tipo di dati ntext o text.
< > file_or_filegroup_or_page [ ,... n ]
Supportato da:RESTORE
Specifica il nome di un file logico, gruppo di file o pagina da includere in un'istruzione RESTOREDATABASE o RESTORE LOG. È possibile specificare un elenco di file o filegroup.
In un database che usa il modello di recupero con registrazione minima, le opzioni FILE e FILEGROUP sono consentite solo se i file o i filegroup di destinazione sono di sola lettura o se si tratta di un ripristino PARTIAL, il cui risultato è un filegroup inattivo.
Per un database che utilizza il modello di recupero completo o bulk-loged, dopo aver ripristinato RESTOREDATABASE uno o più file, file group e/o pagine, tipicamente, è necessario applicare il registro delle transazioni ai file contenenti i dati ripristinati; applicare il log rende quei file coerenti con il resto del database. Esistono le eccezioni seguenti:
Se i file ripristinati erano in sola lettura prima dell'ultima copia di salvataggio, allora non è necessario applicare un registro delle transazioni e l'estratto RESTORE conto ti informa di questa situazione.
Se il backup contiene il filegroup primario e viene eseguito un ripristino parziale. In questo caso, l'applicazione del log non è necessaria perché il log viene ripristinato automaticamente dal set di backup.
FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }
Specifica il nome di un file da includere nell'operazione di ripristino del database.
FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }
Specifica il nome di un filegroup da includere nell'operazione di ripristino del database.
L'argomento FILEGROUP è consentito nel modello di recupero con registrazione minima solo se il filegroup specificato è di sola lettura e se viene eseguito un ripristino parziale, ovvero se si usa la clausola WITH PARTIAL. Tutti i filegroup di lettura/scrittura non ripristinati vengono contrassegnati come inattivi e non possono pertanto essere ripristinati nel database risultante
READ_WRITE_FILEGROUPS
Seleziona tutti i filegroup di lettura/scrittura. Questa opzione risulta particolarmente utile quando sono presenti filegroup di sola lettura che si desidera ripristinare dopo i filegroup di lettura/scrittura.
PAGE = 'file:page [ ,... n ]'
Specifica un elenco di una o più pagine per un ripristino della pagina, supportato solo nei database che utilizzano i modelli di recupero con registrazione completa o con registrazione minima delle operazioni bulk. Sono disponibili i valori seguenti:
PAGE
Indica un elenco di uno o più file e pagine.
file
ID del file contenente una pagina specifica da ripristinare.
page
ID della pagina da ripristinare nel file.
n
Segnaposto che indica la possibilità di specificare più pagine.
In un singolo file di una sequenza di ripristino è possibile ripristinare al massimo 1000 pagine. Tuttavia, se il numero di pagine danneggiate in un file è consistente, è consigliabile valutare la possibilità di ripristinare l'intero file anziché le singole pagine.
Nota
Le operazioni di recupero della pagina non vengono mai eseguite.
Per altre informazioni sul ripristino della pagina, vedere Ripristino di pagine (SQL Server).
[ ,... n ]
Segnaposto che indica la possibilità di specificare più file, filegroup e pagine in un elenco delimitato da virgole. Il numero di file e filegroup che è possibile specificare è illimitato.
FROM { <backup_device> [ ,... n ] | <> database_snapshot }
In genere, specifica i dispositivi di backup da cui ripristinare il backup. In alternativa, in un'istruzione RESTOREDATABASE , la clausola FROM può specificare il nome di uno snapshot del database a cui si sta ripristinando il database, nel qual caso non è consentita alcuna clausola WITH.
Se la clausola FROM viene omessa, non viene eseguito il ripristino del backup, ma il recupero del database. Ciò consente di recuperare un database ripristinato con l'opzione NORECOVERY oppure di passare a un server di standby. Se si omette la clausola FROM, è necessario specificare l'opzione NORECOVERY, RECOVERY o STANDBY nella clausola WITH.
< > backup_device [ ,... n ]
Specifica i dispositivi di backup logici o fisici da utilizzare per il ripristino.
Supportato da:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, RESTORE REWINDONLY, e RESTORE VERIFYONLY.
<backup_device>::= Specifica il dispositivo di backup logico o fisico da usare per l'operazione di backup, come segue:
{ logical_backup_device_name | @logical_backup_device_name_var }
Nome logico, conforme alle regole per gli identificatori, del o dei dispositivi di backup creati tramite sp_addumpdevice da cui viene ripristinato il database. Se indicato in forma di variabile (@logical_backup_device_name_var), il nome del dispositivo di backup può essere specificato come costante stringa (@logical_backup_device_name_var = logical_backup_device_name) oppure come variabile con tipo di dati stringa di caratteri, ad eccezione dei tipi di dati ntext o text.
{DISK | TAPE } = { 'physical_backup_device_name'physical_backup_device_name_var | @ }
Consente di ripristinare i backup dal dispositivo disco o nastro specificato. I tipi di dispositivo disco e nastro devono essere specificati con il nome effettivo (ad esempio percorso completo e nome di file) del dispositivo: DISK ='Z:\SQLServerBackups\AdventureWorks.bak' o TAPE ='\\\\.\TAPE0'. Se indicato in forma di variabile (@physical_backup_device_name_var), il nome del dispositivo può essere specificato come costante stringa (@physical_backup_device_name_var = 'physical_backup_device_name') oppure come variabile con tipo di dati stringa di caratteri, ad eccezione dei tipi di dati ntext o text.
Se si utilizza un server di rete avente un nome UNC (che deve contenere il nome del server), specificare un dispositivo disco. Per altre informazioni su come usare i nomi UNC, vedere Dispositivi di backup (SQL Server).
L'account con cui esegui SQL Server deve avere accesso READ al computer remoto o al server di rete per poter eseguire un'operazioneRESTORE.
n
Segnaposto che indica la possibilità di specificare fino a 64 dispositivi di backup in un elenco delimitato da virgole.
Per una sequenza di ripristino, la necessità o meno di utilizzare lo stesso numero di dispositivi di backup utilizzato per la creazione del set di supporti cui appartengono i backup dipende dal tipo di ripristino, ovvero se si tratta di un ripristino in linea o non in linea.
Il ripristino offline consente il ripristino di un backup utilizzando un numero minore di dispositivi di backup rispetto a quelli utilizzati per creare il backup.
Il ripristino online richiede tutti i dispositivi di backup del backup. Non è possibile eseguire il ripristino con un numero inferiore di dispositivi.
Si consideri, ad esempio, il caso del backup di un database eseguito su quattro unità nastro connesse al server. Per un ripristino in linea è necessario che le quattro unità siano connesse al server, mentre per un ripristino non in linea è possibile eseguire l'operazione anche se nel computer sono disponibili meno di quattro unità.
Nota
Per eseguire il ripristino di un backup da un set di supporti con mirroring, è possibile specificare un solo mirror per ogni gruppo di supporti. In presenza di errori, tuttavia, la disponibilità degli altri mirror può consentire una risoluzione rapida di alcuni problemi di ripristino. È possibile sostituire un volume di un supporto danneggiato con il volume corrispondente da un altro mirror. Per i ripristini non in linea, è possibile eseguire il ripristino da un numero minore di dispositivi che di gruppi di supporti, ma ogni gruppo viene elaborato una sola volta.
< >database_snapshot::=
Supportato da:RESTORE DATABASE
= DATABASE_SNAPSHOT database_snapshot_name
Ripristina il database usando lo snapshot del database specificato da database_snapshot_name. L'opzione DATABASE_SNAPSHOT è disponibile solo per un ripristino di database completo. In un'operazione di ripristino di questo tipo, lo snapshot del database sostituisce un backup completo del database.
Per eseguire un'operazione di ripristino è necessario che lo snapshot del database specificato sia l'unico esistente per il database. Durante l'operazione, sia lo snapshot del database che il database di destinazione vengono contrassegnati come In restore. Per altre informazioni, vedere la sezione "Osservazioni" in RESTORE DATABASE.
Opzioni WITH
Specifica le opzioni da utilizzare per un'operazione di ripristino. Per informazioni di riepilogo sull'uso delle singole opzioni in ogni istruzione, vedere "Riepilogo del supporto delle opzioni WITH" di seguito in questo articolo.
Nota
Le opzioni WITH sono organizzate qui nello stesso ordine della sezione "Sintassi" in RESTORE {DATABASE|LOG}.
PARTIAL
Supportato da:RESTORE DATABASE
Specifica un'operazione di ripristino parziale che consente di ripristinare solo il filegroup primario e i filegroup secondari specificati. L'opzione PARTIAL consente di selezionare il filegroup primario in modo implicito. Non è necessario specificare FILEGROUP = 'PRIMARY'. Per ripristinare un filegroup secondario, è necessario specificare in modo esplicito il filegroup tramite l'opzione FILE o FILEGROUP.
L'opzione PARZIALE non è consentita nelle RESTORE istruzioni LOG.
L'opzione PARTIAL consente di avviare la fase iniziale di un ripristino a fasi che consente il ripristino dei filegroup rimanenti in un momento successivo. Per altre informazioni, vedere Ripristini a fasi (SQL Server).
[ RECUPERO | NESSUNA RECUPERAZIONE | IN ATTESA ]
Supportato da:RESTORE
RECOVERY
Imposta l'operazione di ripristino in modo che venga eseguito il rollback di tutte le transazioni di cui non è stato eseguito il commit. Dopo il processo di recupero, il database è pronto per essere utilizzato. Se non si specifica NORECOVERY, RECOVERY o STANDBY, il valore predefinito è RECOVERY.
Se sono previste operazioni successive RESTORE (RESTORE LOG, o RESTOREDATABASE dal differenziale), dovrebbero essere specificate NORECOVERY o STANDBY.
Per il ripristino di set di backup da una versione precedente di SQL Server, potrebbe essere necessario un aggiornamento del database. Tale aggiornamento viene eseguito automaticamente quando si specifica l'opzione WITH RECOVERY. Per altre informazioni, vedere Applicazione dei backup di log delle transazioni (SQL Server).
Nota
Se si omette la clausola FROM, è necessario specificare l'opzione NORECOVERY, RECOVERY o STANDBY nella clausola WITH.
NORECOVERY
Imposta l'operazione di ripristino in modo che non venga eseguito il rollback delle transazioni di cui non è stato eseguito il commit. Se si prevede di dover applicare un altro log delle transazioni in seguito, specificare l'opzione NORECOVERY o STANDBY. Se non si specifica NORECOVERY, RECOVERY o STANDBY, il valore predefinito è RECOVERY. Durante un'operazione di ripristino non in linea con l'opzione NORECOVERY, il database non è utilizzabile.
Per il ripristino di un backup del database e di uno o più log di transazioni o ogni volta che sono necessari più RESTORE istruzioni (ad esempio, durante il ripristino di un backup completo del database seguito da un backup differenziale), RESTORE è necessaria l'opzione WITH NORECOVERY su tutte le istruzioni tranne che sull'ultima RESTORE sentenza. Una buona pratica è usare WITH NORECOVERY su TUTTI gli istruzioni in una sequenza di ripristino a più passi fino a raggiungere il punto di recupero desiderato, e poi usare una istruzione WITH RECOVERY separata RESTORE solo per il recupero.
Se si utilizza l'opzione NORECOVERY per un'operazione di ripristino di un file o filegroup, il database viene mantenuto forzatamente nello stato di ripristino dopo l'operazione di ripristino. Ciò risulta utile in una delle situazioni seguenti:
Viene eseguito uno script di ripristino e il log viene sempre applicato.
Viene utilizzata una sequenza di operazioni di ripristino di file e si desidera che il database non venga utilizzato tra due operazioni di ripristino.
In alcuni RESTORE casi, CON NORECOVERY roll, il roll forward viene impostato abbastanza da essere coerente con il database. In questi casi il rollback non viene eseguito e i dati rimangono offline, come previsto con questa opzione. Il motore di database, tuttavia, genera un messaggio informativo indicante che il set di rollforward è pronto per essere recuperato usando l'opzione RECOVERY.
STANDBY = standby_file_name
Specifica il nome del file standby che consente di eseguire il rollback degli effetti del recupero. L'opzione STANDBY è consentita per il ripristino non in linea, inclusi ripristini parziali. Non è invece consentita per il ripristino in linea. Se si tenta di specificare l'opzione STANDBY per un'operazione di ripristino in linea, l'operazione avrà esito negativo. L'opzione STANDBY non è inoltre consentita quando è necessario l'aggiornamento del database.
Il file di standby viene utilizzato per mantenere una pre-immagine "copy-on-write" per le pagine modificate durante il passaggio di annullamento di un RESTORE WITH STANDBY. Il file standby consente di attivare un database per l'accesso in sola lettura tra due operazioni di ripristino del log delle transazioni e può essere utilizzato in server warm standby o in situazioni di recupero speciali in cui risulta utile controllare il database tra operazioni di ripristino del log successive. Dopo un'operazione RESTORE WITH STANDBY, il file di annullamento viene automaticamente eliminato dall'operazione successiva RESTORE . Se questo file di riserva viene eliminato manualmente prima della successiva RESTORE operazione, allora l'intero database deve essere ripristinato. Mentre il database è in stato STANDBY, è consigliabile gestire questo file standby con la stessa cautela utilizzata per qualsiasi altro file del database. A differenza degli altri file di database, questo file viene mantenuto aperto dal motore di database solo durante le operazioni di ripristino attive.
Il parametro standby_file_name specifica un file standby il cui percorso viene archiviato nel log del database. Se il nome specificato è già usato da un file esistente, quest'ultimo viene sovrascritto. In caso contrario, il file viene creato dal motore di database.
Le dimensioni richieste per un determinato file standby dipendono dal volume delle azioni di rollback risultanti dalle transazioni di cui non è stato eseguito il commit, rilevate durante l'operazione di ripristino.
Importante
Se lo spazio disponibile nell'unità contenente il file standby specificato diventa insufficiente, l'operazione di ripristino viene arrestata.
Per un confronto tra RECOVERY e NORECOVERY, vedi la sezione "Osservazioni" in RESTORE.
LOADHISTORY
Supportato da:RESTORE VERIFYONLY
Specifica che l'operazione di ripristino carica le informazioni nelle tabelle di msdb cronologia. Per il singolo set di backup in corso di verifica, l'opzione LOADHISTORY consente di caricare le informazioni sui backup di SQL Server archiviati nel set di supporti nelle tabelle della cronologia di backup e di ripristino del database msdb. Per altre informazioni sulle tabelle della cronologia, vedere Tabelle di sistema (Transact-SQL).
Tenere presente che, usando LOADHISTORY per i backup già esistenti nelle tabelle della cronologia msdb, verranno aggiunte le stesse informazioni con un nuovo backup_set_id. Inoltre, se si usa LOADHISTORY per ricreare la cronologia dei backup in msdb, in un server diverso o dopo che è stata eliminata dal server originale, è consigliabile eseguire i comandi di ripristino per i backup nell'ordine in cui sono stati ottenuti. Ciò garantisce che la catena LSN rimanga intatta e il ripristino guidato SSMS leggerà correttamente la cronologia di backup per generare la sequenza di ripristino corretta. L'uso di LOADHISTORY con cronologia di backup ricreata in ordine non corretto può generare un errore durante il tentativo di ripristino ("Impossibile creare un piano di ripristino a causa di interruzioni nella catena LSN. (Microsoft.SqlServer.SmoExtended)").
< > general_WITH_options [ ,... n ]
Le seguenti opzioni generali WITH sono tutte supportate nelle RESTOREDATABASE istruzioni LOG RESTORE e LOG. Alcune di queste opzioni sono supportate anche da una o più istruzioni ausiliarie, come indicato.
Opzioni relative all'operazione di ripristino
Queste opzioni influiscono sul comportamento dell'operazione di ripristino.
MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name' [ ,... n ]
Supportato da:RESTORE e RESTORE VERIFYONLY
Specifica che il file di dati o di log il cui nome logico è specificato da logical_file_name_in_backup deve essere spostato ripristinandolo nel percorso specificato da operating_system_file_name. Il nome di file logico di un file di dati o di log in un set di backup corrisponde al relativo nome logico nel database al momento della creazione del set di backup.
n è un segnaposto che indica la possibilità di specificare istruzioni MOVE aggiuntive. Specificare un'istruzione MOVE per ogni file logico che si desidera ripristinare dal set di backup in un nuovo percorso. Per impostazione predefinita, il file logical_file_name_in_backup viene ripristinato nel percorso originale.
Nota
Per ottenere un elenco dei file logici dal set di backup, si usa RESTORE FILELISTONLY.
Se una RESTORE sentenza viene utilizzata per spostare un database sullo stesso server o copiarlo su un server diverso, l'opzione MOVE potrebbe essere necessaria per spostare i file del database ed evitare collisioni con file esistenti.
Quando viene utilizzata con RESTORE LOG, l'opzione MOVE può essere usata solo per rilocalizzare file aggiunti durante l'intervallo coperto dal ripristino del log. Ad esempio, se il backup del log contiene un'operazione di aggiunta file per file file23, questo file può essere spostato utilizzando l'opzione MOVE su RESTORE LOG.
Se usata con il backup dello snapshot di Microsoft SQL Server, l'opzione MOVE può essere usata solo per rilocare i file in un BLOB di Azure all'interno dello stesso account di archiviazione del BLOB originale. L'opzione MOVE non può essere usata per ripristinare il backup dello snapshot in un file locale o in un account di archiviazione diverso.
Se una RESTORE VERIFYONLY dichiarazione viene utilizzata quando si pianifica di spostare un database sullo stesso server o copiarlo su un server diverso, l'opzione MOVE potrebbe essere necessaria per verificare che sia disponibile spazio sufficiente nel target e per identificare potenziali collisioni con file esistenti.
Per altre informazioni, vedere Copiare database tramite backup e ripristino.
CREDENTIAL
Supportato da:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, e RESTORE VERIFYONLY.
Si applica a: SQL Server 2012 (11.x) SP1 CU2 e versioni successive
Usato solo quando si ripristina un backup da Archiviazione BLOB di Microsoft Azure.
Nota
Con SQL Server 2012 (11.x) SP1 CU2 fino a SQL Server 2016 (13.x), quando si esegue il ripristino dall'URL è possibile operare solo su un singolo dispositivo. Per eseguire il ripristino da più dispositivi durante il ripristino da URL, è necessario usare SQL Server 2016 (13.x) o versione successiva ed è necessario usare i token di firma di accesso condiviso. Per altre informazioni, vedere Abilitare il backup gestito di SQL Server in Microsoft Azure e Simplifying creation of SQL Credentials with Shared Access Signature (SAS) tokens on Archiviazione di Azure with Powershell (Semplificazione della creazione di credenziali SQL con token di firma di accesso condiviso (SAS) in Archiviazione di Azure con Powershell).
REPLACE
Supportato da:RESTORE
Specifica che SQL Server deve creare il database specificato e i file correlati anche se esiste già un database avente lo stesso nome. In questo caso, il database esistente viene eliminato. Se non si specifica l'opzione REPLACE, viene eseguito un controllo di sicurezza. Questa operazione impedisce la sovrascrittura accidentale di un database diverso. Il controllo di sicurezza garantisce che la RESTOREDATABASE dichiarazione non ripristini il database sul server corrente se esistono entrambe le seguenti condizioni:
Il database indicato nell'istruzione RESTORE esiste già sul server corrente, e
Il nome del database è diverso da quello del database registrato nel set di backup
REPLACE consente RESTORE anche di sovrascrivere un file esistente che non può essere verificato come appartenente al database in fase di ripristino. Normalmente, RESTORE si rifiuta di sovrascrivere file preesistenti. WITH REPLACE può essere usato allo stesso modo anche per l'opzione RESTORE LOG.
Se si utilizza l'opzione REPLACE, è possibile ignorare il requisito che richiede la creazione del backup della parte finale del log prima di eseguire il ripristino del database.
Per informazioni sull'impatto dell'uso dell'opzione SOSTITUIRE, vediRESTORE (Transact-SQL).
RESTART
Supportato da:RESTORE
Specifica che in SQL Server deve essere riavviata un'operazione di ripristino interrotta. L'operazione di ripristino viene riavviata dal punto in cui è stata interrotta.
RESTRICTED_USER
Supportato da:RESTORE.
Limita l'accesso al database ripristinato ai membri dei ruoli db_owner, dbcreator e sysadmin. RESTRICTED_USER sostituisce l'opzione DBO_ONLY. DBO_ONLY è stata sospesa con SQL Server 2008 (10.0.x).
Utilizzare sempre l'opzione RECOVERY.
Opzioni relative al set di backup
Queste opzioni riguardano il set di backup contenente il backup da ripristinare.
FILE = { backup_set_file_number | @backup_set_file_number }
Supportato da:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, e RESTORE VERIFYONLY.
Identifica il set di backup da ripristinare. Il valore 1 per backup_set_file_number indica il primo set di backup nel supporto di backup, mentre il valore 2 per backup_set_file_number indica il secondo set di backup. Puoi ottenere la backup_set_file_number di un set di backup usando l'istruzione RESTORE HEADERONLY .
Quando non specificato, il valore predefinito è 1, tranne che RESTORE HEADERONLY nel qual caso tutti i set di backup nel media set vengono elaborati. Per altre informazioni, vedere Specifica di un set di backup.
Importante
Questa opzione FILE non è correlata all'opzione FILE usata per specificare un file di database, FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }.
PASSWORD = { password | @password_variable }
Supportato da:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, e RESTORE VERIFYONLY.
Specifica la password per il set di backup. La password di un set di backup è una stringa di caratteri.
Nota
Questa funzionalità verrà rimossa nelle versioni future di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.
Se durante la creazione del set di backup è stata impostata una password, sarà necessario specificare tale password per eseguire qualsiasi operazione di ripristino dal set di backup. Viene considerata un errore l'impostazione della password errata o la specifica di una password per un set di backup per il quale non è stata impostata.
Importante
Il livello di protezione del set di supporti garantito da questa password è ridotto. Per ulteriori informazioni, vedere la sezione Autorizzazioni per l'istruzione specifica.
[METADATA_ONLY | ISTANTANEO ] [ DBNAME = { <database_name> | @database_name_variable } ]
Introdotto in SQL Server 2022 (16.x)
Necessario per eseguire il ripristino dal backup dello snapshot.
BACKUP SERVERoppure BACKUP GROUP... Vedere Creare un backup di snapshot Transact-SQL.
METADATA_ONLY è sinonimo di SNAPSHOT. L'interfaccia VDI (Virtual Device Interface) usa SNAPSHOT. Per informazioni su VDI, vedere Informazioni di riferimento su VDI (Virtual Device Interface).
Opzioni relative ai set di supporti
Queste opzioni vengono applicate all'intero set di supporti.
MEDIANAME = { media_name | @media_name_variable }
Supportato da:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, e RESTORE VERIFYONLY.
Specifica il nome del supporto. Se specificato, il nome deve corrispondere al nome del supporto nei volumi di backup. In caso contrario, l'operazione di ripristino viene interrotta. Se non viene indicato alcun nome di media nell'istruzione RESTORE , il controllo per un nome corrispondente sui volumi di backup non viene effettuato.
Importante
Un utilizzo coerente dei nomi dei supporti nelle operazioni di backup e ripristino rappresenta un ulteriore controllo di sicurezza dei supporti selezionati per l'operazione di ripristino.
MEDIAPASSWORD = { mediapassword | @mediapassword_variable }
Supportato da:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, e RESTORE VERIFYONLY.
Specifica la password per il set di supporti. La password di un set di supporti è una stringa di caratteri.
Nota
Questa funzionalità verrà rimossa nelle versioni future di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.
Se durante la formattazione del set di supporti è stata impostata una password, è necessario specificare tale password per accedere a qualsiasi set di backup nel set di supporti. Viene considerata un errore l'impostazione della password errata o la specifica di una password per un set di supporti per il quale non è stata impostata.
Importante
Il livello di protezione del set di supporti garantito da questa password è ridotto. Per ulteriori informazioni, vedere la sezione "Autorizzazioni" per l'istruzione specifica.
BLOCCO = { blocco dimensione | @blocksize_variable }
Supportato da:RESTORE
Specifica le dimensioni fisiche del blocco, in byte. Le dimensioni supportate sono 512, 1024, 2048, 4096, 8192, 16384, 32768 e 65536 (64 KB) byte. Il valore predefinito è 65536 per i dispositivi nastro e 512 negli altri casi. In genere, questa opzione non è necessaria perché RESTORE seleziona automaticamente una dimensione del blocco appropriata per il dispositivo. L'impostazione esplicita delle dimensioni del blocco ha la priorità sulla selezione automatica.
Se si esegue il ripristino di un backup da un CD-ROM, specificare BLOCKSIZE=2048.
Nota
Questa opzione influisce in genere sulle prestazioni solo durante la lettura da dispositivi nastro.
Opzioni di trasferimento dei dati
Queste opzioni consentono di ottimizzare il trasferimento dei dati dal dispositivo di backup.
BUFFERCOUNT = { buffercount | @buffercount_variable }
Supportato da:RESTORE
Specifica il numero totale di buffer di I/O da utilizzare per l'operazione di ripristino. È possibile specificare qualsiasi numero intero positivo. Un numero elevato di buffer può tuttavia causare errori di memoria insufficiente dovuti a spazio degli indirizzi virtuali non adeguato nel processo Sqlservr.exe.
Lo spazio totale usato dai buffer viene determinato da: buffercount****maxtransfersize.
MAXTRANSFERSIZE = { maxtransfersize | @maxtransfersize_variable }
Supportato da:RESTORE
Specifica le dimensioni massime, espresse in byte, per il trasferimento da usare tra i supporti di backup e SQL Server. I valori possibili sono i multipli di 65536 byte (64 KB) fino a 4194304 byte (4 MB).
Nota
Se il database ha configurato FILESTREAM o include gruppi di file OLTP in memoria, al momento del ripristino il valore di MAXTRANSFERSIZE deve essere maggiore o uguale a quello usato durante la creazione del backup.
Opzioni relative alla gestione degli errori
Queste opzioni consentono di specificare se i checksum del backup sono abilitati per l'operazione di ripristino e se l'operazione verrà arrestata in caso di errore.
{ CHECKSUM | NO_CHECKSUM }
Supportato da:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, e RESTORE VERIFYONLY.
Per impostazione predefinita, vengono verificati i valori di checksum, se presenti, e l'operazione procede senza verifiche se non sono presenti.
CHECKSUM
Specifica che è richiesta la verifica dei valori di checksum del backup. Se per il backup non sono disponibili valori di checksum, l'operazione di ripristino viene interrotta con un messaggio che indica che i checksum non sono presenti.
Nota
I valori di checksum per la pagina sono relativi alle operazioni di backup solo se vengono utilizzati i valori di checksum del backup.
Di default, quando si verifica un checksum non valido, RESTORE segnala un errore di checksum e si interrompe. Tuttavia, se specifichi CONTINUE_AFTER_ERROR, RESTORE procede dopo aver restituito un errore di checksum e il numero della pagina contenente il checksum non valido, se la corruzione lo consente.
Per altre informazioni sull'uso di checksum di backup, vedere Possibili errori relativi ai supporti durante il backup e il ripristino (SQL Server).
NO_CHECKSUM
Disabilita in modo esplicito la convalida dei valori di checksum durante l'operazione di ripristino.
{ STOP_ON_ERROR | CONTINUE_AFTER_ERROR }
Supportato da:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, e RESTORE VERIFYONLY.
STOP_ON_ERROR
Specifica che l'operazione di ripristino deve essere arrestata dopo il rilevamento del primo errore. Questo è il comportamento predefinito per RESTORE, tranne per VERIFYONLY, che ha CONTINUE_AFTER_ERROR come impostazione predefinita.
CONTINUE_AFTER_ERROR
Specifica che l'operazione di ripristino deve continuare dopo il rilevamento di un errore.
Se un backup contiene pagine danneggiate, è consigliabile ripetere l'operazione di ripristino usando un backup alternativo senza errori, ad esempio una copia di backup creata prima del danneggiamento delle pagine. Come ultima risorsa, tuttavia, è possibile ripristinare un backup danneggiato utilizzando l'opzione CONTINUE_AFTER_ERROR dell'istruzione di ripristino e tentare di recuperare i dati.
Opzioni FILESTREAM
FILESTREAM ( DIRECTORY_NAME =directory_name )
Supportato da:RESTORE e RESTORE VERIFYONLY
Si applica a: SQL Server 2012 (11.x) e versioni successive
Nome di directory compatibile con Windows. Il nome deve essere univoco in tutti i nomi di directory FILESTREAM a livello di database nell'istanza di SQL Server. Il confronto di univocità supporta la distinzione tra maiuscole e minuscole, indipendentemente dalle impostazioni delle regole di confronto di SQL Server.
Opzioni di monitoraggio
Queste opzioni consentono di monitorare il trasferimento dei dati dal dispositivo di backup.
STATISTICHE [ = percentuale ]
Supportato da:RESTORE e RESTORE VERIFYONLY
Visualizza un messaggio ogni volta che viene completata la percentuale specificata. Consente di tenere traccia dello stato di avanzamento dell'operazione. Se si omette percentage, SQL Server visualizza un messaggio al completamento di ogni 10% circa dell'operazione.
L'opzione STATS segnala la percentuale di completamento in base alla soglia specificata per l'intervallo successivo. Si tratta approssimativamente della percentuale specificata. Con l'impostazione STATS=10, ad esempio, il motore di database visualizza un messaggio in corrispondenza di tale intervallo e l'opzione potrebbe visualizzare il 43% anziché il 40% esatto. Per i set di backup di grandi dimensioni ciò non rappresenta un problema, in quanto la percentuale di completamento aumenta molto lentamente tra le varie chiamate di I/O completate.
Opzioni relative ai dispositivi nastro
Queste opzioni vengono utilizzate solo per i dispositivi nastro. Se non si utilizza un dispositivo nastro, queste opzioni vengono ignorate.
{ RIAVVOLGI | NOREWIND }
Queste opzioni vengono utilizzate solo per i dispositivi nastro. Se non si utilizza un dispositivo nastro, queste opzioni vengono ignorate.
REWIND
Supportato da:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, e RESTORE VERIFYONLY.
Specifica che SQL Server deve rilasciare e riavvolgere il nastro. REWIND è l'opzione predefinita.
NOREWIND
Supportato da:RESTORE e RESTORE VERIFYONLY
Se si specifica l'opzione NOREWIND in qualsiasi altra istruzione di ripristino verrà generato un errore.
Specifica che SQL Server deve mantenere il nastro aperto dopo l'operazione di backup. È possibile utilizzare questa opzione per migliorare le prestazioni durante l'esecuzione di più operazioni di backup sullo stesso nastro.
NOREWIND implica NOUNLOAD, e queste opzioni sono incompatibili all'interno di una singola RESTORE affermazione.
Nota
Se usi NOREWIND, l'istanza di SQL Server mantiene la proprietà del disco a nastro finché un'istruzione BACKUP o RESTORE in esecuzione nello stesso processo non utilizza l'opzione REWIND o UNLOAD, oppure l'istanza server non viene spenta. Ciò impedisce ad altri processi di accedere al nastro. Per informazioni sulla visualizzazione dell'elenco dei nastri aperti e sulla chiusura di un nastro aperto, vedere Dispositivi di backup (SQL Server).
{ SCARICA | SCARICA }
Supportato da:RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, RESTORE REWINDONLY, e RESTORE VERIFYONLY.
Queste opzioni vengono utilizzate solo per i dispositivi nastro. Se non si utilizza un dispositivo nastro, queste opzioni vengono ignorate.
Nota
UNLOAD/NOUNLOAD è un'impostazione di sessione che rimane valida per l'intera durata della sessione o finché non viene reimpostata tramite la specifica di un'impostazione alternativa.
UNLOAD
Specifica che il nastro viene riavvolto e scaricato automaticamente al termine del backup. L'opzione UNLOAD è l'impostazione predefinita all'avvio di una sessione.
NOUNLOAD
Specifica che dopo l'operazione il RESTORE nastro rimane caricato sull'unità nastro.
<replication_WITH_option>
Questa opzione è pertinente solo se è stata eseguita la replica del database al momento della creazione del backup.
KEEP_REPLICATION
Supportato da:RESTORE
Quando si configura la replica per l'uso del log shipping, è consigliabile usare l'opzione KEEP_REPLICATION. Questa opzione impedisce la rimozione delle impostazioni di replica quando un backup del database o del log viene ripristinato in un server warm standby e il database viene recuperato. Non è consentito utilizzare questa opzione per il ripristino di un backup con l'opzione NORECOVERY. Per garantire il corretto funzionamento della replica dopo il ripristino:
I
msdbdatabase emasternel server warm standby devono essere sincronizzati con imsdbdatabase emasternel server primario.È necessario rinominare il server warm standby per utilizzare lo stesso nome del server primario.
<change_data_capture_WITH_option>
Questa opzione è pertinente solo se il database è stato abilitato per Change Data Capture al momento della creazione del backup.
KEEP_CDC
Supportato da:RESTORE
L'opzione KEEP_CDC deve essere utilizzata per impedire la rimozione delle impostazioni di Change Data Capture quando un backup del database o del log viene ripristinato in un altro server e il database viene recuperato. Non è consentito utilizzare questa opzione per il ripristino di un backup con l'opzione NORECOVERY.
Se si ripristina il database con l'opzione KEEP_CDC, non vengono creati processi di Change Data Capture. Per estrarre le modifiche dal log dopo aver ripristinato il database, ricreare il processo di acquisizione e il processo di pulizia per il database ripristinato. Per informazioni, vedere sys.sp_cdc_add_job (Transact-SQL).
Per informazioni sull'uso di Change Data Capture con il mirroring del database, vedere Change Data Capture e altre funzionalità di SQL Server.
<service_broker_WITH_options>
Attiva o disattiva il recapito dei messaggi di Service Broker o imposta un nuovo identificatore di Service Broker. Questa opzione è pertinente solo se Service Broker è stato abilitato (attivato) per il database al momento della creazione del backup.
{ ENABLE_BROKER | ERROR_BROKER_CONVERSATIONS | NEW_BROKER }
Supportato da:RESTORE DATABASE
ENABLE_BROKER
Specifica che il recapito dei messaggi di Service Broker deve essere abilitato al termine del ripristino in modo che i messaggi possano essere inviati immediatamente. Per impostazione predefinita, durante un'operazione di ripristino il recapito dei messaggi di Service Broker è disabilitato. Nel database viene mantenuto l'identificatore di Service Broker esistente.
ERROR_BROKER_CONVERSATIONS
Termina tutte le conversazioni e restituisce un errore che indica che il database è collegato o ripristinato. Questo consente alle applicazioni di eseguire operazioni regolari di pulizia per le conversazioni esistenti. Il recapito dei messaggi di Service Broker viene disabilitato fino al termine dell'operazione e quindi viene riabilitato. Nel database viene mantenuto l'identificatore di Service Broker esistente.
NEW_BROKER
Specifica che al database deve essere assegnato un nuovo identificatore di Service Broker. Poiché il database viene considerato una nuova istanza di Service Broker, tutte le conversazioni esistenti nel database vengono rimosse immediatamente senza generare messaggi di fine dialogo. Tutte le route che fanno riferimento all'identificatore di Service Broker precedente devono essere ricreate con il nuovo identificatore.
<point_in_time_WITH_options>
Supportato da:RESTORE {DATABASE|LOG} e solo per i modelli di recupero completi o di blocco registrati.
Per ripristinare un database fino a uno specifico punto nel tempo o fino a una specifica transazione, indicare il punto di recupero di destinazione in una clausola STOPAT, STOPATMARK o STOPBEFOREMARK. Un'ora o una transazione specifica viene sempre ripristinata da un backup del log. In ogni RESTORE istruzione LOG della sequenza di ripristino, devi specificare il tempo o la transazione target in una clausola identica STOPAT, STOPATMARK o STOPBEFOREMARK.
Come prerequisito per un ripristino temporizzato, è necessario innanzitutto ripristinare un backup completo del database il cui endpoint sia precedente rispetto al punto di recupero di destinazione. Per aiutarti a identificare quale backup del database ripristinare, puoi opzionalmente specificare la clausola WITH STOPAT, STOPATMARK o STOPBEFOREMARK in un'istruzione RESTOREDATABASE per generare un errore se un backup dati è troppo recente rispetto al tempo target specificato. Il backup completo dei dati viene però sempre ripristinato, anche se contiene la data e ora specifica di destinazione.
Nota
Le opzioni RESTORE_DATABASE e RESTORE_LOG WITH in un momento sono simili, ma solo RESTORE LOG supporta l'argomento mark_name .
{ STOPAT | STOPATMARK | STOPANTEMARK }
STOPAT = { 'datetime' | @_datetime_var* }
Specifica che il database deve essere ripristinato nello stesso stato in cui si trovava alla data e all'ora specificate dal parametro datetime o @datetime_var. Per informazioni sull'indicazione della data e dell'ora, vedere Funzioni e tipi di dati di data e ora (Transact-SQL).
Se per STOPAT si usa una variabile, il tipo di dati di tale variabile deve essere varchar, char, smalldatetime o datetime. Al database vengono applicati solo i record del log delle transazioni scritti prima della data e ora specificate.
Nota
Se il tempo STOPAT specificato è successivo all'ultimo backup LOG, il database rimane nello stato non recuperato, proprio come se RESTORE LOG fosse eseguito con NORECOVERY.
Per altre informazioni, vedere Ripristino di un database di SQL Server fino a un punto specifico all'interno di un backup (modello di recupero con registrazione completa).
STOPATMARK = { 'mark_name' | 'lsn:lsn_number' } [ DOPO 'datetime' ]
Specifica il recupero fino a un punto di recupero specificato. La transazione specificata viene inclusa nel recupero. Il commit della transazione viene eseguito solo se è stato eseguito al momento della generazione effettiva della transazione.
Sia RESTOREDATABASE LOG RESTORE che LOG supportano il parametro lsn_number . che specifica un numero di sequenza del file di log (LSN).
Il parametro mark_name è supportato solo dall'istruzione RESTORE LOG. Questo parametro identifica un contrassegno di transazione nel backup del log.
In un'istruzione RESTORE LOG, se AFTER datetime viene omesso, il recupero si ferma al primo segno con il nome specificato. Se l'opzione AFTER datetime viene specificata, il recupero si interrompe in corrispondenza del primo contrassegno avente il nome specificato, nella data e all'ora indicate in datetime o in un momento successivo.
Nota
Se il segno, LSN o il tempo specificati sono dopo l'ultimo backup LOG, il database rimane nello stato non recuperato, proprio come se RESTORE LOG fosse eseguito con NORECOVERY.
Per altre informazioni, vedere Usare transazioni contrassegnate per recuperare coerentemente i database correlati (modello di recupero con registrazione completa) e Recupero fino a un numero di sequenza del file di log (SQL Server).
STOPBEFOREMARK = { 'mark_name' | 'lsn:lsn_number' } [ DOPO 'datetime' ]
Specifica il recupero fino a un punto di recupero specificato. La transazione specificata non viene inclusa nel recupero. Il rollback della transazione viene eseguito quando si utilizza WITH RECOVERY.
Sia RESTOREDATABASE LOG RESTORE che LOG supportano il parametro lsn_number . che specifica un numero di sequenza del file di log (LSN).
Il parametro mark_name è supportato solo dall'istruzione RESTORE LOG. Questo parametro identifica un contrassegno di transazione nel backup del log.
In un'istruzione RESTORE LOG, se DOPO la data-ora viene omessa, il recupero si interrompe poco prima del primo segno con il nome specificato. Se AFTER datetime viene specificato, il recupero si interrompe immediatamente prima del primo contrassegno avente il nome specificato, nella data e all'ora indicate in datetime o in un momento successivo.
Importante
Se una sequenza di ripristino parziale esclude qualsiasi filegroup FILESTREAM, il ripristino temporizzato non è supportato. È possibile forzare la continuazione della sequenza di ripristino. Tuttavia, i file group FILESTREAM omessi dall'istruzione RESTORE non possono mai essere ripristinati. Per forzare un ripristino temporizzato, specificare l'opzione CONTINUE_AFTER_ERROR insieme all'opzione STOPAT, STOPATMARK o STOPBEFOREMARK. Se si specifica CONTINUE_AFTER_ERROR, la sequenza di ripristino parziale ha esito positivo e il filegroup FILESTREAM non può più essere recuperato.
Set di risultati
Per informazioni sui set di risultati, vedere gli articoli seguenti:
Osservazioni:
Per ulteriori osservazioni, vedere gli articoli seguenti:
Specifica di un set di backup
Un set di backup contiene il backup di una singola operazione di backup riuscita. RESTORE, RESTORERESTORE FILELISTONLY, RESTORERESTORE HEADERONLY, e RESTORERESTORE VERIFYONLY le istruzioni operano su un unico set di backup all'interno del set di media sul dispositivo o dispositivi di backup specificati. È consigliabile specificare il backup necessario all'interno del set di supporti. Puoi ottenere la backup_set_file_number di un set di backup usando l'istruzione RESTORE HEADERONLY .
L'opzione per specificare il set di backup da ripristinare è:
FILE ={ backup_set_file_number | @backup_set_file_number }
Dove backup_set_file_number indica la posizione del backup nel set di supporti. Un valore backup_set_file_number pari a 1 (FILE = 1) indica il primo set di backup nel supporto di backup, un valore di backup_set_file_number pari a 2 (FILE = 2) indica il secondo set di backup, e così via.
Il comportamento di questa opzione varia a seconda dell'istruzione, come descritto nella tabella seguente:
| Istruzione | Comportamento dell'opzione FILE di un set di backup |
|---|---|
| RESTORE | Il numero di file predefinito del set di backup è 1. È consentita una sola opzione FILE per il set di backup in un'istruzione RESTORE . È importante specificare i set di backup nell'ordine corretto. |
| RESTORE FILELISTONLY | Il numero di file predefinito del set di backup è 1. |
| RESTORE HEADERONLY | Per impostazione predefinita, vengono elaborati tutti i set di backup nel set di supporti. Il RESTORE HEADERONLY set di risultati restituisce informazioni su ciascun set di backup, inclusa la sua Posizione nel set media. Per restituire informazioni su un set di backup specifico, usare il numero di posizione corrispondente come valore di backup_set_file_number nell'opzione FILE. Nota: Per i supporti a nastro, RESTORE HEADER elabora solo i set di backup sul nastro caricato. |
| RESTORE VERIFYONLY | Il valore predefinito di backup_set_file_number è 1. |
Nota
L'opzione FILE per l'indicazione di un set di backup non è correlata all'opzione FILE usata per specificare un file di database, FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }.
Riepilogo del supporto delle opzioni WITH
Le seguenti opzioni WITH sono supportate solo dalla dichiarazione RESTORE : BLOCKSIZE, BUFFERCOUNT, MAXTRANSFERSIZE, PARTIAL, KEEP_REPLICATION, { RECOVERY | NESSUNA RECUPERAZIONE | STANDBY }, SOSTITUIRE, RIAVVIARE, RESTRICTED_USER e { STOPAT | STOPATMARK | STOPANTEMARK }
Nota
L'opzione PARZIALE è supportata solo da RESTOREDATABASE.
Nella tabella seguente sono elencate le opzioni WITH utilizzate da una o più istruzioni e vengono indicate le istruzioni supportate da ciascuna opzione. Un segno di spunta (√) indica che l'opzione è supportata, mentre un trattino (—) indica che l'opzione non è supportata.
| Opzione WITH | RESTORE | RESTORE FILELISTONLY | RESTORE HEADERONLY | RESTORE LABELONLY | RESTORE REWINDONLY | RESTORE VERIFYONLY |
|---|---|---|---|---|---|---|
| { CHECKSUM | NO_CHECKSUM } |
√ | √ | √ | √ | - | √ |
| { CONTINUE_AFTER_ERROR | STOP_ON_ERROR } |
√ | √ | √ | √ | - | √ |
| FILE1 | √ | √ | √ | - | - | √ |
| LOADHISTORY | - | - | - | - | - | √ |
| MEDIANAME | √ | √ | √ | √ | - | √ |
| MEDIAPASSWORD | √ | √ | √ | √ | - | √ |
| MOVE | √ | - | - | - | - | √ |
| PASSWORD | √ | √ | √ | - | - | √ |
| { RIAVVOLGI | NOREWIND } | √ | Solo REWIND | Solo REWIND | Solo REWIND | - | √ |
| STATS (Statistiche) | √ | - | - | - | - | √ |
| { SCARICA | SCARICA } | √ | √ | √ | √ | √ | √ |
1 FILE =backup_set_file_number, che è diversa da {FILE | FILEGROUP}.
Autorizzazioni
Per informazioni sulle autorizzazioni, vedere gli articoli seguenti:
Esempi
Per gli esempi, vedere gli articoli seguenti: