2010-03-07 5 views
75

Qualcuno può aiutarmi, sto tentando di eseguire il backup di un database situato su localhost \ SQLEXPRESS ma continuo a ricevere quanto segue errore:Errore di backup del server SQL 2008 - Errore del sistema operativo 5 (impossibile recuperare il testo per questo errore Motivo: 15105)

Backup failed for Server 'localhost\SqlExpress'. (Microsoft.SqlServer.SmoExtended) 

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.0.2531.0+((Katmai_PCU_Main).090329-1045+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Backup+Server&LinkId=20476 


ADDITIONAL INFORMATION: 

System.Data.SqlClient.SqlError: Cannot open backup device 'C:\backup.bak'. Operating system error 5(failed to retrieve text for this error. Reason: 15105). (Microsoft.SqlServer.Smo) 

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.0.2531.0+((Katmai_PCU_Main).090329-1045+)&LinkId=20476 

Qualcuno può spiegare cosa sto facendo male qui ??

grazie

+3

In Windows 7/2008 non è consentito salvare i file nella directory principale di C, quindi se si sta utilizzando uno di questi due sistemi operativi, questo ha senso. – Peter

+8

Forse fuori tema, ma utile per me! – kravits88

+0

ho avuto il problema ed è stato causato dal file già esistente. Avevo bisogno di aggiungere del codice per gestirlo - e forse cercavo un'opzione nell'oggetto Backup (sto usando C# per eseguire il backup nella mia applicazione) –

risposta

86

Sembra che SQL Server non disponga dell'autorizzazione per accedere al file C: \ backup.bak. Vorrei verificare le autorizzazioni dell'account assegnato all'account del servizio SQL Server.

Come parte della soluzione, è possibile che si desideri salvare i file di backup in un'altra posizione che sia la radice dell'unità C :. Questa potrebbe essere una delle ragioni per cui hai problemi di autorizzazione.

15

Supponendo che il file * .bak è sulla stessa macchina come istanza SQL Express potrebbe essere un problema di autorizzazioni.

Se si scarica procmon http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx, è possibile filtrare su quel percorso file, cercare gli errori ACCESS_DENIED e se ci sono altri è possibile vedere il nome dell'account che non riesce ad accedere.

+2

Ho avuto un problema completamente diverso (non abbastanza spazio su disco) che si manifesta sotto lo stesso numero di errore - procmon mi ha indicato nella giusta direzione - sicuramente uno da ricordare per il futuro. Grazie Martin. – Godders

3

Sì, è un problema di sicurezza. Controllare le autorizzazioni della cartella e l'account di servizio in base al quale viene avviato SQL Server 2008.

39

Ho riscontrato questo errore, quando non c'era spazio sufficiente per creare il backup.

+16

Ho avuto lo stesso identico problema. Un semplice e semplice messaggio di errore sul non avere abbastanza spazio su disco avrebbe aiutato molto. grazie microsoft –

+0

Ho anche ricevuto questo errore e l'ho risolto estendendo lo spazio su disco del server. –

+0

Yepp, dopo aver letto questa risposta ho controllato il mio drive solo per rimanere scioccato, c'era rimasto un misero spazio di 300 MB: D Rimozione di vecchi backup obsoleti liberati abbastanza. – gabore

5

Ho lo stesso errore. Ho cercato di risolvere questo problema impostando una maggiore autorizzazione per l'account in esecuzione il servizio SQL Client, tuttavia non ha aiutato. Il problema è che eseguo MS Sql Management studio solo nel mio account. Quindi, la prossima volta ... assicurati di eseguirlo come Esegui come amministratore, se si utilizza Win7 con UAC attivato.

10

Ho ricevuto anche questo errore.

Il problema si è verificato semplicemente con la necessità di creare manualmente la struttura di directory completa per le posizioni dei file MDF & MDF.

Vergogna su SQL-Server per non aver segnalato correttamente la directory mancante!

3

Ho avuto questo errore. Niente ha funzionato fino a quando non ho aperto il file di log di SQLServer nella cartella Log "MSSQL10_50". Ciò indicava chiaramente quale file non poteva essere sovrascritto. Si è scoperto che il file .mdf veniva scritto nella cartella dei dati "MSSQL10". Mi sono assicurato che quella cartella avesse le stesse autorizzazioni utente SQLServer della cartella equivalente "MSSQL10_50". Poi tutto ha funzionato.

Il problema qui è che il dettaglio dell'errore è registrato ma non segnalato, quindi controllare i registri.