|
|
|
|
Hallo, folgendes Problem:
Habe hier einen MS SQL Server 2005 (Express). Eine spezielle Software befüllt Datenbanken und Tabellen in diesem Server. Jede Datenbank besitzt 1-n Tabellen.
Datenbanken = Kunden-"Container"
Tabellen = Inhalte
Ganz allgemein: Wie stelle ich es am besten an, einzelne TABELLEN (nicht Datenbanken) dieses SQL Servers zu sichern und auch einzeln wiederherzustellen?
Unsere Backuplösungen kann nur ganze Datenbanken sichern und wiederherstellen.
Vielleicht gibt es sogar ein Tool dafür?
Oder eine Funktion im SQL-Server selbst?
An Statements dachte ich natürlich auch schon, aber das letzte mal habe ich SQL Statements vor 3-4 Jahren angewendet und selbst da nur sehr marginal, wie allgemein mit dem Thema .
gruß
|
|
|
|
|
|
|
warum sollte man sowas wollen? tabellen hängen voneinander ab und damit sind die informationen der einen normalerweise nutzlos ohne die informationen der anderen. warum willst du nicht gleich alles sichern?
|
|
|
|
|
|
|
Ok zum Verständnis:
Jede Tabelle ist in sich ein Storage für Terminologie (Deutsch-Englisch, Deutsch-Russisch etc.). Jeder Kunde (Container/Datenbank) hat mehrere dieser Terminologiedatenbanken (Fachbegriff: Translation Memories, TMs). Jedes TM kann mit Software gepflegt werden (Import, Export, direktes Reinschreiben etc.). Nun kann es sein, dass ein User Fehler bei der Bearbeitung eines TMs macht, diese können recht schwerwiegend sein. Client-Tool-seitig lässt sich sowas oft nicht Rückgängig machen (z.B. bei Import mit Überschreiben).
Zum Thema habe ich noch das hier gefunden. Ganz unten schreibt der Offizielle u.a.
"You can restore the primary filegroup to a new database instance, and then restore only the filegroup containing the table you need to restore. At that point, the database is online, and you can SELECT out of it and into your production database."
Verstehe ich das richtig, dass ich irgendwie die komplette DB als neue DB in den Server integrieren kann und daraus per SELECT irgendwie die Daten einzelner Tabellen in meine Live-DB schieben/überschreiben kann?
Falls ja, käme mir eine Step-by-Step Anleitung inkl. statements sehr gelegen...
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Volvicfetischist am 15.01.2008 10:35]
|
|
|
|
|
|
Bulk Import/Export habt ihr euch angeguckt? Das wäre so mein erster Ansatz gewesen, wenn ich dumpf komplette Tabellen auslesen/einlesen will.
|
|
|
|
|
|
|
SQL Server Management Studio Express.
Das bietet eine Sicherung für Tabellen und Datenbank an.
|
|
|
|
|
|
|
| Zitat von [DK]Peacemaker
SQL Server Management Studio Express.
Das bietet eine Sicherung für Tabellen und Datenbank an.
| |
Das nutze ich, es bietet aber leider keine automatisierte Sicherung an. Darum geht es mir primär.
Also autmatisch alle DBs inkl. Tabellen sichern, und je nach Bedarf einzelne Tabellen oder auch komplette DBs restoren.
Danke igor, ich schau mir das mal an.
|
|
|
|
|
|
|
| Zitat von Volvicfetischist
| Zitat von [DK]Peacemaker
SQL Server Management Studio Express.
Das bietet eine Sicherung für Tabellen und Datenbank an.
| |
Das nutze ich, es bietet aber leider keine automatisierte Sicherung an. Darum geht es mir primär.
Also autmatisch alle DBs inkl. Tabellen sichern, und je nach Bedarf einzelne Tabellen oder auch komplette DBs restoren.
Danke igor, ich schau mir das mal an.
| |
Oh Sorry, ich war so heiß drauf, das zu schreiben, dass ich nicht alles genau gelesen habe.
Ich hab aber auch befürchtet, dass es automatisch gehen soll. Aber vielleicht lässt sich soetwas konfigurieren. Immerhin speichert das Management Studio die Sicherungen auf dem Server, der den SQL Server ausführt, was dafür sprechen würde, dass es eine Funktion dafür gibt am Server gibt.
|
|
|
|
|
|
|
Klingt eigentlich ganz logisch, aber gefunden habe ich auch nichts in der Richtung.
Habe mich etwas mit dem bcp utility beschäftigt. die syntax ist doch ein bisschen komplex, und irgendwie komme ich nicht weiter
igor, kannst du mir vielleicht simpel eine Vorlage nennen, wie ich eine Tabelle/alle Tabellen aus einer bestimmten Datenbank in eine Datei schreiben, und
umgekehrt wieder eine bestimmte Tabelle in eine vorhandene Datenbank einspielen kann?
Achja: ich bin kein FiAe
|
|
|
|
|
|
|
Habs grad mal probiert, das hat funktioniert:
Einmalig ne Formatdatei für die Tabelle "Items" in Datenbank "MyTestDB" erstellen:
bcp MyTestDB.dbo.Items format nul -T -S ALEPH\SQLEXPRESS -n -f Items.fmt
Daten nach Items.dat exportieren:
bcp MyTestDB.dbo.Items out Items.dat -T -S ALEPH\SQLEXPRESS -f Items.fmt
Daten zurückspielen:
bcp MyTestDB.dbo.Items in Items.dat -T -S ALEPH\SQLEXPRESS -f Items.fmt
Die Tabelle an sich muss so allerdings schon in der DB existieren und sollte leer sein, um Kollisionen/Doppeleinträge zu vermeiden.
|
|
|
|
|
|
|
Super, danke! Ein erster Test hat geklappt. Habe die Tabelle erfolgreich exportiert und (nachdem ich die selbe Tabelle mit gleichem Namen in einer Test-DB erstellt hatte) wieder importiert.
Ich versuche das Ganze jetzt mal als Funktion zusammenzuschreiben; und zwar so, dass alle DBs und deren Tabellen die mit "C_" beginnen komplett in einem Rutsch exportiert werden.
Danach brauche ich eigentlich nur noch ein Script, dass mir eine bestimmte Tabelle aus diesem exportiertem Backup in das vorhandene System importiert. Davor muss die vorhandene Tabelle allerdings geleert werden.
Falls du da was aus dem stegreif weißt, kannst du es ja posten, ich versuche mich parallel. Bin aber nicht so versiert, bzw. eigentlich nur mit allgemeiner Datenbank/Batch-Syntax
|
|
|
|
|
|
|
Da muss ich passen, habe bisher auch noch nie mit dem Tool gearbeitet. :/
|
|
|
|
|
|
Thema: MS SQL Server - einzelne Tabellen sichern und recovern |