1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Automatisches Kopieren einer Datenbank

Discussion in 'Windows 10' started by The Undertaker, Feb 21, 2017.

Thread Status:
Not open for further replies.
  1. The Undertaker

    The Undertaker Halbes Megabyte

    Hallo Leute,

    ich weiß weder, ob der Titel das Problem korrekt beschreibt noch ob das hier das richtige Forum ist. Vorschläge hierzu erwünscht.

    Folgendes Problem:
    Ich möchte eine Datenbank zwecks Teil einer Backupstrategie automatisch in einen bestimmten Ordner kopieren. Hierzu muss der Zugriff auf die Datenbank gestoppt, die Datenbank kopiert und der Zugriff wieder gestartet werden. So weit so gut.

    Für das Stoppen und Starten des Zugriffs gibt es jeweils einen vorgefertigten Programmaufruf, der verwendet werden kann.

    Wie stelle ich es an, dass der Befehl zum Starten automatisch erfolgt, wenn der Kopiervorgang abgeschlossen wurde?

    Ansonsten werde ich das Problem mittels geplanter Tasks lösen. Hierbei müsste ich aber ein entsprechnd großes Zeitfenster wählen, um sicher zu gehen, dass das Kopieren auch wirklich abgeschlossen ist. damit wäre der Zugriff länger als nötig nicht möglich.

    The undertaker
     
  2. hwei43

    hwei43 Kbyte

    Wäre schön wenn du dein System und die verwendete Software nennen würdest. Glaskugel ist kaputt!
     
  3. Eric March

    Eric March CD-R 80

    Ich würde Batch einsetzen die Befehle abzufeuern.
    Und aus purer Neugier - sind die Files in dem Ordner komplett gelockt oder können sie einfach wegkopiert werden? Oder ist »die DB« nicht davon zu überzeugen eine Sicherung von sich zu erstellen? Bei unserem SQL-Konstrukt klappt ein solcher Abruf (MySQL WB) life ohne die DB zu sperren und wieder zu öffnen.

    Eric March
     
  4. kalweit

    kalweit Hüter der Glaskugel

    Moderne Datenbanken lassen sich alle im laufenden Betrieb sichern.
     
  5. The Undertaker

    The Undertaker Halbes Megabyte

    @hwei43

    Zunächst einmal mea culpa, mea culpa, mea mea culpa. Hab ich doch glatt die Angaben zum System vergessen.

    Windows 10 Pro 64 bit.

    @Eric March & kalweit

    Ist eine spezielle Software auf SQL-Basis. Blöd sind die nicht. Installtion und Wartung nur über Remote. Laut deren Aussage kann die Datenbank nicht im laufenden Betrieb kopiert werden. Dazu müsste der Serverzugriff gestoppt werden.

    Wie man das macht und ihn wieder startet, habe ich soweit. Sind zwei simple Programmaufrufe, welche per Batch ausgeführt werden könnten. Wenn die Datenbank während des laufenden Betriebs kopiert würde, bekäme man zwar eine Datei mit der entsprechenden größe, diese könne man aber nicht als Backup zurückspielen.

    Man kann aus dem Programm heraus eine Sicherung erstellen lassen, zu Fuß sozusagen. Geht, aber es kann halt vorkommen, dass man es vergisst oder nicht dazu kommt oder oder oder. daher meine Idee, das zu automatisieren. Man kann auch vom hersteller ein solches Tool haben, kostet schlappe 250,- €. Nur für ein Backuptool? Das finde ich schon frech.

    Deswegen wollte ich mir das selber "bauen". Nun kann ich über geplante Tasks den Server stoppen, syncen und den Server wieder starten. Aber um sicher zu gehen, dass das alles funktioniert muss ich ein großes Zeitfenster von mindestens 30 Minuten einplanen, währenddessen ich nicht an die Datenbank komme.
    Ich werde das so umsetzen, falls es keinen eleganteren Weg gibt.

    Das mit einer Batch zu lösen, hatte ich mir auch schon gedacht, aber woher weiß die Batch, dass der Kopiervorgang abgeschlossen wurde und der Server wieder gestartet werden kann?
     
  6. kalweit

    kalweit Hüter der Glaskugel

    Wie heißt denn das Programm?
     
  7. Eric March

    Eric March CD-R 80

    Wenn das Programm so was kann - dann könnte auch ein Programm wie AutoIt die Schritte mehr oder minder intelligent ausführen die nötig sind - Stoppen sichern, starten und evtl. die Sicherung noch ordentlich ablgen

    Eric March
     
  8. hwei43

    hwei43 Kbyte

    Hat mich schon in #2 interessiert und zur Frage veranlasst. Wird nicht so dringend sein :nixwissen:
     
  9. The Undertaker

    The Undertaker Halbes Megabyte

    Es handelt sich um Power Ordo.

    @Eric March

    Da muss ich mich reinlesen. Mit einem schnellen Blick war es nicht getan. Bin bei Batch-Dateien stehen geblieben :comprob:. Mit Scripten habe ich es bislang noch nicht versucht. Aber ich denke, die Grundfrage bleibt: woher weiß das script, dass es mit dem Starten warten muss, bis die Datenbank kopiert ist bzw. das Kopieren beendet wurde? Die Datenbank wird ja mit der Zeit größer und daher dauert das Kopieren per se schon mal unterschiedlich lang. Ist auch abhängig davon, was der Rechner momentan sonst noch macht.
     
  10. Eric March

    Eric March CD-R 80

    Du hast da in der Tat das »ewige« Problem, dass der Mensch mühelos sieht wann ein angestoßener Prozess (unbekannter Länge) fertig ist um den nächsten Schritt zu tun.
    Batch wartet bis ein Programm sich beendet hat, aber Prozesse dieses Programms kann es nicht kontrollieren. AutoIt kann auch nur Timer (Pausen = Warteschleifen) nutzen da das faktisch ferngesteuerte Programm einfach keine Rückmeldungen seiner Vorgänge liefert.
    (Klammer auf: wir mussten ›unkalkulierbare‹ Skriptabläufe eines Programms in einer Serie abarbeiten. Gottlob konnten die Sktipte eine Ausgabedatei generieren. AutoIt löscht diese Datei und startet das Programm mit seinem Skript um über zeitverzögertes Prüfen auf die Existenz der Ausgabedatei den nächsten Lauf starten zu können. Das ging über einige Stunden. Wirksam, aber nicht wirklich elegant. Klammer zu)

    Eric March
     
  11. kalweit

    kalweit Hüter der Glaskugel

    Zum Kopieren kann man robocopy in der Batch ausführen (nicht als eigene Ebene starten), dann wartet die Batch bis robocopy fertig ist. So habe ich das früher bei meinem Backupserver gemacht, um ihn automatisch herunter zu fahren.
     
  12. The Undertaker

    The Undertaker Halbes Megabyte

    OK. Robocopy habe ich. Werde ich ausprobieren. Ansonsten löse ich es über die geplanten Tasks.
     
Thread Status:
Not open for further replies.

Share This Page