Argomenti dell'istruzione RESTORE (Transact-SQL)

In questo argomento vengono descritti gli argomenti inclusi nelle sezioni "Sintassi" dell'istruzione RESTORE {DATABASE|LOG} e delle istruzioni ausiliarie correlate RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, RESTORE REWINDONLY e RESTORE VERIFYONLY. La maggior parte degli argomenti sono supportati solo da un subset di queste sei istruzioni. Nella descrizione di ogni argomento vengono indicate le istruzioni in cui è supportato.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

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'utilizzo 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. Se si esegue il ripristino di un database senza aver prima eseguito il backup della parte finale del log verrà generato un errore, a meno che l'istruzione RESTORE DATABASE non includa la clausola WITH REPLACE o WITH STOPAT, che deve specificare l'ora o la transazione verificatasi al termine del backup dei dati. Per ulteriori informazioni sul backup della parte finale del log, vedere Backup della parte finale del log.

  • 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 ulteriori informazioni, vedere Backup della parte finale del log.

    Per ulteriori informazioni, vedere Utilizzo dei backup del log delle transazioni.

  • { 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, una pagina o un filegroup logico da includere in un'istruzione RESTORE DATABASE o RESTORE LOG. È possibile specificare un elenco di file o filegroup.

    In un database che utilizza 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 i database impostati per l'utilizzo del modello di recupero con registrazione completa o con registrazione minima delle operazioni bulk, dopo l'utilizzo dell'istruzione RESTORE DATABASE per il ripristino di uno o più file, filegroup e/o pagine, è in genere necessario applicare il log delle transazioni ai file contenenti i dati ripristinati. L'applicazione del log consente di rendere tali file consistenti con il resto del database. Esistono le eccezioni seguenti:

    • Se i file in corso di ripristino erano di sola lettura prima dell'ultimo backup, non è necessario applicare il log delle transazioni e l'istruzione RESTORE segnala 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.

      Nota   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 si utilizza 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 ripristino della pagina non vengono mai eseguite.

      Per ulteriori informazioni sul ripristino di pagine, vedere Esecuzione di ripristini di pagine.

    • [ ,...n ]
      Segnaposto che indica la possibilità di specificare più file, filegroup e pagine in un elenco delimitato da virgole. Il numero di file, filegroup e pagine che è possibile specificare è illimitato.

  • FROM { <backup_device> [ ,...n ]| <database_snapshot> }
    In genere, specifica i dispositivi di backup da cui eseguire il ripristino del backup. In alternativa, in un'istruzione RESTORE DATABASE la clausola FROM può specificare il nome di uno snapshot del database in cui eseguire il ripristino del database e in questo caso la clausola WITH non è consentita.

    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'argomento NORECOVERY, RECOVERY o STANDBY nella clausola WITH.

    • <backup_device> [ ,...n ]
      Specifica i dispositivi di backup logici o fisici da utilizzare per l'operazione di 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 utilizzare per l'operazione di backup, come indicato di seguito:
        
          - { logical_backup_device_name | **@**logical_backup_device_name_var }  
            Nome logico, conforme alle regole per gli identificatori, 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 di tipo stringa di caratteri, con l'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\\AdventureWorks2008R2.bak' oppure 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 = physcial_backup_device_name) oppure come variabile di tipo stringa di caratteri, con l'eccezione dei tipi di dati ntext o text.
            
            Se si utilizza un server di rete con un nome in formato UNC, che deve includere il nome del computer, specificare un dispositivo di tipo disco. Per ulteriori informazioni sull'utilizzo di nomi in formato UNC, vedere [Dispositivi di backup](ms179313\(v=sql.105\).md).
            
            Per poter eseguire un'operazione RESTORE, l'account utilizzato per l'esecuzione di SQL Server deve disporre dell'autorizzazione di accesso READ per il computer remoto o il server di rete.
    
      - 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 online o offline.
        
          - Per le operazioni di ripristino offline è consentito ripristinare un backup utilizzando meno dispositivi di quelli utilizzati per creare il backup.
        
          - Per i ripristini online sono invece necessarie tutti i dispositivi di backup utilizzati per creare il backup. Qualsiasi tentativo di eseguire il ripristino con un numero inferiore di dispositivi avrà esito negativo.
        
        Si consideri, ad esempio, il caso del backup di un database eseguito su quattro unità nastro connesse al server. Per un ripristino online è necessario che le quattro unità siano connesse al server, mentre per un ripristino offline è possibile eseguire l'operazione anche se nel computer sono disponibili meno di quattro unità.
        
        Per ulteriori informazioni, vedere [Utilizzo di supporti di backup in SQL Server](ms191316\(v=sql.105\).md).
    
    <div class="alert">
    

    > [!NOTE]
    > <P>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 dei supporti danneggiato con il volume corrispondente da un altro mirror. Per i ripristini offline, è possibile eseguire il ripristino da un numero minore di dispositivi che di gruppi di supporti, ma ogni gruppo viene elaborato una sola volta.</P>

    
    </div>

  - \<database_snapshot\>::=  

Supportato da: RESTORE DATABASE

      - DATABASE_SNAPSHOT **=**database_snapshot_name  
        Ripristina il database utilizzando 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 ulteriori informazioni, vedere la sezione "Osservazioni" in [RESTORE DATABASE](ms186858\(v=sql.105\).md).

Opzioni WITH

Specifica le opzioni da utilizzare per un'operazione di ripristino. Per informazioni di riepilogo sull'utilizzo delle singole opzioni in ogni istruzione, vedere "Riepilogo del supporto delle opzioni WITH" di seguito in questo argomento.

Nota

Le opzioni WITH sono organizzate nello stesso ordine utilizzato nella sezione relativa alla 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 PARTIAL non è consentita per istruzioni RESTORE LOG.

    A partire da SQL Server 2005, l'opzione PARTIAL avvia la fase iniziale di un ripristino a fasi, che consente di eseguire il ripristino dei filegroup rimanenti in un momento successivo. Per ulteriori informazioni, vedere Esecuzione di ripristini a fasi.

    Nota

    La fase iniziale di un ripristino a fasi sostituisce il ripristino di database parziale di Microsoft SQL Server 2000. Il ripristino di database parziale è stato progettato allo scopo di ripristinare solo la parte danneggiata di un database (un subset di filegroup) in una nuova posizione in modo da poter copiare nuovamente i dati danneggiati o mancanti nel database originale. I database ripristinati parzialmente non sono destinati all'utilizzo come database di produzione. Per offrire migliori prestazioni, inoltre, nell'istruzione RESTORE della versione precedente vengono ignorati molti dei normali controlli di sicurezza. In SQL Server 2005 e versioni successive l'opzione PARTIAL consente tuttavia di eseguire tali controlli di sicurezza.

  • [ RECOVERY | NORECOVERY | STANDBY ]
    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 si prevede di dover eseguire operazioni RESTORE successive (RESTORE LOG o RESTORE DATABASE da un backup differenziale), è invece necessario specificare 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 ulteriori informazioni, vedere Applicazione dei backup del log delle transazioni.

      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 offline con l'opzione NORECOVERY, il database non è utilizzabile.

      Per il ripristino di un backup di database e di uno o più log delle transazioni oppure in tutti i casi in cui sono necessarie più istruzioni RESTORE (ad esempio per il ripristino di un backup di database completo seguito da un backup differenziale del database), è necessario specificare l'opzione WITH NORECOVERY per tutte le istruzioni RESTORE ad eccezione dell'ultima. È consigliabile utilizzare l'opzione WITH NORECOVERY per TUTTE le istruzioni in una sequenza di ripristino in più passaggi fino al raggiungimento del punto di recupero desiderato, quindi utilizzare un'istruzione RESTORE WITH RECOVERY separata 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 casi, l'istruzione RESTORE WITH NORECOVERY esegue il rollforward del set di rollforward fino al punto di renderlo consistente con il database. In questi casi il rollback non viene eseguito e i dati rimangono offline, come previsto con questa opzione. Motore di database, tuttavia, genera un messaggio informativo indicante che il set di rollforward è pronto per essere recuperato utilizzando 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 offline, inclusi ripristini parziali. Non è invece consentita per il ripristino online. Se si tenta di specificare l'opzione STANDBY per un'operazione di ripristino online, l'operazione avrà esito negativo. L'opzione STANDBY non è inoltre consentita quando è necessario l'aggiornamento del database.

      Nota

      In SQL Server 2000 questo file è noto come "file di rollback".

      Il file standby viene utilizzato per memorizzare un'immagine dello stato precedente delle pagine modificate durante il passaggio di rollback di un'istruzione 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 di standby a caldo (warm standby) o in situazioni di recupero speciali in cui risulta utile controllare il database tra operazioni di ripristino del log successive. Dopo il completamento di un'operazione RESTORE WITH STANDBY, il file di rollback viene eliminato automaticamente dalla successiva operazione RESTORE. Se il file standby viene eliminato manualmente prima della successiva operazione RESTORE, sarà necessario ripetere il ripristino dell'intero database. 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 da 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à utilizzato da un file esistente, quest'ultimo viene sovrascritto. In caso contrario, il file viene creato da 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.

      Nota importanteImportante

      Se lo spazio disponibile nell'unità contenente il file standby specificato diventa insufficiente, l'operazione di ripristino viene arrestata.

    Per informazioni sulle differenze tra le opzioni RECOVERY e NORECOVERY, vedere la sezione "Osservazioni" nell'argomento relativo all'istruzione RESTORE.

  • LOADHISTORY
    Supportato da: RESTORE VERIFYONLY

    Specifica che l'operazione di ripristino carica le informazioni nelle tabelle della cronologia di msdb. 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 ulteriori informazioni sulle tabelle della cronologia, vedere Tabelle di sistema (Transact-SQL).

<general_WITH_options> [ ,...n ]

Le opzioni WITH generali sono tutte supportate nelle istruzioni RESTORE DATABASE e RESTORE LOG. Alcune di queste opzioni sono supportate anche da una o più istruzioni ausiliarie, come indicato di seguito.

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 del set di backup, utilizzare l'istruzione RESTORE FILELISTONLY.

    Se si utilizza l'istruzione RESTORE per spostare un database nello stesso server o copiarlo in un server diverso, potrebbe essere necessario utilizzare l'opzione MOVE per spostare i file di database ed evitare eventuali collisioni con i file esistenti.

    In combinazione con l'istruzione RESTORE LOG, l'opzione MOVE può essere utilizzata solo per lo spostamento di file aggiunti durante l'intervallo coperto dal log in corso di ripristino. Ad esempio, se il backup del log contiene un'operazione di aggiunta per il file file23, questo file può essere spostato utilizzando l'opzione MOVE nell'istruzione RESTORE LOG.

    Se si utilizza l'istruzione RESTORE VERIFYONLY per spostare un database nello stesso server o copiarlo in un server diverso, potrebbe essere necessario utilizzare l'opzione MOVE per verificare che lo spazio disponibile nella destinazione sia sufficiente e per individuare potenziali collisioni con i file esistenti.

    Per ulteriori informazioni, vedere Copia di database tramite backup e ripristino.

  • 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. Tale controllo assicura che l'istruzione RESTORE DATABASE non ripristini il database nel server corrente se:

    • Il database specificato nell'istruzione RESTORE esiste già nel server e

    • Il nome del database è diverso da quello del database registrato nel set di backup

    L'opzione REPLACE consente inoltre di sovrascrivere i file esistenti di cui non è possibile verificare l'appartenenza al database da ripristinare. L'istruzione RESTORE in genere non sovrascrive i file esistenti. L'opzione WITH REPLACE può essere utilizzata nello stesso modo 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 ulteriori informazioni, vedere Utilizzo dell'opzione REPLACE.

  • RESTART
    Supportato da: RESTORE

    Specifica che SQL Server deve riavviare 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 o sysadmin. RESTRICTED_USER sostituisce l'opzione DBO_ONLY. In SQL Server 2008 l'opzione DBO_ONLY non è più supportata.

    Utilizzare sempre l'opzione RECOVERY.

    Per ulteriori informazioni, vedere Impostazione delle opzioni di database.

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, ad esempio, 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. È possibile ottenere il valore di backup_set_file_number di un set di backup utilizzando l'istruzione RESTORE HEADERONLY.

    Se l'argomento non viene specificato, il valore predefinito è 1, con l'eccezione di RESTORE HEADERONLY. In questo caso vengono infatti elaborati tutti i set di backup nel set di supporti. Per ulteriori informazioni, vedere "Specifica di un set di backup" di seguito in questo argomento.

    Nota importanteImportante

    Questa opzione FILE non è correlata all'opzione FILE per la specifica di un file di database, ovvero 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 caratteristica verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Evitare di utilizzare questa caratteristica 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.

    Nota importanteImportante

    Il livello di protezione del set di supporti garantito da questa password è ridotto. Per ulteriori informazioni, vedere la sezione Autorizzazioni per l'istruzione specifica.

Opzioni relative al set di supporti

Queste opzioni riguardano l'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 specificato alcun nome di supporto nell'istruzione RESTORE, non viene eseguita la ricerca di un nome di supporto corrispondente nei volumi di backup.

    Nota importanteImportante

    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 caratteristica verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Evitare di utilizzare questa caratteristica 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.

    Nota importanteImportante

    Il livello di protezione del set di supporti garantito da questa password è ridotto. Per ulteriori informazioni, vedere la sezione "Autorizzazioni" per l'istruzione specifica.

  • BLOCKSIZE = { blocksize | **@**blocksize_variable }
    Supportato da: RESTORE

    Specifica le dimensioni del blocco fisico espresse 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. Questa opzione non è in genere necessaria, poiché le dimensioni del blocco appropriate per il dispositivo vengono selezionate automaticamente. L'impostazione esplicita delle dimensioni del blocco ha 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 relative al 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 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 utilizzato dai buffer viene determinato da buffercount*****maxtransfersize.

  • MAXTRANSFERSIZE = { maxtransfersize | **@**maxtransfersize_variable }
    Supportato da: RESTORE

    Specifica le dimensioni massime, espresse in byte, per il trasferimento tra SQL Server e il supporto di backup. I possibili valori sono i multipli di 65536 byte (64 KB) fino a 4194304 byte (4 MB).

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.

      Per impostazione predefinita, se viene individuato un valore di checksum non valido, l'istruzione RESTORE segnala un errore checksum e viene arrestata. Tuttavia, se si specifica CONTINUE_AFTER_ERROR, l'operazione RESTORE continua dopo la restituzione di un errore checksum e del numero di pagina contenente il valore di checksum non valido, nel caso la condizione di errore lo permetta.

      Per ulteriori informazioni sull'utilizzo dei valori di checksum per il backup, vedere Rilevazione e correzione degli errori relativi ai supporti durante il backup e il ripristino.

    • 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 funzionamento predefinito dell'istruzione RESTORE, con l'eccezione dell'argomento VERIFYONLY per il quale l'impostazione predefinita è CONTINUE_AFTER_ERROR.

    • CONTINUE_AFTER_ERROR
      Specifica che l'operazione di ripristino deve continuare dopo il rilevamento di un errore.

      Per ulteriori informazioni sul proseguimento delle operazioni nonostante la presenza di errori, vedere Risposta agli errori di ripristino di SQL Server provocati da backup danneggiati.

      Se un backup contiene pagine danneggiate, è consigliabile ripetere l'operazione di ripristino utilizzando 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 relative al monitoraggio

Queste opzioni consentono di monitorare il trasferimento dei dati dal dispositivo di backup.

  • STATS [ = percentage ]
    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 percentage viene omesso, SQL Server visualizza un messaggio dopo ogni completamento del 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, 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.

  • { REWIND | 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.

      L'opzione NOREWIND implica l'utilizzo di NOUNLOAD e queste opzioni non sono compatibili all'interno di una singola istruzione RESTORE.

      Nota

      Se si utilizza l'opzione NOREWIND, l'istanza di SQL Server mantiene la proprietà dell'unità nastro fino a quando un'istruzione BACKUP o RESTORE eseguita nello stesso processo non utilizza l'opzione REWIND o UNLOAD oppure fino alla chiusura dell'istanza del server. 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.

  • { UNLOAD | NOUNLOAD }
    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 RESTORE il 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

    È consigliabile utilizzare l'opzione KEEP_REPLICATION quando si configura la replica per l'interazione con il log shipping. Questa opzione impedisce la rimozione delle impostazioni di replica quando un backup di database o di log viene ripristinato in un server di standby a caldo (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 database msdb e master nel server di standby a caldo (warm standby) devono essere sincronizzati con i database msdb e master nel server primario.

    • È necessario rinominare il server di standby a caldo (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 l'acquisizione dei dati delle modifiche 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 acquisizione dei dati delle modifiche quando un backup di database o di 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 acquisizione dei dati delle modifiche. 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 ulteriori informazioni, vedere sys.sp_cdc_add_job (Transact-SQL).

<service_broker_WITH_options>  [ ,...n ]

Attiva o disattiva il recapito dei messaggi di Service Broker o imposta un nuovo identificatore di Service Broker. Per ulteriori informazioni sul recapito dei messaggi e gli identificatori di Service Broker, vedere Gestione delle identità di Service Broker. Questa opzione è rilevante solo se Service Broker è stato abilitato per il database in cui il backup è stato creato.

  • { 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 con registrazione completa o con registrazione minima delle operazioni bulk.

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 istruzione RESTORE LOG della sequenza di ripristino, è necessario specificare l'ora o la transazione di destinazione in una clausola STOPAT, STOPATMARK o STOPBEFOREMARK identica.

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 consentire l'identificazione del backup del database da ripristinare, è possibile specificare la clausola WITH STOPAT, STOPATMARK o STOPBEFOREMARK in un'istruzione RESTORE DATABASE per generare un errore se un backup dei dati è troppo recente rispetto alla data e ora specifica di destinazione. Il backup completo dei dati viene però sempre ripristinato, anche se contiene la data e ora specifica di destinazione.

Nota

Le opzioni WITH di temporizzazione RESTORE_DATABASE e RESTORE_LOG sono simili, ma solo RESTORE LOG supporta l'argomento mark_name.

  • { STOPAT | STOPATMARK | STOPBEFOREMARK }

    • 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 su come specificare una data e un'ora, vedere Utilizzo di dati relativi a data e ora.

      Se si utilizza una variabile per STOPAT, 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 punto nel tempo specificato per STOPAT è successivo all'ultimo backup del log, il database rimane in uno stato non recuperato, come se l'istruzione RESTORE LOG fosse stata eseguita con NORECOVERY.

      Per ulteriori informazioni, vedere Ripristino di un database fino a un punto all'interno di un backup.

    • STOPATMARK = { 'mark_name' | 'lsn:lsn_number' } [ AFTER '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.

      RESTORE DATABASE e RESTORE LOG supportano il parametro lsn_number che specifica un numero di sequenza del file di log.

      Il parametro mark_name è supportato solo dall'istruzione RESTORE LOG. Questo parametro identifica un contrassegno di transazione nel backup del log.

      Se l'opzione AFTER datetime viene omessa in un'istruzione RESTORE LOG, il recupero viene arrestato in corrispondenza del primo contrassegno con il nome specificato. Se AFTER datetime viene specificato, il recupero viene arrestato in corrispondenza del primo contrassegno avente il nome specificato, nella data e ora indicate in datetime o in un momento successivo.

      Nota

      Se il contrassegno, l'LSN o il punto nel tempo specificato è successivo all'ultimo backup del log, il database rimane in uno stato non recuperato, come se l'istruzione RESTORE LOG fosse stata eseguita con NORECOVERY.

      Per ulteriori informazioni, vedere Utilizzo delle transazioni contrassegnate (modello di recupero con registrazione completa) e Recupero fino a un numero di sequenza del file di log (LSN).

    • STOPBEFOREMARK = { 'mark_name' | 'lsn:lsn_number' } [ AFTER '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.

      RESTORE DATABASE e RESTORE LOG supportano il parametro lsn_number che specifica un numero di sequenza del file di log.

      Il parametro mark_name è supportato solo dall'istruzione RESTORE LOG. Questo parametro identifica un contrassegno di transazione nel backup del log.

      Se l'opzione AFTER datetime viene omessa in un'istruzione RESTORE LOG, il recupero viene arrestato subito prima del primo contrassegno con il nome specificato. Se AFTER datetime viene specificato, il recupero viene arrestato subito prima del primo contrassegno avente il nome specificato, nella data e ora indicate in datetime o in un momento successivo.

    Nota importanteImportante

    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 filegroup FILESTREAM omessi dall'istruzione RESTORE non potranno più 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 argomenti seguenti:

Osservazioni

Per ulteriori osservazioni, vedere gli argomenti seguenti:

Specifica di un set di backup

Un set di backup contiene il backup di una singola operazione di backup riuscita. Le istruzioni RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY e RESTORE VERIFYONLY operano in un singolo set di backup all'interno del set di supporti nei dispositivi di backup specificati. È consigliabile specificare il backup necessario all'interno del set di supporti. È possibile ottenere il valore di backup_set_file_number di un set di backup utilizzando 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. Il valore 1 per backup_set_file_number (FILE = 1) indica il primo set di backup nel supporto di backup, il valore 2 per backup_set_file_number (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. In un'istruzione RESTORE è consentita una sola opzione FILE di un set di backup. È 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 set di risultati dell'istruzione RESTORE HEADERONLY restituisce informazioni su ogni set di backup, inclusa la relativa Posizione nel set di supporti. Per restituire informazioni su un determinato set di backup, utilizzare il relativo numero di posizione come valore di backup_set_file_number nell'opzione FILE.

NotaNota
Per i supporti a nastro, RESTORE HEADER elabora solo i set di backup contenuti nel nastro caricato.

RESTORE VERIFYONLY

Il valore predefinito di backup_set_file_number è 1.

Nota

L'opzione FILE per la specifica di un set di backup non è correlata all'opzione FILE per la specifica di un file di database, ovvero FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }.

Riepilogo del supporto delle opzioni WITH

Le opzioni WITH seguenti sono supportate solo dall'istruzione RESTORE: BLOCKSIZE, BUFFERCOUNT, MAXTRANSFERSIZE, PARTIAL, KEEP_REPLICATION, { RECOVERY | NORECOVERY | STANDBY }, REPLACE, RESTART, RESTRICTED_USER e { STOPAT | STOPATMARK | STOPBEFOREMARK }

Nota

L'opzione PARTIAL è supportata solo dall'istruzione RESTORE DATABASE.

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

{ REWIND | NOREWIND }

Solo REWIND

Solo REWIND

Solo REWIND

STATS

{ UNLOAD | NOUNLOAD }

1 FILE **=**backup_set_file_number, distinta da {FILE | FILEGROUP}.