Importieren Sie die .bak-Datei in eine Datenbank in SQL Server

230

Ich habe eine Datei mit der .bakErweiterung.

Wie kann ich dieses Datum in eine Datenbank in SQL Server importieren?

Alex
quelle
Ich gehe davon aus, dass Sie MSSQL verwenden. In diesem Thread werden einige Möglichkeiten zur Wiederherstellung erläutert.
Andrew Keith
Sie können eine leere Datenbank erstellen und die Daten in der leeren Datenbank wiederherstellen, indem Sie Ihre .bak
Michel Ayres
Der einfachste Weg ist die dritte Antwort: Klicken Sie mit der rechten Maustaste auf Datenbanken, importieren Sie, Gerät, wählen Sie die .bak-Datei aus, fertig.
Mafii
Kann jemand die Antwort für eine automatisierungsfreundliche Lösung erweitern? Das Durchlaufen der Benutzeroberfläche und das Ausführen mehrerer Klicks ist nicht sehr effizient.
L. Holanda

Antworten:

251

In SQL Server Management Studio

  1. Klicken Sie im linken Bereich mit der rechten Maustaste auf Datenbanken (Objekt-Explorer).
  2. Klicken Sie auf Datenbank wiederherstellen ...
  3. Wählen Sie Gerät , klicken Sie auf ...und fügen Sie Ihre .bak- Datei hinzu
  4. Klicken Sie auf OK und dann erneut auf OK

Getan.

Marcelo Mason
quelle
4
Das funktioniert wie ein Zauber. Dies sind ausgezeichnete vereinfachte Anweisungen, und sie sind im Wesentlichen die gleichen Anweisungen aus dem offiziellen Microsoft-Link, der in der am häufigsten bewerteten Antwort hier angegeben ist.
Leonardo Lopez
3
Wenn dies fehlschlägt, müssen Sie wahrscheinlich eine vorhandene Datenbank löschen.
DigitalDesignDj
3
Das funktioniert bei mir nicht. Ich zeige auf den richtigen Ordner und er sieht nicht einmal die Dateien. Ich füge den genauen Dateinamen in das Dialogfeld ein und es heißt, dass die Datei nicht existiert. Außerdem wird im Dialogfeld ein Laufwerk angezeigt, das auf meinem Server nicht vorhanden ist. Erinnert sich die Datenbank an den Speicherort der letzten Sicherung und akzeptiert sie erst ab diesem Zeitpunkt eine Wiederherstellung? Ich finde es sehr seltsam, dass ich keine Sicherungsdatei zum Wiederherstellen auswählen kann.
James
13
Meine .BAK-Datei befand sich im Verzeichnis "Downloads", das sich unter meinem Benutzerkonto befand. Ich musste die .BAK-Datei in das Stammverzeichnis von C: verschieben, damit dieses Tool sie sehen und von dort wiederherstellen konnte. Dateien unter meinem Benutzer wurden aus irgendeinem Grund einfach nicht gesehen.
jeremysawesome
6
Das funktioniert nicht. Ich klicke mit der rechten Maustaste auf "Datenbanken", aber es gibt keine "Datenbank wiederherstellen ...".
user34660
53

.bak-Dateien sind Datenbanksicherungen. Sie können die Sicherung mit der folgenden Methode wiederherstellen:

Gewusst wie: Wiederherstellen einer Datenbanksicherung (SQL Server Management Studio)

Jon Schoning
quelle
8
Das funktioniert nicht. In dem Artikel heißt es: "... 2) Erweitern Sie Datenbanken. Wählen Sie je nach Datenbank entweder eine Benutzerdatenbank oder Systemdatenbanken aus und wählen Sie dann eine Systemdatenbank aus. 3) Klicken Sie mit der rechten Maustaste auf die Datenbank , zeigen Sie auf Aufgaben, und klicken Sie dann auf Wiederherstellen." NICHT! Sie können nicht mit der rechten Maustaste auf eine nicht vorhandene Datenbank klicken! Schließlich versuchen Sie, die angegebene Datenbank wiederherzustellen oder zu importieren. Wie können Sie mit der rechten Maustaste auf eine Datenbank klicken, die nicht geladen ist? Bizarr von MSDN und erschwerend, dass die Wiederherstellungsfunktionalität in SSMS angegeben wird, aber nicht funktioniert. Warum? Glücklicherweise funktionieren die SQL-Befehle, die andere hier geben.
Nicholas Petersen
14
Es gibt einen anderen Artikel zum Wiederherstellen in einer neuen Datenbank, der hier zu finden ist: msdn.microsoft.com/en-us/library/ms186390(v=sql.90).aspx
Jon Schoning
35
RESTORE FILELISTONLY 
FROM DISK = 'D:\3.0 Databases\DB.bak' 

RESTORE DATABASE YourDB
FROM DISK = 'D:\3.0 Databases\DB.bak' 

und Sie müssen die entsprechenden mdf-, ndf- und ldf-Dateien mit verschieben

 With Move 'primarydatafilename' To 'D:\DB\data.mdf', 
 Move 'secondarydatafile'To 'D:\DB\data1.ndf', 
 Move 'logfilename' To 'D:\DB\log.ldf'
RameshVel
quelle
1
Dies war sehr hilfreich für mich, da ich eine .bak-Datei mit Azure Data Studio auf einem SQL Docker-Container mit einem MacOS-Host wiederherstellen wollte. Alles, was ich tun musste, war, die .bak in den Container zu kopieren, den Pfad anzupassen und zu / zu wechseln, und ich konnte erfolgreich wiederherstellen.
Andrew
Ich
bin
30

Sie können diese Datenbanksicherungsdateien einfach mit nativen SQL Server-Methoden wiederherstellen oder das ApexSQL-Wiederherstellungstool verwenden, um die Dateien schnell virtuell anzuhängen und als vollständig wiederhergestellte Datenbanken darauf zuzugreifen.

Haftungsausschluss: Ich arbeite als Product Support Engineer bei ApexSQL

Ivan Stankovic
quelle
18

Anstatt Datenbank wiederherstellen ... wählen Sie Dateien und Dateigruppen wiederherstellen ...

Geben Sie dann einen Datenbanknamen ein, wählen Sie Ihren .bak-Dateipfad als Quelle aus, aktivieren Sie das Kontrollkästchen Wiederherstellen und klicken Sie auf OK. Wenn die .bak-Datei gültig ist, funktioniert sie.

(Die Namen der SQL Server-Wiederherstellungsoptionen sind für eine sehr einfache Aufgabe nicht intuitiv.)

James Lawruk
quelle
Dies ist ein guter Rat, ich habe dies getan und es wurde berichtet, dass die Wiederherstellung erfolgreich war. Aber es bleibt immer noch ein kleines Problem ... Die Datenbank ist nicht im Objekt-Explorer aufgeführt. Ich versuche "Anhängen" und es ist sogar die richtige MDF-Datei verfügbar (ich nehme ein Produkt der Wiederherstellung an). Wenn ich das Anhängen versuche, wird ein Fehler ausgegeben, der bereits verwendet wird. Hast du irgendwelche Tipps für diese Etappe?
AlanSE
Stellen Sie sicher, dass Sie am Ende eine Aktualisierung durchführen, um Ihre neue Datenbank anzuzeigen. Dies ist möglicherweise die schnellste Lösung für die Inbetriebnahme.
Demongolem
Dies ist die Option, die für mich funktioniert hat, als ich dieselbe Datenbank .bak als neue Datenbank lokal
importieren wollte
7
  1. Stellen Sie eine Verbindung zu einem Server her, auf dem Sie Ihre Datenbank speichern möchten
  2. Klicken Sie mit der rechten Maustaste auf Datenbank
  3. Klicken Sie auf Wiederherstellen
  4. Aktivieren Sie das Optionsfeld Gerät im Abschnitt Quelle
  5. Klicken Sie auf Hinzufügen.
  6. Navigieren Sie zu dem Pfad, in dem Ihre .bak-Datei gespeichert ist, wählen Sie ihn aus und klicken Sie auf OK
  7. Geben Sie das Ziel Ihrer Datenbank ein
  8. Geben Sie den Namen ein, unter dem Sie Ihre Datenbank speichern möchten
  9. OK klicken

Getan

Yash Saraiya
quelle
4

Einfach benutzen

sp_restoredb 'Ihr Datenbankname', 'Speicherort von dem Sie wiederherstellen möchten'

Beispiel: sp_restoredb 'omDB', 'D: \ abc.bak'

Omprakash Tomar
quelle
Was ist der Unterschied zwischen diesem und RESTORE DATABASEdem in msdn.microsoft.com/en-us/library/ms178099(v=sql.105).aspx ?
Unhammer
1
Datenbank wiederherstellen Führen Sie den Wiederherstellungsvorgang nur durch, wenn die Struktur sp_restoredbIhrer Datenbank mit der Sicherungsdatei übereinstimmt. Führen Sie jedoch eine Wiederherstellung durch, auch wenn Ihre Datenbank eine andere Struktur aufweist oder vollständig leer (neu) ist.
Omprakash Tomar
3
  1. Kopieren Sie Ihre Backup-.bak-Datei an den folgenden Speicherort Ihres PCs: C: \ Programme \ Microsoft SQL Server \ MSSQL11.SQLEXPRESS \ MSSQL \ DATA
  2. Stellen Sie eine Verbindung zu einem Server her, auf dem Sie Ihre Datenbank speichern möchten
  3. Klicken Sie mit der rechten Maustaste auf Datenbank
  4. Klicken Sie auf Wiederherstellen
  5. Aktivieren Sie das Optionsfeld Gerät im Abschnitt Quelle
  6. Klicken Sie auf Hinzufügen.
  7. Navigieren Sie zu dem Pfad, in dem Ihre .bak-Datei gespeichert ist, wählen Sie ihn aus und klicken Sie auf OK
  8. Geben Sie das Ziel Ihrer Datenbank ein
  9. Geben Sie den Namen ein, unter dem Sie Ihre Datenbank speichern möchten
  10. OK klicken

Bei den oben genannten Lösungen wurde nicht angegeben, wo Ihre Sicherungsdatei (.bak) aufbewahrt werden soll. Dies sollte den Trick tun. Es hat bei mir funktioniert.

Madhumita
quelle
1

Sie können das Knotenpaket verwenden, wenn Sie im Entwicklungsprozess häufig Datenbanken wiederherstellen müssen.

Installieren:

npm install -g sql-bak-restore

Verwendung:

sql-bak-restore <bakPath> <dbName> <oldDbName> <owner>

Argumente:

  • Bakpath, relativer oder absoluter Pfad zur Datei
  • dbName, in welche Datenbank wiederhergestellt werden soll (!! Datenbank mit diesem Namen wird gelöscht, falls vorhanden !!)
  • oldDbName, Datenbankname (Wenn Sie nichts wissen, etwas angeben und ausführen, werden nach dem Ausführen verfügbare Datenbanken angezeigt.)
  • Besitzer, Benutzername, um ihm db_owner-Berechtigungen zu geben (Passwort "1")

!! Das Befehlszeilenprogramm sqlcmd sollte sich in Ihrer PATH-Variablen befinden.

https://github.com/vladimirbuskin/sql-bak-restore/

Vladimir Buskin
quelle
1

In Microsoft SQL Server Management Studio 2019:

Geben Sie hier die Bildbeschreibung ein

Im Fenster "Datenbank wiederherstellen":

  1. Wählen Sie Gerät

  2. Wählen Sie Hinzufügen und wählen Sie die Zieldatei aus

  3. OK zur Bestätigung

  4. OK, um die Wiederherstellung zu bestätigen

Geben Sie hier die Bildbeschreibung ein

Weky
quelle