it-swarm.com.de

Backup auf Tabellenebene

Wie kann eine Sicherung auf Tabellenebene (Dump) in MS SQL Server 2005/2008 erstellt werden?

89
user82431

Sie können den Befehl BACKUP DATABASE nicht zum Sichern einer einzelnen Tabelle verwenden, es sei denn, die betreffende Tabelle ist ihrer eigenen FILEGROUP zugeordnet.

Was Sie tun können, ist, wie Sie vorgeschlagen haben, die Tabellendaten in eine CSV-Datei zu exportieren. Um nun die Definition Ihrer Tabelle zu erhalten, können Sie das Skript CREATE TABLE "auslesen".

Sie können dies in SQL Server Management Studio folgendermaßen tun:

klicken Sie mit der rechten Maustaste auf Datenbank> Aufgaben> Skript generieren 

Sie können dann die Tabelle auswählen, für die Sie ein Skript erstellen möchten, und alle zugehörigen Objekte wie z. B. Einschränkungen und Indizes einschließen.

um DATA zusammen mit schema zu erhalten, müssen Sie Advanced auf der Registerkarte Skriptoptionen festlegen auswählen. Im Abschnitt GENERAL setzen Sie Types of data to script und Schema and Data.

Hoffe, das hilft, aber Sie können mich gerne direkt kontaktieren, wenn Sie weitere Hilfe benötigen.

86
John Sansom

Ich verwende das bulk copy Dienstprogramm , um Backups auf Tabellenebene zu erhalten

exportieren:

bcp.exe "select * from [MyDatabase].dbo.Customer " queryout "Customer.bcp" -N -S localhost -T -E

importieren:

bcp.exe [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000

wie Sie sehen, können Sie basierend auf jeder Abfrage exportieren, sodass Sie sogar inkrementelle Sicherungen ausführen können. Im Gegensatz zu den anderen hier genannten Methoden, die SSMS verwenden, ist sie außerdem skriptfähig.

54
kenwarner

Hier sind die Schritte, die Sie brauchen. Schritt 5 ist wichtig, wenn Sie die Daten wünschen. In Schritt 2 können Sie einzelne Tabellen auswählen.

EDIT Die Version von [] stack ist nicht gut lesbar ... hier ist ein Bild in voller Größe http://i.imgur.com/y6ZCL.jpg

Here are the steps from John Sansom's answer

44
Alex C

Sie können die folgende Abfrage ausführen, um eine Sicherung der vorhandenen Tabelle zu erstellen, die eine neue Tabelle mit der vorhandenen Struktur der alten Tabelle zusammen mit den Daten erstellt.

select * into newtablename from oldtablename

Verwenden Sie die folgende Abfrage, um nur die Tabellenstruktur zu kopieren.

select * into newtablename from oldtablename where 1 = 2
19
Haripriya

Dies ist der Lösung von qntmfred ähnlich, verwendet jedoch einen direkten Tabellenauszug. Diese Option ist etwas schneller (siehe BCP-Dokumente ):

exportieren:

bcp "[MyDatabase].dbo.Customer " out "Customer.bcp" -N -S localhost -T -E

importieren:

bcp [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000
6
Diego

Wenn Sie nach etwas wie DUMP von MySQL suchen, dann ist das eine gute Nachricht: SQL Server 2008 Management Studio hat diese Fähigkeit hinzugefügt. 

Klicken Sie im SSMS einfach mit der rechten Maustaste auf die betreffende Datenbank und wählen Sie Aufgaben> Generate Scripts. Stellen Sie dann auf der zweiten Seite des Optionsassistenten sicher, dass Sie wählen, dass Sie auch das data -Protokoll haben möchten , und es wird die Menge an DUMP-Dateien generiert.

4

Erstellen Sie eine neue Dateigruppe, legen Sie diese Tabelle darauf ab und sichern Sie nur diese Dateigruppe.

3

Ich weiß nicht, ob es dem hier beschriebenen Problem entspricht. Ich musste eine inkrementelle Sicherung einer Tabelle machen! (Nur neu eingefügte Daten sollten kopiert werden). Ich habe dort ein DTS -Paket entworfen.

  1. Ich hole neue Datensätze ab (auf Basis einer 'Status'-Spalte) und übertrage die Daten zum Ziel. (Durch 'Daten transformieren') 

  2. Dann habe ich nur die Spalte "Status" aktualisiert. (Über 'SQL-Task ausführen')

Ich musste den "Workflow" richtig reparieren.

2
azmnoman

Sie können das kostenlose Database Publishing Wizard von Microsoft verwenden, um Textdateien mit SQL-Skripts (CREATE TABLE und INSERT INTO) zu generieren.

Sie können eine solche Datei für eine einzelne Tabelle erstellen und die vollständige Tabelle einschließlich der Daten "wiederherstellen", indem Sie einfach das SQL-Skript ausführen.

2

Verwenden Sie den SQL Server-Import- und Export-Assistenten.

  1. ssms
  2. Öffnen Sie die Datenbank-Engine
  3. Alt. Klicken Sie auf die Datenbank mit der zu exportierenden Tabelle
  4. Wählen Sie "Aufgaben"
  5. Wählen Sie "Export Data ..."
  6. Folgen Sie dem Assistenten
2
EndUzr

Mit jedem Wiederherstellungsmodell können Sie ein Backup durchführen eine vollständige oder teilweise SQL Server-Datenbank oder einzelne Dateien oder Dateigruppen von die Datenbank. Backups auf Tabellenebene kann nicht erstellt werden.

Von: Überblick über die Sicherung (SQL Server)

1
Mitch Wheat

Eine kostenlose App namens SqlTableZip erledigt den Job. Im Prinzip schreiben Sie any - Abfrage (die natürlich auch [select * from table] sein kann) und die App erstellt eine komprimierte Datei mit allen Daten , die später wiederhergestellt werden kann.

Link: http://www.doccolabs.com/products_sqltablezip.html

0
asapir

Wenn Sie eine Tabelle wiederherstellen möchten, nachdem jemand versehentlich Zeilen daraus gelöscht hat, können Sie sich die Datenbank-Momentaufnahmen ansehen. Sie können die Tabelle (oder einen Teil der Zeilen) ganz einfach aus dem Snapshot wiederherstellen. Siehe http://msdn.Microsoft.com/de-de/library/ms175158.aspx

0
SPE109

BMC Recovery Manager (früher bekannt als SQLBacktrack) ermöglicht die punktuelle Wiederherstellung einzelner Objekte in einer Datenbank (auch als Tabellen bezeichnet). Es ist nicht billig, aber macht einen fantastischen Job: http://www.bmc.com/products/proddocview/0,2832,19052_19429_70025639_147752,00.html

http://www.bmc.com/products/proddocview/0,2832,19052_19429_67883151_147636,00.html

0
Matt Rogish

Handy Backup erstellt automatisch Sicherungsdateien von MS SQL Server, einschließlich MSSQL 2005/2008. Diese Dumps sind binäre Dateien auf Tabellenebene, die genaue Kopien des jeweiligen Datenbankinhalts enthalten.

Um einen einfachen Speicherauszug mit Handy Backup zu erstellen, folgen Sie bitte der nächsten Anweisung:

  1. Installieren Sie Handy Backup und erstellen Sie eine neue Sicherungsaufgabe.
  2. Wählen Sie als Datenquelle "MSSQL" in Schritt 2 aus. Markieren Sie in einem neuen Fenster eine Datenbank, die gesichert werden soll.
  3. Wählen Sie zwischen verschiedenen Zielen aus, an denen Sie Ihre Backups speichern möchten.
  4. Wählen Sie in Schritt 4 die Option "Vollständige Sicherung" aus. Richten Sie gegebenenfalls einen Zeitstempel ein.
  5. Überspringen Sie Schritt 5, es sei denn, Sie müssen eine resultierende Sicherungsdatei komprimieren oder verschlüsseln.
  6. Richten Sie in Schritt 6 einen Zeitplan für eine Aufgabe ein, um regelmäßig Sicherungskopien zu erstellen (andernfalls führen Sie eine Aufgabe manuell aus).
  7. Überspringen Sie erneut Schritt 7 und geben Sie Ihrer Aufgabe einen Namen in Schritt 8. Sie haben die Aufgabe abgeschlossen!

Führen Sie nun Ihre neue Aufgabe aus, indem Sie auf ein Symbol vor dem Namen klicken oder auf die geplante Zeit warten. Handy Backup erstellt automatisch einen Speicherauszug für Ihre Datenbank ..__ Öffnen Sie dann Ihr Sicherungsziel. In Ihren MS SQL-Sicherungen finden Sie einen Ordner (oder mehrere Ordner). Jeder dieser Ordner enthält eine Dump-Datei auf Tabellenebene, die aus einigen binären Tabellen und Einstellungen besteht, die in einer einzigen Zip-Datei komprimiert sind.

Andere Datenbanken

Handy Backup kann Dumps für MySQL, MariaDB, PostgreSQL, Oracle, IBM DB2, Lotus Notes und jede allgemeine SQL-Datenbank mit einem ODBC - Treiber speichern. Für einige dieser Datenbanken sind zusätzliche Schritte erforderlich, um Verbindungen zwischen dem DBMS und Handy Backup herzustellen.

Die oben beschriebenen Tools geben SQL-Datenbanken häufig als SQL-Befehlssequenz auf Tabellenebene aus, sodass diese Dateien für manuelle Änderungen bereitstehen.

0
Mark Geek

Sie haben wahrscheinlich zwei Optionen, da SQL Server keine Tabellensicherungen unterstützt. Beide würden mit der Skripterstellung für die Tabellenerstellung beginnen. Dann können Sie entweder die Script Table - INSERT-Option verwenden, die viele Einfügeanweisungen generiert, oder Sie können Integrationsdienste (DTS mit 2000) oder ähnliches verwenden, um die Daten als CSV oder ähnliches zu exportieren.

0
Miles D