it-swarm.com.de

Öffnen einer SQL Server .bak-Datei (wird nicht wiederhergestellt!)

Ich habe viele Google Posts und StackOverflow-Fragen zum Wiederherstellen einer Datenbank in SQL Server aus einer .bak-Datei gelesen.

Aber keiner von ihnen gibt an, wie man einfach die Tabellen in der Datenbanksicherung liest. (Keine, die ich trotzdem finden konnte?)

Ich möchte nur einige alte Informationen auschecken, die jetzt gelöscht wurden, ohne die vollständige Datenbank wiederherzustellen. Ist das möglich?

.

EDIT:

Ich wollte nur meine T-SQL-Lösung für das Problem veröffentlichen, damit andere sie verwenden und ich zurückgehen und sie nachschlagen kann.

Zuerst habe ich eine neue Datenbank mit dem Namen backup_lookup Erstellt und offline geschaltet. Danach konnte ich meine alte Datenbank mydb auf die neue zurücksetzen, ohne mein Original zu berühren.

USE master
GO
RESTORE DATABASE backup_lookup
 FROM DISK = 'D:\backup\mydb.bak'
WITH REPLACE,
 MOVE 'mydb' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\backup_lookup.mdf',
 MOVE 'mydb_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\backup_lookup_log.ldf'
GO

Ich hoffe das hilft :)

44
Behrens

In SQL Server 2008 SSMS (SQL Server Management Studio) einfach:

  1. Stellen Sie eine Verbindung zu Ihrer Datenbankinstanz her (z. B. "localhost\sqlexpress").
  2. Entweder:

    • a) Wählen Sie die Datenbank aus, in die Sie zurückschreiben möchten. oder alternativ
    • b) Erstellen Sie einfach eine neue, leere Datenbank für die Wiederherstellung.
  3. Rechtsklick, Aufgaben, Wiederherstellen, Datenbank

  4. Gerät, [...], Hinzufügen, Navigieren Sie zu Ihrer .bak-Datei
  5. Wählen Sie die Sicherung aus.
    Wählen Sie unter Optionen "Überschreiben = Y".
    Stellen Sie die Datenbank wieder her
  6. Es sollte "100% vollständig" heißen und Ihre Datenbank sollte online sein.

PS: Nochmals, ich betone: Sie können dies leicht auf einer "Arbeitsdatenbank" tun - Sie müssen nicht Ihre aktuelle Datenbank überschreiben. Aber Sie do müssen [~ # ~] wiederherstellen [~ # ~] .

PPS: Sie können dasselbe auch mit T-SQL-Befehlen erreichen, wenn Sie ein Skript erstellen möchten.

33
paulsm4

Die einzige praktikable Lösung ist die Wiederherstellung der .bak - Datei. Der Inhalt und die Struktur dieser Dateien sind nicht dokumentiert und daher gibt es wirklich keine Möglichkeit (außer einem schrecklichen Hack), dies zum Laufen zu bringen - definitiv lohnt sich nicht Ihre Zeit und die Mühe!

Das einzige mir bekannte Tool, das Sinn für .bak - Dateien macht, ohne sie wiederherzustellen, ist Red-Gate SQL Compare Professional (und der zugehörige SQL-Datenvergleich), mit dem Sie vergleichen können Ihre Datenbankstruktur gegen den Inhalt einer .bak - Datei. Red-Gate-Tools sind absolut großartig - sehr empfehlenswert und jeden Cent wert, den sie kosten!

Und ich habe gerade ihre Website überprüft - es scheint, dass Sie in der Tat eine einzelne Tabelle aus einer .bak - Datei mit SQL Compare Pro wiederherstellen können! :-)

11
marc_s

Es gibt keine Standardmethode, um dies zu tun. Sie müssen Tools von Drittanbietern wie ApexSQL Restore oder SQL Virtual Restore verwenden. Diese Tools lesen die Sicherungsdatei nicht wirklich direkt. Sie veranlassen SQL Server, Sicherungsdateien so zu interpretieren, als wären dies Live-Datenbanken.

9
David Smithers

So fügen Sie meine TSQL-Skriptlösung hinzu:

Als allererstes; Fügen Sie eine neue Datenbank mit dem Namen backup_lookup hinzu. Führen Sie dann einfach dieses Skript aus und fügen Sie den Stammpfad und den Sicherungsdateipfad Ihrer eigenen Datenbanken ein

USE [master]
GO
RESTORE DATABASE backup_lookup
 FROM DISK = 'C:\backup.bak'
WITH REPLACE,
 MOVE 'Old Database Name' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\backup_lookup.mdf',
 MOVE 'Old Database Name_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\backup_lookup_log.ldf'
GO
1
Behrens

Mit SQL Server 2008 allein scheint dies nicht möglich zu sein. Sie benötigen die Hilfe eines Drittanbieters.

Es wird Ihnen helfen, Ihre .bak-Datei wie eine Live-Datenbank zu gestalten:

http://www.red-gate.com/products/dba/sql-virtual-restore/

0
Nonym