Argomenti dell'istruzione RESTORE (Transact-SQL)

Data aggiornamento: 12 dicembre 2006

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 è supportata 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

Sintassi

Per informazioni sulla sintassi, vedere gli argomenti seguenti:

Argomenti

  • DATABASE

    [!NOTA] Argomento 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 transazioni di massa, in Microsoft SQL Server 2005 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 non includa la clausola WITH REPLACE o WITH STOPAT. Per ulteriori informazioni sul backup della parte finale del log, vedere Backup della parte finale del log.

  • LOG

    [!NOTA] Argomento 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}

    [!NOTA] Argomento 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 ]

    [!NOTA] Argomento 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 transazioni di massa, 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 transazioni di massa. 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.

      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 le periferiche 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 le periferiche di backup logiche o fisiche da utilizzare per l'operazione di ripristino.

      [!NOTA] Argomento supportato da tutte le istruzioni: RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, RESTORE REWINDONLY e RESTORE VERIFYONLY.

      • <backup_device> ::=
        Specifica la periferica di backup logica o fisica 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, delle periferiche di backup create tramite sp_addumpdevice da cui viene ripristinato il database. Se indicato in forma di variabile (
          @logical_backup_device_name_var), il nome della periferica 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 dalla periferica disco o nastro specificata. I tipi di periferica disco e nastro devono essere specificati con il nome effettivo (ad esempio, percorso completo e nome di file) della periferica: DISK = 'C:\Programmi\Microsoft SQL Server\MSSQL\BACKUP\Mybackup.bak' oppure TAPE = '\\.\TAPE0'. Se indicato in forma di variabile (
          @physical_backup_device_name_var), il nome della periferica 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 una periferica di tipo disco. Per ulteriori informazioni sull'utilizzo di nomi in formato UNC, vedere Periferiche di backup.

          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 periferiche di backup in un elenco delimitato da virgole.

        Per una sequenza di ripristino, la necessità o meno di utilizzare lo stesso numero di periferiche 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.

        • Per le operazioni di ripristino non in linea è consentito ripristinare un backup utilizzando meno periferiche di quelle utilizzate per creare il backup.
        • Per i ripristini in linea sono invece necessarie tutte le periferiche di backup utilizzate per creare il backup. Qualsiasi tentativo di eseguire il ripristino con un numero inferiore di periferiche 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 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à.

        Per ulteriori informazioni, vedere Utilizzo di supporti di backup in SQL Server.

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

    • <database_snapshot>::=

      [!NOTA] Argomento 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" nell'argomento relativo all'istruzione RESTORE {DATABASE}.

WITH <with_options> ::=

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.

  • PARTIAL

    [!NOTA] Argomento supportato solo 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, invece, l'opzione PARTIAL esegue tali controlli di sicurezza.

  • { CHECKSUM | NO_CHECKSUM }

    [!NOTA] Argomento 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.

      Per impostazione predefinita, se viene individuato un valore di checksum non valido, l'istruzione RESTORE segnala un errore checksum e viene interrotta. 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.

      I checksum per il backup sono una novità di SQL Server 2005. Per ulteriori informazioni sull'utilizzo dei valori di checksum per il backup, vedere Rilevazione e correzione degli errori relativi ai supporti.

    • NO_CHECKSUM
      Disattiva in modo esplicito la convalida dei valori di checksum durante l'operazione di ripristino.
  • { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }

    [!NOTA] Argomento supportato da RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY e RESTORE VERIFYONLY.

    • STOP_ON_ERROR
      Specifica che l'operazione di ripristino deve essere interrotta 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 che non include errori, ad esempio una copia di backup creata prima del danneggiamento. Come ultima risorsa, tuttavia, è possibile ripristinare il backup danneggiato utilizzando l'opzione CONTINUE_AFTER_ERROR dell'istruzione di ripristino e tentare di recuperare i dati.

  • FILE ={ backup_set_file_number | **@**backup_set_file_number }

    [!NOTA] Argomento 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.

    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.

    ms178615.note(it-it,SQL.90).gifImportante:
    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 }.
  • KEEP_REPLICATION

    [!NOTA] Argomento supportato solo da RESTORE.

    È consigliabile utilizzare l'opzione KEEP_REPLICATION quando si configura la replica per l'interazione con la distribuzione dei log. 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.
  • LOADHISTORY

    [!NOTA] Argomento 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).

  • MEDIANAME = { media_name | **@**media_name_variable}

    [!NOTA] Argomento 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.

    ms178615.note(it-it,SQL.90).gifImportante:
    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 }

    [!NOTA] Argomento 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.

    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.

    ms178615.note(it-it,SQL.90).gifImportante:
    Il livello di protezione del set di supporti garantito da questa password è ridotto. Per ulteriori informazioni, vedere la sezione "Autorizzazioni" per l'istruzione specifica.

    [!NOTA] L'opzione MEDIAPASSWORD verrà rimossa in una versione futura.

  • MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name' [ ...*n *]

    [!NOTA] Argomento 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.

  • PASSWORD = { password | **@**password_variable }

    [!NOTA] Argomento 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.

    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.

    ms178615.note(it-it,SQL.90).gifImportante:
    Il livello di protezione del set di supporti garantito da questa password è ridotto. Per ulteriori informazioni, vedere la sezione Autorizzazioni per l'istruzione specifica.

    [!NOTA] L'opzione PASSWORD verrà rimossa in una versione futura di SQL Server.

  • BLOCKSIZE = { blocksize | **@**blocksize_variable }
    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 le periferiche nastro e 512 negli altri casi. Questa opzione non è in genere necessaria, poiché le dimensioni del blocco appropriate per la periferica 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 periferiche nastro.

  • BUFFERCOUNT = { buffercount | **@**buffercount_variable }
    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 }
    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).
  • ENABLE_BROKER

    [!NOTA] Argomento supportato solo da RESTORE {DATABASE}.

    Avvia Service Broker in modalità di attivazione per consentire l'invio immediato dei messaggi. Per impostazione predefinita, durante un ripristino Service Broker viene avviato in modalità di disattivazione.

  • ERROR_BROKER_CONVERSATIONS

    [!NOTA] Argomento supportato solo da RESTORE {DATABASE}.

    Termina tutte le conversazioni e restituisce un errore che indica che il database è collegato o ripristinato. Service Broker viene disattivato fino al termine dell'operazione e quindi viene riattivato.

  • NEW_BROKER

    [!NOTA] Argomento supportato solo da RESTORE {DATABASE}.

    Crea un nuovo valore di service_broker_guid sia in sys.databases che nel database ripristinato e termina tutti gli endpoint di conversazione con l'eliminazione. Service Broker è attivato, ma agli endpoint di conversazione remoti non viene inviato alcun messaggio.

  • { RECOVERY | NORECOVERY | STANDBY }

    [!NOTA] Argomento supportato solo 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 non in linea 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 non in linea, 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 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.

      [!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.

      ms178615.note(it-it,SQL.90).gifImportante:
      Se lo spazio disponibile nell'unità contenente il file standby specificato diventa insufficiente, l'operazione di ripristino viene interrotta.

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

  • REPLACE

    [!NOTA] Argomento supportato solo dall'istruzione 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

    [!NOTA] Argomento supportato solo dall'istruzione 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

    [!NOTA] Argomento supportato solo dall'istruzione RESTORE.

    Limita l'accesso al database ripristinato ai membri dei ruoli db_owner, dbcreator o sysadmin. In SQL Server 2005 l'opzione RESTRICTED_USER sostituisce l'opzione DBO_ONLY. DBO_ONLY è disponibile per compatibilità con le versioni precedenti.

    Utilizzare sempre l'opzione RECOVERY.

    Per ulteriori informazioni, vedere Impostazione delle opzioni di database.

  • { REWIND | NOREWIND }
    Queste opzioni vengono utilizzate solo per le periferiche nastro. Se non viene utilizzata una periferica nastro, queste opzioni vengono ignorate.

    • NOREWIND

      [!NOTA] Argomento supportato solo 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 Periferiche di backup.

  • { UNLOAD | NOUNLOAD }

    [!NOTA] Argomento supportato da RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY, RESTORE LABELONLY, RESTORE REWINDONLY e RESTORE VERIFYONLY.

    Queste opzioni vengono utilizzate solo per le periferiche nastro. Se non viene utilizzata una periferica 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.
  • STATS [ = percentage ]

    [!NOTA] Argomento supportato dalle istruzioni 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.

  • { STOPAT | STOPATMARK | STOPBEFOREMARK }

    [!NOTA] Argomento supportato solo da RESTORE e solo per i modelli di recupero con registrazione completa o con registrazione minima delle transazioni di massa.

    • STOPAT = { 'date_time' | **@**date_time_var }
      Specifica che il database deve essere ripristinato nello stesso stato in cui si trovava nella data e ora specificate.

      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. Tale 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 interrotto in corrispondenza del primo contrassegno con il nome specificato. Se AFTER datetime viene specificato, il recupero viene interrotto 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. Tale 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 interrotto subito prima del primo contrassegno con il nome specificato. Se AFTER datetime viene specificato, il recupero viene interrotto subito prima del primo contrassegno avente il nome specificato, nella data e ora indicate in datetime o in un momento successivo.

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 nelle periferiche di backup specificate. È consigliabile specificare il backup necessario all'interno del set di supporti.

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.

ms178615.note(it-it,SQL.90).gifNota:

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: 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 che supportano ogni 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}.

Autorizzazioni

Per informazioni sulle autorizzazioni, vedere gli argomenti seguenti:

Esempi

Per gli esempi, vedere gli argomenti seguenti:

Vedere anche

Riferimento

BACKUP (Transact-SQL)
RESTORE (Transact-SQL)
RESTORE FILELISTONLY (Transact-SQL)
RESTORE HEADERONLY (Transact-SQL)
RESTORE LABELONLY (Transact-SQL)
RESTORE REWINDONLY (Transact-SQL)
RESTORE VERIFYONLY (Transact-SQL)

Altre risorse

Backup e ripristino di database in SQL Server

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

12 dicembre 2006

Contenuto modificato:
  • Aggiunta di descrizioni delle opzioni BLOCKSIZE, BUFFERCOUNT e MAXTRANSFERSIZE.
  • Correzione delle descrizioni di STOPATMARK e STOPBEFOREMARK.

14 aprile 2006

Nuovo contenuto:
  • Aggiunta della sezione "Specifica di un set di backup".
  • Aggiunta di una nota nella descrizione dell'argomento STOPATMARK.
  • Aggiunta delle sezioni seguenti, contenenti collegamenti ad altri argomenti relativi all'istruzione RESTORE con altre informazioni pertinenti:
    • "Sintassi"
    • "Osservazioni"
    • "Set di risultati"
    • "Osservazioni"
    • "Autorizzazioni"
    • "Esempi"
Contenuto modificato:
  • Modifica della nota nella descrizione dell'argomento STOPAT.
  • Modifica della variabile logical_file_name in logical_file_name_in_backup.
  • Aggiornamento delle descrizioni delle opzioni {REWIND | NOREWIND} e {UNLOAD | NOUNLOAD}.

5 dicembre 2005

Nuovo contenuto:
  • Aggiunta delle opzioni ENABLE_BROKER e ERROR_BROKER_CONVERSATIONS.