2013-02-19 14 views
18

Ich versuche, einen Datenbank-Backup wiederherstellen, aber immer Fehler:Datenbank wiederherstellen andernfalls mit Schritt

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

Ich benutze SSMS, um es wiederherzustellen. – DotnetSparrow

+0

Ich verwende SSMS für die Sicherung und dasselbe für die Wiederherstellung der Sicherung – DotnetSparrow

+1

Also einfach nur wiederherstellen, oder setzen Sie bestimmte Parameter/Werte?Es sieht so aus, als ob die Dateien, die Sie wiederherstellen möchten, bereits existieren und auf Ihrem System verwendet werden - versuchen Sie, neue Dateinamen für Ihre Wiederherstellung zu definieren –

Antwort

27

Bei der Wiederherstellung, müssen Sie

  • sicher sein, einen neuen Datenbank-Namen auswählen, die ‚doesn t existieren bereits

enter image description here

(es sei denn, Sie, dass bereits bestehende Datenbank überschrieben werden soll)
  • Sie die Overwrite Option in der Options Registerkarte Zecken- und gültig und neue Dateinamen für die .mdf und .ldf Datei definieren, so dass Sie nicht versehentlich eine andere Datenbank auf Ihrem System überschreiben:

enter image description here

+1

Ich habe alle deine Vorschläge richtig gemacht und bekomme trotzdem den Fehler. –

+12

Ich habe meinen Fehler gefunden: Ich habe die gleichen Dateinamen für Daten und Objekte verwendet. Falls jemand anderes das gleiche Problem hat, stellen Sie sicher, dass Ihre Dateinamen gültig, neu und nicht identisch sind für die verschiedenen Dateien, die Sie wiederherstellen müssen (wie Daten, Objekte oder Log). –

+0

Ein kleiner Tipp, den ich gerade gefunden habe. Wenn Sie die Dateinamen von "Wiederherstellen als" ändern, wird die Erweiterung .mdf/.ldf nicht angehängt, so dass ich effektiv versuchte, sie auf dieselbe Datei zu setzen. Die Angabe der Erweiterung hat es gelöscht. – PunkyGuy

3

Das funktionierte für mich: Geben Sie jeder MDF- und LDF-Datei im Skriptabschnitt einen anderen Namen.

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', 

etc ...

Zitat von Alberto Morillo vorgeschlagen

3

Dieser Beitrag hat einige hervorragende Antworten, aber ich glaube nicht, meine Lösung wurde hier behandelt, oder ich verstand nicht, die Antwort /Kommentar.

Als ich jedoch diesen Fehler festgestellt habe, habe ich eine Datenbank mit 2 Indizes (Primary und Index) wiederhergestellt. Das Problem war, dass bei der Wiederherstellung zwei .ndf-Dateien erstellt worden waren, eine für jeden Index, die jedoch dasselbe benannt hatten.

So im Wesentlichen hatte ich zwei „Wiederherstellen als“ Wiederherstellung von Dateien auf „D:. \ MSSQLDATA \ DatabaseName.ndf

Um dies zu überwinden, ich hatte einen der Dateinamen zu ändern, so zum Beispiel änderte ich

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

haben eindeutige Dateinamen für mich festgelegt.

0

ich weiß, es ist lange her, die letzte Antwort, aber ich zufällig in google für Lösung für dieses Problem suchen. Was für mich tut es wurde scripting die Wiederherstellen (Dateiname ändern nicht den Trick) und manuelle Ändern der Dateinamen im Code

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 

Grüße

0

Wenn Sie dieses Problem haben und es ist nicht die oben, Wiederherstellungsoptionen unter dem versuchen> Dateien, überprüfen Sie die Umzug alle Dateien Ordner Kontrollkästchen.

enter image description here

Verwandte Themen