Jump to content

Sicherung einer DB unter MS SQL Server Desktop Engine


ferix
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

 

ich war heute bei jemandem vor Ort, der einen Windows XP Rechner als kleinen Server hat. Dort läuft eine MS SQL Server Desktop Engine mit Datenbank.

 

Diese Datenbank möchte ich nun regelmäßig sauber sichern.

 

Momentan läuft als Sicherungsprogramm nur Acronis True Image 2009 Home. Wenn ich richtig liege sichert Acronis zwar die Datenbankdateien. Aber im laufenden Betrieb des SQL Servers und das darf doch nicht sein denke ich.

 

Wieso eigentlich? Also wieso darf man zur Sicherung der Datenbank nicht einfach die .mdf und .ldf im laufenden Betrieb kopieren? Wieso funktioniert das nicht?

 

Frage daher: Wie kann ich sauber sichern? Mit dem für die Desktop Engine verfügbaren Tool osql und dem BACKUP Befehl. Also mit einer Batch, die dann ein sauberes Datenbankbackup erstellt???

 

Wie gesagt sehr interessieren würde mich auch, wieso ich die Datenbankdateien nicht einfach im laufenden Betrieb sichern/kopieren kann und dafür der SQL Dienst gestoppt werden oder die Datenbank abgehängt werden muss!?!?

 

Danke für eure Rückmeldung.

Link zu diesem Kommentar

Hallo.

 

wieso ich die Datenbankdateien nicht einfach im laufenden Betrieb sichern/kopieren kann

 

Weil du bei einer Datenbank nie weißt ob sie nicht gerade im schreibenden Zugriff ist, welche Transaktionen laufen usw. Um gesichert zu werden, muss sich die Datenbank in einem eindeutigen konsistenten Zustand befinden.

 

Und ja, osql ist das Tool deiner Wahl.

 

LG Günther

Link zu diesem Kommentar

Erstmal danke für euer Feedback. Dass man XP nicht als Datenbankserver nutzen darf, wusste ich nicht. Geht mich in diesem Fall aber auch nichts weiter an (ich werde dennoch darauf hinweisen!), da ich lediglich ein OnlineBackup einrichten sollte und nicht der zuständige Systemadministrator bin. Mir wurde auch von einer Access-Datenbank berichtet, die ich hätte problemlos wegsichern können und dann wars doch SQL...nunja wie es eben manchmal so ist.

 

Weil du bei einer Datenbank nie weißt ob sie nicht gerade im schreibenden Zugriff ist, welche Transaktionen laufen usw. Um gesichert zu werden, muss sich die Datenbank in einem eindeutigen konsistenten Zustand befinden.

 

Ist eine Rücksicherung, wenn man die DB-Dateien im laufenden Betrieb kopiert und wegsichert, unter Umständen möglich oder niemals machbar. Mir ist das Problem ja selbst bekannt und ich gehe davon aus dass die DB fehlerhaft und inkonsistent sein könnte und somit nicht mehr wiederherstellbar. Ich wundere mich nur, dass der Systembetreuer mit einer normalen Acronis Home Version sichert und das System damit auch schon wieder hergestellt hat. Eigentlich dürfte das doch auch nicht gehen!?

 

Ich werde mir das osql mal zu Gemüte führen und damit dann arbeiten.

 

 

 

@NilsK:

Habe mir deinen Artikel mal angeschaut und noch eins, zwei Fragen:

Das folgende Skript sichert sowohl die Datenbank selbst als auch die Transaktionsprotokolle in jeweils eine Datei. Letzteres ist wichtig, falls das "Wiederherstellungsmodell" der Datenbank auf "Vollständig" steht. Wird in diesem Fall keine regelmäßige Transaktionsprotokollsicherung durchgeführt, kann die Serverfestplatte volllaufen. Im Beispiel heißt die Datenbank "MeineDB".

 

Das mit dem Transaktionsprotokoll und dem Volllaufen der Festplatte verstehe ich nicht so ganz. Könntest du das noch einmal erläutern? Oder kann man dazu irgendwo was lesen? Ich bin nocht so ganz fündig geworden.

 

Weiterhin verstehe ich den Zusammenhang der 2 Codeblöcke nicht so ganz. Codeblock 2 ruft den ersten auf? Aber an welcher Stelle? Wo und mit welchem Namen ist der erste Codeblock dann abzuspeichern?

 

Übrigens: dein Blog ist echt toll! Verfolge ich fleißig, allerdings weniger im Bereich SQL.

Link zu diesem Kommentar
Weiterhin verstehe ich den Zusammenhang der 2 Codeblöcke nicht so ganz. Codeblock 2 ruft den ersten auf? Aber an welcher Stelle? Wo und mit welchem Namen ist der erste Codeblock dann abzuspeichern?

 

Ok da hab ich auf dem Schlauch gestanden. Die BACKUP-Statements sind in der MeineDB-FullBackup.sql hinterlegt, die im Codeblock 2 aufgerufen wird...

Link zu diesem Kommentar
Off-Topic:
Moin,
mal ganz abgesehen davon, dass die XP-Lizenz es nicht erlaubt, das System als Datenbankserver für externe Zugriffe zu betreiben ...

Gut das dann MS selbst den BCM für Outlook im Programm hat und dieser seine SQL-Server Express Datenbank für Andere im Netzwerk freigeben kann.


BTT: Benutze eine Sicherungslösung, die die Windows VSS-Api für Sicherungen benutzt, bspw. macht BESR von Symantec dies.

Ansonsten sind die Tipps mit der Sicherung per OSQL oder Management-Studio Express schon in Ordnung.

Gibt es im Acronis Sicherungsjob keine Möglichkeit, den SQL-Server per Script anzuhalten und anschließend zu starten?
Link zu diesem Kommentar

Von Stoppen und wieder Starten des Dienstes halte ich nicht so viel, genauso wie von Abhängen und wieder Anhängen der Datenbank. Da ich nicht der Systemadministrator bin und an dem Gerät nichts eingerichtet habe und weiß wie gut es läuft ist mir dann das Risiko zu hoch, dass der Dienst vielleicht doch nicht mehr startet nach dem Backup oder das Anhängen der DB nicht funktioniert.

 

Daher lieber den Weg über eine Sicherung mittels osql.

Ist wohl die beste und sicherste Lösung oder wie ist hierzu die Meinung?

Link zu diesem Kommentar
Moin,

 

liest du die Links, die man dir postet?

 

Gruß, Nils

 

 

Klar. Das war jetzt unabhängig von dem Transaktionsprotokoll gesehen die Frage. Sprich wenn einem Daten, die vielleicht im Transaktionsprotokoll stehen, aber noch nicht in der DB sind, nicht ganz so wichtig sind bzw. die Datenbank ohnehin nicht allzu start frequentiert ist.

 

Und da wollte ich nur nochmal die Bestätigung, dass es wenn es rein um das kopieren der Datenbank geht eben innerhalb der DB zur Inkonsistenz und Problemen kommen kann, wenn die DB im laufenden Betrieb kopiert wird.

 

Und das ist ja so oder nicht?

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...