SQL Server 2008-Datenbankwiederherstellungsfehler - Sicherungsgerät 15105 kann nicht geöffnet werden

7

Ich versuche, aus einem Backup wiederherzustellen, und erhalte den folgenden Fehler

Meldung 3201, Ebene 16,
Status 2, Zeile 1 Sicherungsgerät 'Z: \ FULL_BACKUP.bak' kann nicht geöffnet werden. Betriebssystemfehler 3 (Text für diesen Fehler konnte nicht abgerufen werden. Grund: 15105).
Meldung 3013, Ebene 16, Status 1, Zeile 1
RESTORE DATABASE wird abnormal beendet.

Der Code, den ich in SQL Server verwendet habe, lautet wie folgt (ich habe auch versucht, die Dialogbildschirme zu verwenden, und das gleiche Ergebnis erhalten).

RESTORE DATABASE DEX
FROM DISK = 'Z:\FULL_BACKUP.bak'
WITH MOVE 'Decri' TO 'E:\Test\DEX.mdf',
MOVE 'Decri_log' TO 'E:\Test\DEX.LDF'

Es kann erwähnenswert sein, dass "FULL_BACKUP" von demselben SQL Server ohne Probleme erstellt wird (daher gehe ich davon aus, dass der Server über Berechtigungen verfügt).

Laufwerk Z ist ein Netzwerkpfad, für den alle Domänenbenutzer vollen Zugriff haben.

Die vollständige Sicherung beträgt 200 GB

Laufwerk E (lokal) verfügt über 500 GB freien Speicherplatz

Jede Hilfe wäre dankbar.


quelle
1
Wurde das vollständige Backup erstellt WITH INIT? Können Sie eine sehr einfache Datenbank erstellen, sie an demselben Speicherort sichern und versuchen, sie auf dieselbe Weise wiederherzustellen? (Dies wird trennen, ob das Problem das Laufwerk oder die Datei ist.)
Aaron Bertrand

Antworten:

16

OS-Fehlercode 3 lautet ERROR_PATH_NOT_FOUND: Das System kann den angegebenen Pfad nicht finden. Mit einem Pfad, der mit Z:meinen pshyhischen Kräften beginnt, sagen Sie mir, dass es sich um ein zugeordnetes Laufwerk handelt. Laufwerkszuordnung Sitzung scoped und ich bin Ihre Service - Sitzung überzeugt ist nicht zu sehen Z:. Das Zuordnen eines Laufwerks, das von einem Dienst gesehen werden soll, ist praktisch unmöglich .

Verwenden Sie einen gültigen Pfad. Verwenden Sie UNC-Namen wie \\server\share. Berücksichtigen Sie die Sicherheitsaspekte von Identitätswechsel und Delegierung beim Zugriff auf Remotefreigaben.

Remus Rusanu
quelle
1
Ich nahm an, dass sie die Freigabe so eingerichtet hatten, dass sie für das Dienstkonto sichtbar ist. Dies ist nicht unmöglich, wenn sie ein Domänenkonto für den Dienst verwenden, da sie sagten, dass sie das Backup von demselben Server erstellt haben. Wenn sie auf Z: \ sichern können (und ich gebe zu, das haben sie nicht explizit gesagt), sollten sie in der Lage sein, von Z: \ ... wiederherzustellen
Aaron Bertrand
2

In der Tat scheint die Verwendung des UNC-Pfads in SQL funktioniert zu haben (seltsamerweise haben die Dialogbildschirme immer noch nicht funktioniert, aber der wichtige Faktor ist, dass die schnelle Antwort hier das Problem behoben hat (vielen Dank!)

RESTORE DATABASE [RESTOREDB] FROM  DISK = N'\\SERVER\PATH\FULL_BACKUP.bak' WITH  FILE = 3,  
MOVE N'myDB' TO N'E:\Test\DEX.mdf'
MOVE N'myDB_log' TO N'E:\Test\DEX.LDF',  NOUNLOAD,  STATS = 10
GO
Sean
quelle
2
Dies sollte eigentlich keine separate Antwort sein, es werden keine Informationen hinzugefügt, die die Antwort von Remus noch nicht erklärt.
Aaron Bertrand
1
Darüber hinaus sollte hier das Häkchen für Remus 'Antwort gesetzt werden, um anzuzeigen, dass es genau das getan hat, was Sie wollten, zur Lösung des Problems beigetragen hat usw. Dies erhöht sein Ansehen in der Netzgemeinschaft und verleiht Ihrem Konto einen kleinen Schub auch (yay gamification!)
jcolebrand
Zustimmen; nur dass die Frage ursprünglich auf StackOverflow gepostet wurde und von Admins hierher verschoben wurde. Meine Anmeldedaten für diese Site würden nicht funktionieren, daher konnte ich Remus nur so gutschreiben.
Sean
-1

Hier ist was ihr tun müsst:

1) Starten Sie SQL Server Configuration Manager - Sie sollten dieses Programm in folgenden Bereichen finden können: Startmenü -> Alle Programme -> Microsoft SQL Server 2008 -> Konfigurationstools -> SQL Server Configuration Manager

2) Erweitern Sie die Baumansicht "SQL Server Services". Im rechten Bereich wird die Liste der installierten Dienste angezeigt. In meinem Fall muss ich mir die SQL Server 2008 R2-Instanz ansehen. Zuvor war es so eingestellt, dass es unter "NT AUTHORITY \ NETWORK SERVICE" ausgeführt wird.

3) Klicken Sie auf diese SQL Server-Instanz -> Eigenschaften und ändern Sie "Anmelden" in LOCAL SYSTEM. Das System fordert Sie auf, den SQL-Dienst neu zu starten. Bitte tun Sie dies.

4) Sobald dies erledigt ist, können Sie Ihre Datenbank ohne Probleme sichern!

Hoffe das hilft!

Enrique
quelle
Dies beantwortet die Frage wirklich nicht ...
Mark Sinkinson