Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Datenbank automatisch sichern (https://www.delphipraxis.net/135878-datenbank-automatisch-sichern.html)

bwolf 19. Jun 2009 10:20


Datenbank automatisch sichern
 
Hi Leute,

ich habe eine Anwendung die auf mehreren Rechnern gleichzeitig läuft.
Ich will nun das Datenbankverzeichnis alle X Minuten automatisch sichern.
Mein Problem ist: Wenn ich einen Timer nehme, der alle X Minuten anläuft und das Verzeichnis sichert, wird dieser ja logischerweise auf allen Rechnern wo das Programm läuft ausgeführt, und es werden dauernd Sicherungen gemacht - ist also der falsche Ansatz, aber mir fällt nicht wirklich was ein wie das zu Lösen wäre.
Wäre es evt. sinnvoll und möglich das die Datenbank (Mysql) selber machen zu lassen? Wie würdet ihr das angehen?
Danke für eure Hilfe,
Grüße ben

mkinzler 19. Jun 2009 10:22

Re: Datenbank automatisch sichern
 
Da wäre eine Replikationslösung sinnvoll

Bernhard Geyer 19. Jun 2009 10:43

Re: Datenbank automatisch sichern
 
Jedes vernünftige serverbasierte DMBS kann auch bei aktiven Verbindungen Backups der Datenbankdateien erstellen. Und falls du nicht nur eine Desktop-DB hast würde ich auch die Mittel des DBMS auch werdenden.

nachti1505 19. Jun 2009 22:18

Re: Datenbank automatisch sichern
 
Meine DB wird einmal am Tag gesichert und zwar unter folgender Annahme:
- das Programm wird mindestens einmal am Tag gestartet!

Folgender Workflow:
User meldet sich an --> Programm prüft in DB.Table'Einstellungen'.Field'LastSave', wann der letzte Backup war --> wenn letzter Backup gestern, dann BACKUP und DB.Table'Einstellungen'.Field'LastSave' neu setzen!

Anstelle der Aktion "User meldet sich an" könnte man jede beliebige Useraktion nehmen (klickt auf Button abc, öffnet Dataset xy, etc.)

Problem: Du bekommst keine periodischen Backups hin, aber eigentlich hinreichend periodische!

gsh 19. Jun 2009 23:33

Re: Datenbank automatisch sichern
 
ich würde auf dem datenbank server einfach einen cronjob zum sichern einrichten.
Einfach schnell unkompliziert :thumb:

mjustin 20. Jun 2009 09:31

Re: Datenbank automatisch sichern
 
Zitat:

Zitat von gsh
ich würde auf dem datenbank server einfach einen cronjob zum sichern einrichten.
Einfach schnell unkompliziert :thumb:

Mach ich auch, unter Windows mit einem 'Geplanten Vorgang' (meist mehrmals am Tag). Auch praktisch, wenn man ein Restore danach z.B. nachts durchführt. Dadurch kann man a) prüfen ob das Restore problemlos läuft, und b) hat man eine fast aktuelle Kopie der Datenbank für Testzwecke.

gsh 20. Jun 2009 10:32

Re: Datenbank automatisch sichern
 
Zitat:

Zitat von mjustin
Mach ich auch, unter Windows mit einem 'Geplanten Vorgang' (meist mehrmals am Tag). Auch praktisch, wenn man ein Restore danach z.B. nachts durchführt. Dadurch kann man a) prüfen ob das Restore problemlos läuft, und b) hat man eine fast aktuelle Kopie der Datenbank für Testzwecke.

und was ist dann dein Problem? :gruebel:

hoika 20. Jun 2009 10:57

Re: Datenbank automatisch sichern
 
Hallo,

bwolf hat ja das Problem, nicht mjustin ;)


Heiko

Hansa 20. Jun 2009 12:53

Re: Datenbank automatisch sichern
 
Weiß nicht, ob das in MySQL auch möglich ist. Eine Suche danach wäre IMHO aber durchaus sinnvoll. In Firebird gibt es ein weithin unbekanntes feature. Mit CREATE SHADOW kann die DB auf externem Medium (üblicherweise USB-Platte, Netzwerk geht nicht) gespiegelt werden. Man hat die DB also zu jedem Zeitpunkt doppelt. Raucht der Server ab, dann muss die lediglich auf neuen überspielt werden und fertig. Auch irgendwelche Sicherungsintervalle oder vergessenen Sicherungen sind dann kein Thema mehr.

gsh 20. Jun 2009 13:28

Re: Datenbank automatisch sichern
 
Zitat:

Zitat von hoika
bwolf hat ja das Problem, nicht mjustin ;)

ups :oops:

Zitat:

Zitat von Hansa
Weiß nicht, ob das in MySQL auch möglich ist. Eine Suche danach wäre IMHO aber durchaus sinnvoll. In Firebird gibt es ein weithin unbekanntes feature. Mit CREATE SHADOW kann die DB auf externem Medium (üblicherweise USB-Platte, Netzwerk geht nicht) gespiegelt werden. Man hat die DB also zu jedem Zeitpunkt doppelt. Raucht der Server ab, dann muss die lediglich auf neuen überspielt werden und fertig. Auch irgendwelche Sicherungsintervalle oder vergessenen Sicherungen sind dann kein Thema mehr.

Bei Mysql ist es imho am einfachsten das Tool mysqldump zu verwenden. Damit kann man auch einen Snapshot von der DB machen und bei mir funktioniert das unter windows und unter linux einwandfrei.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz