[gelöst]Daten von Server_1 nach Server_2 bringen

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

[gelöst]Daten von Server_1 nach Server_2 bringen

Beitragvon querdenker » Donnerstag 19. Juli 2007, 18:06

Sodale, brauche mal Hilfe, Ratschläge oder Weisheiten.

Folgende Konstellation ist gegeben:
    2 Datenbankserver (Win2K, Firebird)
      per Taskplaner werden die DB-Server gestoppt, jeder Server kopiert seine Datenbanken auf einen separaten Server (samba-share), danach wieder gestartet
    -2 Linux-Server (archlinux, samba)
      Geschwindigkeit : gemittelt 14 Mb / sec [edit]
      Server A: kleine Platte mit System, S-ATA Mirror mit 2x500 Gb im Wechselrahmen
      Server B: kleine Platte mit System, IDE-JBOD mit 4X 150 Gb

Der Grund für die Sicherung auf 2 separate Server liegt in dem Zeitfenster, das ich habe: 3 Stunden. Die Zeit ist ausreichend.

Was ich suche/brauche: einen Weg, regelmäßig (Cron) einen Teil der Daten von Server B zu Server A zu kopieren, damit der Stapel außer Hause ist.

Der Weg über rsync und verwandte Tools fällt aus da Delta-Vergleiche über Datenbanken keinen Sinn macht (bis zu 60 Gb pro DB), GUI-Tools auch.

Wenn jemand eine Idee oder einen Gedanken hat - immer her damit

danke, querdenker

[edit :] dezenter Berechnungsfehler, wie sich hier herausgestellt hat. War gestern wohl doch zu spät
Zuletzt geändert von querdenker am Montag 20. August 2007, 15:30, insgesamt 2-mal geändert.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Daten von Server_1 nach Server_2 bringen

Beitragvon gerold » Donnerstag 19. Juli 2007, 18:43

querdenker hat geschrieben:Der Weg über rsync und verwandte Tools fällt aus da Delta-Vergleiche über Datenbanken keinen Sinn macht (bis zu 60 Gb pro DB)

Hallo querdenker!

rsync kennt den Parameter "--whole-file". Damit werden immer komplette Dateien übertragen. (without rsync algorithm)

rsync kennt den Backup-Modus (--backup) der könnte dir evt. auch hilfreich sein.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Re: Daten von Server_1 nach Server_2 bringen

Beitragvon Joghurt » Donnerstag 19. Juli 2007, 19:19

querdenker hat geschrieben:Der Weg über rsync und verwandte Tools fällt aus da Delta-Vergleiche über Datenbanken keinen Sinn macht (bis zu 60 Gb pro DB), GUI-Tools auch.
Hast du es getestet oder vermutest du das?
Rsync kann auch damit umgehen, wenn die Daten nur an anderen Stellen sind. Wenn sie allerdings zu sehr vermischt oder komprimiert sind, dann hilft es nicht.
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

Beitragvon querdenker » Donnerstag 19. Juli 2007, 19:34

@gerold: Danke erstmal, werde mir rsync nochmal in Ruhe anschauen bezüglich der Optionen

@Joghurt: ich werde einen Teufel tun und via Delta Datenbanken mit einander vergleichen. Insbesondere wenn die Datenbanken in sich selber Filesysteme sind, wie das zum Beispiel bei Firebird der Fall ist.

Als Quickshot läuft momentan auf Server_A vsftp und von Server_B wird via ncftpput hochgeschaufelt. Allerdings nervt der FTP-Overhead. Der bremst deutlich aus.
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Donnerstag 19. Juli 2007, 19:57

querdenker hat geschrieben:@Joghurt: ich werde einen Teufel tun und via Delta Datenbanken mit einander vergleichen. Insbesondere wenn die Datenbanken in sich selber Filesysteme sind, wie das zum Beispiel bei Firebird der Fall ist.
Dann hast du auch beim normalen Kopieren genau dasselbe Problem...
BlackJack

Beitragvon BlackJack » Donnerstag 19. Juli 2007, 20:07

Von Deltas würde ich bei so grossen Dateien auch unbedingt abraten. Der Algorithmus der das "kleinste" Delta sucht braucht ewig und Unmengen an Speicher.
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Donnerstag 19. Juli 2007, 20:32

Aber rsync erstellt ja kein kleinstes Delta...
The rsync algorithm
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Donnerstag 19. Juli 2007, 21:11

querdenker hat geschrieben:Allerdings nervt der FTP-Overhead. Der bremst deutlich aus.

Hallo querdenker!

FTP ist so ziemlich die schnellste Art Dateien zu übertragen, die ich kenne. Von welchem Overhead sprichst du. Den gibt es bei FTP praktisch nicht.

Denke vielleicht doch lieber über einen guten FTP-Server wie z.B. ProFTP nach.

Als Client empfehle ich "lftp". Damit habe ich nur die besten Erfahrungen gemacht. Siehe auch: http://gerold.bcom.at/codeschnipsel/aut ... pload_ftp/

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Beitragvon birkenfeld » Donnerstag 19. Juli 2007, 21:43

gerold hat geschrieben:
querdenker hat geschrieben:Allerdings nervt der FTP-Overhead. Der bremst deutlich aus.

Hallo querdenker!

FTP ist so ziemlich die schnellste Art Dateien zu übertragen, die ich kenne. Von welchem Overhead sprichst du. Den gibt es bei FTP praktisch nicht.


Dafür ist das Protokoll arkan und unterstützt weder Verschlüsselung noch Kompression. Rsync ist da schon wesentlich moderner, und dass es langsamer als FTP ist, glaube ich kaum.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

Beitragvon querdenker » Freitag 20. Juli 2007, 00:38

@gerold:
Ich ziehe meine Aussage bezüglich der Geschwindigkeit des FTP-Protokolles zurück. Habe gerade noch mal ein paar Zahlen durchgerechnet und werde morgen wohl mal ein wenig umbauen. 'nen guten nativen FTP-Client für Win2K suche ich noch. Aber auf Linux bleibe ich bei meinem vsftpd und meinem ncftpput. :wink:

@Joghurt:
Wenn ich eine Datei kopiere, werden wenn überhaupt nur im physikalischen Dateisystem Fragmente angestellt.
Mal eine grobe Übersicht:
Eine FB/IB-DB ist intern in pages organisiert. Am Anfang ein paar pages mit allgemeinen Informationen, wie z.B. first und last page, transaction statistics, checksums und unter anderem auch ein paar pages mit allocations für andere pages. Am Ende der Datei sind preallocated pages zu finden, mittendrin sind pages mit Inhalt, zum Beispiel ein BLOB. Achja, und es gibt noch pages, die ein DELETED-Flag haben können.
In der Kopie von vorgestern ist in der Page 0x5FE437 an Position 0x0F70 das Byte 0x82 gespeichert. Heute hat der Benutzer etwas in der aktuellen DB geändert, an der selben Stelle Steht jetzt ein 0xFF. Daraus ergeben sich DB-interne neue Checksums, die wiederum andere Informationen in der page allocation haben. Dann stellt der Kunde fest, das er da mit den Sachen Mist gemacht hat und löscht die in der Applikation(Er löscht zum Beispiel 10 von 30 Seiten Text, der in BLOBs als RTF gespeichert ist. Resultat sind mehrere Pages mit dem DELETED-Flag, mitten in der DB. Die sind natürchlich auch wieder zur Verwendung freigegeben. Der Kunde erfasst neue Daten, die an die Stelle kommen, wo eine page ein DELETED-Flag hat.
Die Datei hat übrigens eine Größe von etwas mehr als 30 GB. Am Ende des Abends wirst du feststellen, das ein Vergleich nichts bringt, da die Dateien a) zu groß sind und b) sich zu viel ändert.

@birkenfeld: das ist rein hausinterner Datenverkehr über ein Layer2/3 Gigabit Netz, der geht nicht nach draußen. Und ich bin der einzige, der Zugriff auf diese Bereiche hat. Somit ist das Thema Verschlüsselung hinfällig.
Und was die Kompression angeht - da könnte ich die Dateien besser vorher durch den LZMA-Algo schieben, der kann unsere DBs teilweise von 270 auf 17 MB eindampfen. Dauert allerdings auch wieder.

@alle: Gehe jetzt schlafen, bin müde. Nachher geht's weiter.

nacht, querdenker
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Freitag 20. Juli 2007, 07:12

querdenker hat geschrieben:'nen guten nativen FTP-Client für Win2K suche ich noch. Aber auf Linux bleibe ich bei meinem vsftpd und meinem ncftpput.

Hallo querdenker!

ncftpput läuft unter Cygwin.

lftp läuft Unter Cygwin

Windows hat ein eigenes FTP-Programm mit dabei
- http://www.nsftools.com/tips/MSFTP.htm
- http://www.textheavy.com/tutorials/winftp.html
- http://www.howtogeek.com/howto/windows/ ... mand-line/

Und wenn du ein gutes GUI-Programm brauchst: http://www.filezilla.de/

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BlackJack

Beitragvon BlackJack » Freitag 20. Juli 2007, 08:31

@Joghurt: Dann eben nicht das kleinste. Probiers einfach mal aus. Es ist echt furchtbar langsam und speicherintensiv bei Dateien im Gigabytebereich.
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

Beitragvon querdenker » Freitag 20. Juli 2007, 08:54

@gerold:
Und du kommst mir mit der eingebauten ftp-krücke. Sprach ich nicht von guten FTP-Clients? Hätte vielleicht sagen sollen, das die Datenbanken nicht alle platt in einem Verzeichnis liegen, sondern nach Kunde in Unterordnern. Die kann der Standard-FTP-Client von Windows meines Wissens nach nicht rekursiv durchlaufen und übertragen.
Hast du Erfahrung mit Cygwin-Programmen, die über den Taskplaner gestartet werden? Laufen die sauber?
Weil ich will die DB-Server soweit als nur möglich frei halten von irgendwelcher Zusatz-Software. Die einzige Ausnahme ist bisher SciTE als SingleFile.

danke, marcus
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Freitag 20. Juli 2007, 09:30

querdenker hat geschrieben:@gerold:
Und du kommst mir mit der eingebauten ftp-krücke.
[...]
Hast du Erfahrung mit Cygwin-Programmen, die über den Taskplaner gestartet werden? Laufen die sauber?

Hallo querdenker!

O.K., O.K. -- wenn du nicht weißt, welche Dateien du übertragen möchtest, sondern einen Ordner rekursiv durchlaufen willst, dann bist du mit dem in Windows eingebauten FTP nicht gut beraten. ;-)

Meine Erfahrungen mit Cygwin: --> Cygwin ist das bessere Windows. In meiner Firma und bei Kunden, auf die wir per Fernwartung zugriff auf die Server und Kassen-Arbeitsstationen haben, läuft auf jedem Windows-Rechner ein voll installiertes Cygwin. Ich möchte es nicht mehr missen.

Es ist kein Problem, Bash-Skripte über den Taskplaner aufzurufen. Falls es doch mal Probleme geben sollte, dann lagere ich den Aufruf in eine CMD-Datei aus.

Oft muss man bash.exe als Programm angeben. Aber das ist ja kein Problem: ``C:\cygwin\bin\bash.exe --login -i -c "<Pfad und Dateiname der Shell-Datei>"``

Cygwin läuft sehr stabil. Den OpenSSH-Daemon kann man als Windows-Dienst laufen lassen. Wie man die einzelnen Programme korrekt einrichtet/installiert oder als Dienst laufen lassen kann, steht im Ordner "C:\cygwin\usr\share\doc\Cygwin".

OpenSSH installiert sich fast von selbst mit ``ssh-host-config``. Wie man Rsync als Dienst einrichtet, steht in der Datei "rsync-2.6.6.README". Usw.

Ich kann nur Positives berichten.

mfg
Gerold
:-)

PS: Warum schreibe ich nur immer so viel? ;-)

PS2: Ich hänge immer an die Umgebungsvariable PATH den Pfad zu den Cygwin-Binaries an: "C:\cygwin\bin". So kann ich auch von der DOS-Kommandozeile aus auf so nette Programme wie "less", "man", "rm", usw. zugreifen.
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

Beitragvon querdenker » Freitag 20. Juli 2007, 10:38

@gerold: Ich weiß schon, was ich für Daten übertragen will. Ich will bloß nicht bei jeder Änderung (Kunde kündigt, Kunde kommt neu dazu) Scripte anpasssen müssen.
Ich habe auf den Seiten von ncftp gesehen, das es einen windows-client von denen gibt. Den werde ich mir nachher (lang lebe freie Gleitzeit) in der Firma mal zu gemüte führen. Habe zu hause kein Win, wo ich testen könnte.

thx, marcus

ps: weiß ich nicht :lol:
ps2: klingt logisch

ps3: Ich gebe nachher mal Rückmeldung, wie der ncftp-Client unter Windows performt.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder