.bak-Datei in keinem Verzeichnis in SSMS sichtbar

46

Ich habe eine .bak-Datei, die heute von einer anderen Person erstellt wurde und die manuell mit SSMS 2008 R2 erstellt wurde. Ich versuche, die Datenbank manuell wiederherzustellen. Leider wird die Datei beim Durchsuchen nicht angezeigt.

Ich kann den Wiederherstellungsprozess skripten, habe dieses Problem jedoch bereits gesehen und bin nicht sicher, was dazu führen könnte, dass die .bak-Datei nicht angezeigt wird.

Sean Long
quelle
Ich werde ein Skript für die Wiederherstellung schreiben, ich möchte nur wissen, was es verursacht. Es ist definitiv ein .bak, kein .bak.txt oder so.
Sean Long
So sind Sie in der Lage , den Ordner zu suchen , in dem Sie wissen , die Datei ist, und es wird nicht angezeigt? Oder können Sie nicht zum Ordner navigieren?
Aaron Bertrand
Ich kann zum Ordner navigieren, sehe aber keine der .bak-Dateien. Ich habe die Berechtigungen des Benutzers überprüft, mit dem ich SSMS ausführe. Er ist ein lokaler Administrator und die Datei ist nicht als "versteckt" oder so gekennzeichnet.
Sean Long
Können Sie irgendwo einen Screenshot veröffentlichen, der die Ansicht des Ordners in Windows Explorer und die von SSMS zeigt? Erklären Sie in der Frage auch den Prozess, mit dem Sie zu diesem Schritt gelangen.
Aaron Bertrand
1
(Beachten Sie auch, dass das SQL Server-Dienstkonto auch Berechtigungen haben muss, nicht nur der SSMS-Benutzer. Dies sollte jedoch nicht verhindern, dass .bak-Dateien in der Liste angezeigt werden, bevor Sie etwas mit ihnen tun.)
Aaron Bertrand

Antworten:

39

Wir hatten heute das gleiche Problem. Es stellte sich heraus, dass es sich um ein Berechtigungsproblem handelte, wie in einigen anderen Antworten dargestellt. Der Unterschied ist, dass das Konto, das wir hinzufügen mussten, war NT SERVICE\MSSQLSERVER.

Bildschirmfoto

Ich habe das Konto identifiziert, indem ich die Berechtigungen des SQL Backup-Standardordners mit denen des Ordners verglichen habe, der die Sicherungsdatei enthält.

Das Hinzufügen des Dienstkontos ist nicht so einfach, wie es sich anhört. Hier ist, was für mich gearbeitet hat. (Server 2012 R2)

  1. Melden Sie sich beim Server an. (Die Änderung muss auf dem tatsächlichen Server vorgenommen werden, nicht über eine Netzwerkfreigabe.)
  2. Ändern Sie die Standorte in den Namen des lokalen Servers.
  3. Geben Sie in NT SERVICE\MSSQLSERVERdas Namensfeld ein. (Klicken Sie nicht auf Namen überprüfen.)
  4. OK klicken. Daraufhin wird eine Liste der übereinstimmenden Dienstkonten angezeigt. Wählen Sie MSSQLSERVER aus und klicken Sie auf OK, um die Auswahl zu bestätigen.

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Sie sollten das Dienstkonto in den Sicherheitseinstellungen sehen und können die Berechtigungen entsprechend anpassen.

Nach dem Hinzufügen von Berechtigungen (ich habe Vollzugriff hinzugefügt, um dem Standardordner für SQL Backup zu entsprechen) und dem Neustart der SQL Server-Verwaltungskonsole konnte ich meine Sicherungsdatei auswählen und wiederherstellen.

AdamsTips
quelle
Unter superuser.com/questions/248315/… erfahren Sie, wie Sie Benutzerkonten auf einem Computer auflisten. Für jeden benannten Dienst sgibt es ein virtuelles Konto mit dem Namen NT Service\s, auch wenn der Dienst nicht unter diesem Konto ausgeführt wird.
Tahir Hassan
2
Das Konto , das ich hinzufügen hatte war NT Service\MSSQL$SQLSERVER2014, vielleicht , weil ich meine Instanz mit dem NamenSQLSERVER2014
thinkOfaNumber
16

Ich habe das heute bekommen.

Ich habe die Dateifreigabe, die Indizierung und alle offenen Sitzungen (zum Kopieren von Sicherungen angemeldete Personen) deaktiviert, aber das Problem konnte nicht behoben werden.

Ging zum Windows Explorer, kopierte die Backups in einen anderen Ordner und suchte diesen über Management Studio, und ich konnte ihn dort sehen.

Löschte den ursprünglichen Ordner und erstellte ihn neu, kopierte den Inhalt wieder zurück und suchte nach den .bakDateien, und er war wieder normal.

Hoffe das hilft jemandem.

user27816
quelle
1
es hat geholfen! :)
Peter PitLock
5

Ich bin ein paar Mal auf dieses Problem gestoßen. Das Problem liegt nicht bei SQL Server, sondern bei der Windows-Berechtigung des Ordners. Sie müssen dem Ordner, in den Sie die .bak-Datei kopiert haben, die entsprechende Berechtigung hinzufügen (glaube ich, System NetworkRolle).

Die einfachere Lösung besteht darin, die Datei in den Standard-Sicherungsordner in den Programmdateien zu verschieben. Es hat alle notwendigen Erlaubnisse. Für SQL Server 2012 ist es

D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup
Jackofall
quelle
Dies ist eine großartige Lösung, da man keine potenziellen Sicherheitslücken in seinem Computer öffnet, nur um eine Datei wiederherzustellen.
Michael Potter
Funktioniert hervorragend, braucht keine Richtlinien und Sachen
Marin
3

Ich bin heute auch auf dasselbe Problem gestoßen. Ich erhielt eine Sicherungsdatei zum Wiederherstellen, die beim Surfen jedoch nicht sichtbar war. Allerdings konnte ich im Dateisystem aber im Wiederherstellungsassistenten mit zugreifen SQL Server management Studio.

Nachdem ich einige ausgegeben hatte, entdeckte ich, dass es Berechtigungsfrage ist. Der SQL Server-Dienst wird mit ausgeführt, Network Serviceaber das Network ServiceKonto hatte keine Berechtigungen für den Zugriff auf den Ordner. Nach Erteilung der Berechtigungen an Network Service. Die wiederherzustellende Sicherungsdatei war sichtbar.

Einzelheiten entnehmen Sie bitte dem Blog .

Skorpion
quelle
2

Wenn Sie es in Windows Explorer finden, sollten Sie einen RESTORE DATABASEBefehl schreiben, anstatt sich auf die klobige GUI zu verlassen, um es für Sie zu finden. Wer weiß, welcher Code dort vor sich geht und warum er die Datei möglicherweise nicht finden kann? Tut mir leid, ich habe nur eine Problemumgehung und keine Lösung.

Stellen Sie außerdem sicher, dass die Datei tatsächlich "something.bak" und nicht "something.bak.txt" ist (Windows kann die Erweiterung möglicherweise "hilfreich" verbergen. Ich hasse dieses Standardverhalten.)

Aaron Bertrand
quelle
1

Das ist mir heute auf meiner Dev-Box passiert. In meinem Fall hatte das Dienstkonto Berechtigungen für den Ordner, mein Benutzerkonto jedoch nicht. Nachdem ich meinem Konto Berechtigungen für den Ordner erteilt hatte, konnte ich die .BAK-Dateien anzeigen.

Leiter Catering
quelle