2013-02-19 17 views
18

Sto cercando di ripristinare un backup del database ma ottenere errore:ripristino del database non riuscendo con mossa

Restore failed for Server 'ASIF-VAIO'. (Microsoft.SqlServer.SmoExtended)

ADDITIONAL INFORMATION:

System.Data.SqlClient.SqlError: File 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\uwa.mdf' is claimed by 'Aston_Fresh_log'(2) and 'Aston_Fresh'(1). The WITH MOVE clause can be used to relocate one or more files. (Microsoft.SqlServer.Smo)

+0

Sto utilizzando SSMS per ripristinarlo. – DotnetSparrow

+0

Sto utilizzando SSMS per il backup e lo stesso per il ripristino del backup – DotnetSparrow

+1

Quindi stai semplicemente ripristinando o stai impostando parametri/valori specifici?Sembra che i file che si desidera ripristinare esistano già e siano in uso sul proprio sistema - provare a definire nuovi nomi di file per il ripristino –

risposta

27

Durante il ripristino, è necessario essere sicuri di

  • scegliere un nuovo nome di database che doesn' t esistono già (a meno che non si desidera sovrascrivere quel database pre-esistente)

enter image description here

  • spuntare l'opzione Overwrite nella scheda Options e definire validi i nomi di file e nuovi per il file .mdf e .ldf in modo da non sovrascrivere accidentalmente un altro database sul sistema:

enter image description here

+1

Mi sono assicurato che tutti i vostri suggerimenti fossero corretti e ricevo ancora l'errore. –

+12

Ho scoperto il mio errore: stavo usando gli stessi nomi di file per i file Data e Objects. Quindi chiunque abbia lo stesso problema, assicurati che i tuoi nomi di file siano validi, nuovi e non identici per i diversi file che devi ripristinare (come Dati, Oggetti o Log). –

+0

Un piccolo consiglio che ho appena trovato. Quando cambi i nomi dei file "Ripristina come", non aggiunge l'estensione .mdf/.ldf, quindi stavo tentando di impostarli sullo stesso file. Specificando l'estensione cancellata. – PunkyGuy

3

Questo ha funzionato per me: dare un nome diverso a ciascun file MDF e LDF nella sezione script.

MOVE N'R_Data' 
    TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\Build51_Testing_db1.mdf', 

MOVE N'R_audit' 
    TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\Build51_Testing_db2.mdf', 

ecc ...

Originariamente suggerito da Alberto Morillo

3

Questo post non ha alcuni eccellenti risposte, ma non credo la mia soluzione era coperto qui, o non ho capito la risposta /commento.

Tuttavia, quando ho riscontrato questo errore stavo ripristinando un database con 2 indici (primario e indice). Il problema era che durante il ripristino aveva creato due file .ndf, uno per ciascun indice, ma li aveva denominati la stessa cosa.

Quindi, in sostanza ho avuto due "ripristino come" ripristino di file a "D:. \ MSSQLDATA \ DatabaseName.ndf

Per ovviare a questo ho dovuto cambiare uno dei nomi di file, così per esempio ho cambiato

Index  | D:\MSSQLDATA\DatabaseName.ndf 
Primary | D:\MSSQLDATA\DatabaseName1.ndf 

avendo nomi di file univoci risolto questo per me.

0

lo so che è da tempo l'ultima risposta, ma mi è capitato di ricerca in Google per soluzione per questo problema. cosa ha fatto per me, è stata di script per il ripristina (cambiando il nome del file non ha fatto il trucco) e modificando manualmente i nomi dei file nel codice

RESTORE DATABASE [DB_NAME] 
FILE = N'[name]', 
FILE = N'[name1]', 
FILE = N'[name2]' 
FROM DISK = N'[file_path]' 
WITH FILE = 1m 
MOVE N'[name]' TO N'D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\\[name].mdf', 
MOVE N'[name1]' TO N'D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\\[name1].mdf', 
MOVE N'[name2]' TO N'D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\\[name2].mdf', 
MOVE N'[logname]' TO N'D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\\[logname].ldf' 
NOUNLOAD, 
REPLACE, 
STATS = 10 
GO 

saluti

0

Se avete questo problema e non è quanto sopra, provare sotto il ripristino Opzioni> File, controllare il trasferimento di tutti i file di casella di controllo cartella.

enter image description here

Problemi correlati