Ansätze für Datenbanksicherung/synchronisierung

T

trauter

Grünschnabel
Hallo!
Ich habe folgendes Problem: Ich will ganze Datenbanken auf einem entfernten Server sichern (Backup), bzw. wenn es ganz gut geht sogar synchronisieren(=nur Updates neu Übertragen). Dies sollte so plattformunabhängig wie Möglich sein. Das heist am Client sollten ohne größere Probleme verschiedene Datenbanksysteme möglich sein (Oracle, Sybase, MS-SQL Server oder ähnliches).

Die Implementierung wird über Java erfolgen.
Ich hab mir schon verschiedene Möglichkeiten angesehn aber nichts wirklich funktionierendes gefunden.

Hat hier jemand ein ähnliches Problem schon mal gehabt, bzw. hat Ideen? Meine erste idee war ja irgendwas mit Hibernate aber das wär wahrscheinlich zu aufwendig..
Wäre sehr dankbar.
mfg trauter

edit: Ich bin mir net sicher aber das könnte unter Umständen auch besser im Java-Forum aufgehoben sein. Soll vl ein Mod entscheiden.
 
Ich denke nicht, dass das sinnvoll ist. Oracle bsp. hat sehr effektive Tools dabei um zu backuppen - ich kenne keinen DBA der was anderes dafuer nutzen wuerde :).

Wenn du synchronisieren willst, mach einen passiven Cluster..?
 
Danke für deine Antworten, aber das ist eben nicht das, was ich will :)
Es geht darum das ich über ein Programm Datenbanken auf nem Server im Internet sichere und eben bei Problemen wieder herunterladen kann.

Das mit dem Cluster funktioniert somit also nicht, auch, weil es ja für eine größere Anzahl an User angeboten werden sollte, was bei Clustern wohl sehr ineffizient seind würde denk ich mal.
 
Du willst locale Datenbanken als Backup auf einen Webserver sichern?
Das ist ein wenig so, als wenn du deinen Tresor auf die Straße stellst.

Aber wo ist das Problem?
IMHO hat jede DBS eigene Tools DUMPS zu ziehen und wieder einzufügen.
Warum also nicht einfach daraus tar erstellen und uploaden?

Gruß Wolfgang
 
jo das mim dump is ja wohl eine Möglichkeit, die ich schon angedacht habe... aber es geht mir eher darum, das irgendwie zu umgehen und nur Updates zu übertragen. Und das auch, wenn die Tabellen nicht dafür optimiert sind (timestamps oder id etc.). Das ist aber anscheinend nicht möglich oder?
 
aber es geht mir eher darum, das irgendwie zu umgehen und nur Updates zu übertragen.

Es gibt die Möglichkeit inkrementielle Dumps zu machen.

Mehr brauchst du nicht.
 
danke :) das is schon mal ein tolles stichwort das muss ich mir mal genauer anschaun

hmmm okay das scheint schon mal fast das zu sein, was ich will. nur bin ich anscheinend im Moment zu blöd google zu verwenden :/

kennt einer zufällig ne gute zusammenfassung für die verschiedenen dumps auf verschiedenen DBMS?
also wichtig wäre
Oracle
MySql
Sybase
Access
Microsoft SQL Server?

wär super wenn ihr mir nochmal helfen könntet :) lg tr
 
Zuletzt bearbeitet:
Danke für deine Antworten, aber das ist eben nicht das, was ich will :)
Es geht darum das ich über ein Programm Datenbanken auf nem Server im Internet sichere und eben bei Problemen wieder herunterladen kann.

mysqldump -u root -p 'geheim' --all-databases > /tmp/backup.sql

Dann per ftp oder rsync oder sftp oder unison oder nfs-mount oder bacula oder xFS oder, oder auf den Zielserver verschieben.

SQL-Server-unabhängig wirds wegen der Dialekte nicht ohne extrem clevere Scripte angehen.

Besser: Replikation, weil in Echtzeit (naja, fast)
 
mysqldump -u root -p 'geheim' --all-databases > /tmp/backup.sql

Viel Spass beim wieder einspielen. :P Ich würde eher folgenden Befehl für Dumps nutzen:

Code:
mysqldump -h {db-server-host.tld} -u {dbuser} -p{dbpasswort} -l -c -v --quote-names {datenbankname} > /tmp/backup.sql

Das Passwort muß direkt ohne Freizeichen an den Parameter -p angehängt werden. Die Wert in den geschweiften Klammern sind natürlich entsprechend auszutauschen. Aber abgesehen davon ist das nicht inkrementell und mit mysqldump lassen sich auch meines Wissens nach keine inkrementellen Backups machen.

Eine Möglichkeit wäre es binlogs zu aktivieren. In diesen Logdateien werden alle SQL-Statements geschrieben, die man dann einfach nur über den Backup-Server jagen braucht. Wesentlich performanter dürfte es aber mit einer replizierten (nicht geclusterten) Datenbank sein. Beispiel zur Einrichtung einer Replikation mit MySQL ist z.B. unter http://www.hackerwiki.org/index.php/Datenbank-Replikation_mit_MySQL beschrieben.
 
MSSQL und Oracle kann man übrigens auch prima mit iAnywhere (Sybase) synchronisieren können. Die Developer-Version ist kostenlos und auch unter Linux nutzbar.

@trauter:
Für Access wirst Du übrigens keine Lösung finden. Ich musste selbst mal einen XML-basierten Synchronisationsmechanismus zwischen MSSQL und Access entwickeln. So "out of the box" klappt das nicht.


Gruß,

Lord Kefir
 

Ähnliche Themen

Suche Lösung für remote /shared home folder

Heimserver Konfiguration für Ubuntu Server?!

Beratung für das 1. software projekt?

Gentoo - Vielleicht wollen doch einige Umsteigen ?

Zurück
Oben