"Nessun set di backup selezionato per il ripristino" SQL Server 2012


150

Ho un database SQL Server 2012 con filestream abilitato. Tuttavia, quando eseguo il backup e provo a ripristinarlo su un'altra istanza di SQL Server 2012 (su un altro computer), ottengo semplicemente questo messaggio che:

Nessun set di backup selezionato per il ripristino.

Neanche una sola riga di ulteriori spiegazioni. Cosa c'è che non va qui?

Ogni altro database senza filestream è OK e può essere ripristinato correttamente. È qualcosa legato al filestream? Devo installare un aggiornamento rapido o qualcosa del genere.


1
Non l'ho ancora risolto. Sembra che la configurazione di SQL Server abbia problemi. Penso che le cose dovrebbero essere più facili di così.
Saeed Neamati,

1
Potete fornire il T-SQL che state usando per tentare il ripristino?
Ben giovedì

3
Bene, sto usando la GUI di SSMS.
Saeed Neamati,

Anche facendo così, dovrebbe esserci un pulsante "script" da qualche parte vicino alla parte superiore della finestra. Dopo aver impostato tutto nel modo in cui pensi che sarebbe impostato per il ripristino, premi quello invece di "ok" e visualizzerà il T-SQL che verrebbe eseguito sul server per il ripristino.
Ben giovedì

1
Il problema con i permessi è stato anche per me con SQL 2014 Standard (standalone) su WS 2012 R2 (gruppi di lavoro) ma ho dovuto riavviare due volte per 'prendere' le autorizzazioni. Per quello che vale .. Spero che anche voi tutti vi risolviate.
BaldEagle,

Risposte:


177

Ho avuto questo problema e ho scoperto che stavo cercando di ripristinare la versione errata di SQL. Se vuoi maggiori informazioni su cosa sta succedendo, prova a ripristinare il database usando il seguente SQL:

RESTORE DATABASE <YourDatabase> 
FROM DISK='<the path to your backup file>\<YourDatabase>.bak'

Questo dovrebbe darti il ​​messaggio di errore che è necessario eseguire il debug di questo.


Quale messaggio di errore viene visualizzato quando si tenta di ripristinare utilizzando l'SQL sopra?
user489998

Sembra che il ripristino di DB utilizzando lo script T-SQL avrebbe funzionato. Penso che poiché non abbiamo eseguito il backup dei dati di filestream, l'interfaccia utente non è in grado di gestirli.
Saeed Neamati,

1
Bello, mi piace l'approccio SQL grezzo. Ricevo un messaggio come `Il set di media ha 2 famiglie di media ma ne viene fornita solo 1. Devono essere forniti tutti i membri. - Questo significa che l'origine del backup era una versione di SQL Server diversa dalla destinazione del backup? Quando provo con l'approccio UI ("Restore"), ricevo il messaggio @ topNo backupset selected to be restored.
The Red Pea,


Se si desidera sostituire completamente il database esistente, utilizzare l' opzione WITH REPLACERESTORE DATABASE <YourDatabase> FROM DISK='<the path to your backup file>\<YourDatabase>.bak' WITH REPLACE
Iasmini Gomes,

63

Il mio problema è finito per essere autorizzazioni . Sono su una macchina di sviluppo e copiato tramite Homegroup. In qualche modo, probabilmente in base a dove ho copiato il file, le autorizzazioni sono state incasinate e Management Studio non è riuscito a leggere il file. Dato che questo è dev, ho appena dato a tutti i permessi per il file bak e ho potuto ripristinare con successo tramite la GUI.


Questo ha funzionato anche per me. È COSÌ DUMB che il mio nome utente può disporre delle autorizzazioni per quella cartella, ma l'unico modo per farlo funzionare era aggiungere il gruppo "Tutti" alle autorizzazioni sulla cartella. Così frustrante, ma grazie per avermi risparmiato tempo!
hurleystylee,

5
Completa mancanza di utili messaggi di errore in questo caso. Anche il mio problema è stato risolto.
dodgy_coder

1
Booya! Devi amare quegli errori generici che non ti dicono nulla. Ovviamente erano permessi. Mi è successo durante il ripristino da server sql su domini diversi. Modificato il permesso del file .bak per tutti. Ha funzionato bene dopo.
Prescient

Si sono verificati gli stessi problemi durante il tentativo di ripristinare il database dal .bakfile, creato dal servizio Web di caricamento file, che viene eseguito in IISApplicationPoolIdentity
apdevelop

26

Durante l'esecuzione:

RESTORE DATABASE <YourDatabase> 
FROM DISK='<the path to your backup file>\<YourDatabase>.bak'

Mi ha dato il seguente errore:

La famiglia di supporti sul dispositivo "C: \ NorthwindDB.bak" non è formata correttamente. SQL Server non può elaborare questa famiglia di supporti. RIPRISTINA HEADERONLY si sta chiudendo in modo anomalo. (Microsoft SQL Server, errore: 3241) Blockquote

Risulta che non è possibile portare un DB da una versione SQL superiore a una versione inferiore, anche se il livello di compatibilità è lo stesso sia sul DB di origine che su quello di destinazione. Per verificare l'esecuzione della versione SQL:

Select @@Version

Per vedere la differenza, basta creare un DB sul server SQL di origine e provare a eseguire un ripristino dal file di backup, quando lo fai con SSMS, una volta selezionato il file di backup mostrerà alcune informazioni su di esso come se fossero impresse quando aprilo da un server versione precedente che dirà semplicemente "nessun set di backup selezionato per il ripristino" inserisci qui la descrizione dell'immagine

Quindi, se hai ancora bisogno di spostare i tuoi dati in una versione inferiore di SQL, controlla questo .


quindi se eseguo un backup db dalla macchina con sql server 2014 enterprise - posso ripristinarlo su sql server 2014 express?
chester89,

@ chester89 Penso che dipenda dal tipo di funzionalità che hai nel DB. E il tipo di backup. La versione express non riconosce i backup compressi. Inoltre, se la versione enterprise utilizza qualcosa di unico per enterprise, la versione gratuita (express) non la riconoscerà. Ma, se hai qualcosa di standard, teoricamente dovrebbe essere riconosciuto.
Juan Acosta,

@JuanAcosta sì, l'ho messo insieme. Nel mio caso, non ci sono funzionalità specifiche
dell'azienda

@JuanAcosta puoi indicarmi una documentazione che afferma che l'edizione express non può ripristinare il backup compresso?
chester89,

@Chester, consultare pagina 234 punto 3. L'opzione predefinita è l'unica disponibile in versione express. books.google.com.au/…
Juan Acosta,

15

Esegui SQL Server Management Studio come amministratore (fai clic con il pulsante destro del mouse sul collegamento / exe, quindi seleziona "Esegui come amministratore"), quindi prova a ripristinare.


10

Pensavo di non essere abbastanza stupido da confondere le versioni - tuttavia, non mi ero reso conto che sul mio nuovo server, un'istanza di SQL Server 2005 era già installata dalla nascita denominata SQLEXPRESS. Durante il tentativo di ripristinare il mio database di backup di SQL Server 2008 R2 in SSMS 2012 SQLEXPRESSnell'istanza, l'elenco dei set di backup era vuoto.

Alla fine mi sono reso conto che l' SQLEXPRESSistanza sul server non era un'istanza del 2012, ma un 2005. Mi sono disconnesso e mi sono connesso all'istanza effettiva del 2012 (nel mio caso nominata SQLEXPRESS2012), e (ovviamente) ha funzionato.


2
Questo mi ha indicato la giusta direzione per il mio problema. Ho ricevuto lo stesso errore del poster originale ma era perché stavo tentando di ripristinare un backup da SQL Express 2012 a un'istanza di SQL Server 2008. Comprensibilmente questo non è consigliabile, sfortunatamente l'errore non era abbastanza descrittivo per arrivare al problema di root.
Almeno il

1
Wow! Ho installato troppe hotfix dal sito ma quell'errore non è scomparso. Ho visto questa risposta e ho effettuato l'accesso con l'istanza di SQL Server 2012 e ho provato a ripristinare, FUNZIONATO! Huh grazie :)
Ali Baig,

1
Quindi stai dicendo che non puoi ripristinare dalla versione completa alla versione espressa?
Zapnologica,

7

Il mio problema era che il mio utente era nel gruppo Builtin-Administrators e nessun utente con ruolo Sysadmin su SQL Server. Ho appena avviato Management Studio come amministratore. In questo modo è stato possibile ripristinare il database.


Ho usato il seguente articolo per creare un nuovo utente amministratore di sistema (vedere la Sezione 2 utilizzando la modalità utente singolo): wikihow.com/Reset-SA-Password-in-Sql-Server
Savage

6

Cordiali saluti: Ho scoperto che durante il ripristino, dovevo utilizzare le stesse credenziali (utente SQL) per accedere a SSMS. Prima avevo provato il ripristino utilizzando un account di autenticazione di Windows.


6

Nel mio caso, sono state le autorizzazioni e il fatto che ho usato "Ripristina file e filegroup ..." anziché semplicemente "Ripristina database ...".

Questo ha fatto la differenza.

inserisci qui la descrizione dell'immagine


6

Per me è un problema di privilegi dell'utente. Ho effettuato l'accesso con un utente e funziona perfettamente.


5

Per me il problema era che il file .BAK si trovava in una cartella crittografata sul server. Anche con diritti di amministratore completi, non sono mai riuscito a far leggere il file a SSMS. Spostare il .BAK in una cartella non crittografata ha risolto il mio problema. Si noti che dopo aver spostato il file potrebbe essere necessario modificare anche le proprietà sul file effettivo per rimuovere la crittografia (clic con il pulsante destro del mouse, proprietà, avanzate, deselezionare "Crittografa contenuto per proteggere i dati".


3

Ho avuto lo stesso problema con SQL Server 2014 (Management Studio non è riuscito a vedere la cartella in cui risiedeva il file di backup, durante il tentativo di individuarlo per un'operazione di ripristino). Questo thread contiene la risposta che ha risolto il mio problema. Citazione:

L'account del servizio SQL Server è disponibile in Start-> Pannello di controllo-> Strumenti di amministrazione-> Servizi. Fare doppio clic sul servizio SQL Server-> scheda Accesso. Utilizzerai "Account di sistema locale" o "Questo account" per definire un account specifico. Se si utilizza l'account di sistema locale, non sarà possibile fare riferimento a backup non locali sul server. Se invece hai definito l'account da usare, questo è l'account che deve avere accesso al percorso del file di backup. La tua capacità di accedere ai backup utilizzando il tuo accesso personale è irrilevante; è l'account SQL Server utilizzato, anche se si avvia il backup. Il personale IT dovrebbe essere in grado di determinare quali diritti sono concessi a ciascun account.

Spero che aiuti qualcuno.


apprezzo che tu abbia citato la fonte proprio qui in linea, molto più facile usare queste informazioni senza allontanarti da questa pagina.
qxotk,

3

Nel mio caso (nuova installazione del server sql, nuovo utente creato) il mio utente non aveva semplicemente il permesso necessario. Ho effettuato l'accesso a Management Studio come sa , quindi sono andato su Sicurezza / Login, ho fatto clic con il pulsante destro del mouse sul mio nome utente, Proprietà, quindi nella sezione Ruoli server ho controllato sysadmin.


2

Per me, è stato perché il file di backup era ancora aperto da un altro processo. Ecco il registro eventi:

BackupDiskFile :: OpenMedia: impossibile aprire il dispositivo di backup "X: \ Backups \ MyDatabase \ MyDatabase_backup_2014_08_22_132234_8270986.bak". Errore del sistema operativo 32 (Il processo non può accedere al file perché è utilizzato da un altro processo.).

Semplicemente chiudendo e riaprendo Sql Server Management Studio lo ha risolto (quindi ovviamente era ssms.exe che aveva l'handle ..)


1

Un altro potenziale motivo di questo glitch sembra essere Google Drive. Google Drive sta comprimendo i file bak o qualcosa del genere, quindi se desideri trasferire un backup del database tramite Google Drive, sembra che tu debba prima comprimerlo.


1

Se si desidera sostituire completamente il database esistente, utilizzare l' opzione WITH REPLACE :

RESTORE DATABASE <YourDatabase> 
FROM DISK='<the path to your backup file>\<YourDatabase>.bak'
WITH REPLACE

1

Nel mio caso, si è trattato di un problema di autorizzazioni.

inserisci qui la descrizione dell'immagine

Per l'utente di Windows, che stavo usando non aveva un dbcreatorruolo.

Quindi ho seguito i passaggi seguenti

  1. Connettiti saal server SQL
  2. Espandi Securityin Esplora oggetti
  3. Espandere Logins
  4. Fare clic con il tasto destro del mouse sull'utente Windows in questione
  5. Clicca su Proprietà
  6. Seleziona Server Rolesda Select a pageopzioni
  7. Verifica dbcreatorruolo per l'utente
  8. Clicca OK

inserisci qui la descrizione dell'immagine


0

Utilizzo di SQL Server 2012 Express.

Errore mio (da SQL Manager - Ripristina finestra di dialogo database):

No backupset selected to be restored

Inoltre, nell'elenco non erano presenti set di backup da selezionare.

Il problema era che avevo spostato 1 dei 5 file di backup in una cartella in cui l'utente di accesso al servizio SQL Server non disponeva delle autorizzazioni: ho provato ad aggiungere quell'utente, ma non sono riuscito a ottenere l'utente NT Service \ MSSQL $ SQLEXPRESS nella sicurezza elenco.

Ho spostato il file nella cartella Documenti per l'utente del servizio e questo mi ha permesso di leggere tutti i file che avevo selezionato - 4 a quel punto - e l'errore è cambiato in "set di supporti mancante" - quindi ho cercato un altro file di backup e quando ho aggiunto che sono stato in grado di ripristinare.

Le risposte a questa domanda mi hanno aiutato a cercare i posti giusti e ad arrivare a una soluzione.


0

Per me, è stato un problema di autorizzazione. Ho installato il server SQL utilizzando un account utente locale e prima di accedere al dominio delle mie aziende. Successivamente, ho provato a ripristinare un database utilizzando il mio account di dominio che non dispone delle autorizzazioni necessarie per ripristinare i database del server SQL. È necessario correggere l'autorizzazione per il proprio account di dominio e concedergli l'autorizzazione di amministratore di sistema sull'istanza del server SQL in uso.


0

Ho ricevuto lo stesso messaggio di errore anche se eseguo il backup e il ripristino sulla stessa macchina singola.

Il problema era da qui: durante il backup, avevo 2 oggetti nella casella di destinazione.

Quindi la correzione sarebbe: assicurati che solo 1 elemento nella casella 'destinazione'. Rimuovi tutti gli altri se ci sono.


0

Ho riscontrato lo stesso problema. Eseguire SSMS come amministratore, quindi fare clic con il tasto destro ed eseguire il ripristino del database. Dovrebbe funzionare.


0

Penso di ottenere il premio per la ragione più grave per ottenere questo errore. Nella finestra di dialogo Ripristina database, il menu a discesa del database in Origine è grigio e ho pensato che fosse disabilitato. Ho saltato il menu a discesa del database sotto Destinazione pensando che fosse la fonte e ho fatto una selezione. In questo modo verrà visualizzato questo messaggio di errore.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.