Anzeige:
Ergebnis 1 bis 14 von 14

Thema: datenbanken abgleichen

  1. #1
    horschi
    Gast

    datenbanken abgleichen

    hiho

    habe folgendes problem:

    Rechner Nr1 hat eine sql datenbank auf der pladde, die ich auf nen anderen Rechner (nennen wir ihn mal rechner Nr2 :-) ) uebertragen moechte.

    liegt da auf rechna 1 vielleicht irgendwo (im /var verz. ?) ne datei die ich grad rueberkopieren kann ??

    oder gibts ne moeglichkeit die direkt ueber netzwerk abzugleichen ??

    mfg.
    Christian

  2. #2
    Registrierter Benutzer Avatar von elrond
    Registriert seit
    03.10.2001
    Ort
    potsdam
    Beiträge
    881
    falls du eine mysql-db betreibst ist das einigermassen problemlos mittels mysqldump möglich. wenn du keine allzugrossen datenmengen zu bewegen hast

    könnte ohne eine date zu schreiben so funktionieren (hab's nicht getestet...)<- ich hb' eben getestet, funxt genau so...

    mysqldump -h rechner1 -u username -p password --add-drop-table datenbank|mysql datenbank

    wenn du das auf dem rechner 2 ausführst und die datenbank "datenbank" vorhande ist sollte das gehen.
    Geändert von elrond (21-01-2002 um 08:30 Uhr)
    "Um die Welt zu ruinieren, genügt es, wenn jeder seine Pflicht tut." (Winston Churchill)

  3. #3
    Registrierter Benutzer Avatar von TheDodger
    Registriert seit
    17.05.2001
    Ort
    Hamburg
    Beiträge
    615
    das kommt darauf an, was auf rechner a für eine sql-db läuft (mysql, postgresql, oracle, ingres, etc.) und welche du auf rechner b einsetzt.
    zwischen 2 verschiedenen sql-db's daten auszutausen sollte imho nicht ganz so einfach sein, ansonsten, daß tun, was elrond sagt.

    (sollte doch eigentlcih möglich sein, eine pipe zwischen 2 db's zu legen und nur die daten auszutauschen, ohne die tables ...)
    Bodo
    Systemadmistration UNIX

  4. #4
    Registrierter Benutzer Avatar von elrond
    Registriert seit
    03.10.2001
    Ort
    potsdam
    Beiträge
    881
    Original geschrieben von TheDodger

    (sollte doch eigentlcih möglich sein, eine pipe zwischen 2 db's zu legen und nur die daten auszutauschen, ohne die tables ...)
    mysqldump produziert sql-statements;
    insert into table values(bla,bla,bla);

    d.h. du müsstest die daten aus den tabellen vorher löschen. genau das geschieht mittels drop table, da auch das neuanlegen der tab im dump geschieht.
    "Um die Welt zu ruinieren, genügt es, wenn jeder seine Pflicht tut." (Winston Churchill)

  5. #5
    Registrierter Benutzer Avatar von TheDodger
    Registriert seit
    17.05.2001
    Ort
    Hamburg
    Beiträge
    615
    Original geschrieben von elrond


    mysqldump produziert sql-statements;
    insert into table values(bla,bla,bla);
    das weiß ich


    d.h. du müsstest die daten aus den tabellen vorher löschen. genau das geschieht mittels drop table, da auch das neuanlegen der tab im dump geschieht.
    so meinte ich das aber ned ...
    vorrausgesetzt, die tabellen exestieren bereits in der 2. DB, wäre ein pipe zwischen 2 DB's schneller, als ein dump der einen und ein insert auf der anderen.
    Zumal man mit dieser Methode der Austausch der Daten zwischen zwei unterschiedlichen DB's möglich ist.
    (hmmm, IMHO unterstützt PowerBuilder so eine Art Pipeline'ning ... allerdins auf ODBC-Basis)
    Bodo
    Systemadmistration UNIX

  6. #6
    Registrierter Benutzer Avatar von elrond
    Registriert seit
    03.10.2001
    Ort
    potsdam
    Beiträge
    881
    Original geschrieben von TheDodger


    (hmmm, IMHO unterstützt PowerBuilder so eine Art Pipeline'ning ... allerdins auf ODBC-Basis)
    ich weiss nicht was powerbuilder da macht...

    aber irgendwie erinnert das sehran M$-SQL-Server mit diesem replikationsschwachsinn. ich kenne keine anwendung wo das tatsächlich läuft...

    alternativ könnte man selbst ein wenig basteln. die betroffenen tabellen bräuchten timespamps und dann könnte man zb mit erl ein script laufen lassen, das diesen abgleich zyklisch vornimmt. damit wäre man etwas unabhängiger von der datenbasis.
    "Um die Welt zu ruinieren, genügt es, wenn jeder seine Pflicht tut." (Winston Churchill)

  7. #7
    Registrierter Benutzer Avatar von TheDodger
    Registriert seit
    17.05.2001
    Ort
    Hamburg
    Beiträge
    615
    Original geschrieben von elrond


    ich weiss nicht was powerbuilder da macht...

    aber irgendwie erinnert das sehran M$-SQL-Server mit diesem replikationsschwachsinn. ich kenne keine anwendung wo das tatsächlich läuft...
    ich kenn den M$-SQL Server nicht, aber PowerBuilder

    Er holt sich nur die Daten via 'select * ...' aus der Tabelle der 1. Datenbank und schiebt die mit 'insert ...' ind die 2. Datenbank.
    Bei bedarf legt er die entsprechenden Tabellen an.
    Die Daten dazu holt sich PB aus den entsprechenden Systemtabellen.
    Eigentlich ein intelligentes Tool, wenn ein Kunde die Migration von einem alten ASE-Server auf 'ne Oracle9i verlangt ...
    Da kriegt man die Daten u.U. innerhalb eines Tages in die neue DB ...


    alternativ könnte man selbst ein wenig basteln. die betroffenen tabellen bräuchten timespamps und dann könnte man zb mit erl ein script laufen lassen, das diesen abgleich zyklisch vornimmt. damit wäre man etwas unabhängiger von der datenbasis.
    was vorraussetzt, das man ein Linux-System läufen hat ... Aber in manchen Fällen trifft das (noch) nicht zu :-/
    Bodo
    Systemadmistration UNIX

  8. #8
    Registrierter Benutzer Avatar von elrond
    Registriert seit
    03.10.2001
    Ort
    potsdam
    Beiträge
    881
    das eigentliche problem bei solchen abgleichen ist doch aber das inhaltliche. mit 'select * from..' und 'insert into...' ist das sehr hübsch, aber irgendwie muss man doch dafür sorgen, dass die daten konsistent bleiben. selbst bei nur einer tabelle müsste man entweder den betroffenen datensatz vor dem insert löschen oder ein 'update...' drüberjagen. das ist imho relativ schwierig das einigermassen db-unabhängig hinzukriegen, da man vor dem eigentlichen abgleich datenstrukturen bzgl. primary und forgin keys analysieren müsste...

    Hut ab, wenn PB das ordentlich macht.
    "Um die Welt zu ruinieren, genügt es, wenn jeder seine Pflicht tut." (Winston Churchill)

  9. #9
    Registrierter Benutzer Avatar von TheDodger
    Registriert seit
    17.05.2001
    Ort
    Hamburg
    Beiträge
    615
    Tut es ... mit allen DB-typischen Abhängigkeiten zwischen den einzelnen Tabellen.
    Dafür liest PB ja auch extra die Systemtabellen aus, um das so hinzubekommen.
    Ja, dafür kann man PB gut gebrauchen ... auch m´um relativ schnell funktionierende DB-Frontends zu erstellen, das aber nicht mittels C++ (oder einer ähnlichen Hochsprache), sondern einer eigenen Syntax ...

    Aber ich denke, das hier geht jetzt massiv an der eigentlichen Fragestellung vorbei und ist Off-Topic
    Bodo
    Systemadmistration UNIX

  10. #10
    Registrierter Benutzer
    Registriert seit
    12.11.2000
    Beiträge
    63
    trotzdem noch kleine frage an dich TheDodger.

    ich kenne auch PowerBuilder, gibts das auch für linux?? habs bis jetzt nur für windose gesehen.

    gruß.

  11. #11
    Registrierter Benutzer Avatar von TheDodger
    Registriert seit
    17.05.2001
    Ort
    Hamburg
    Beiträge
    615
    nein, ich kenne auch nur die version für windows, für linux gibt es IMHO nicht's.
    Aber du kannst ja mal bei sybase anfragen!
    Bodo
    Systemadmistration UNIX

  12. #12
    Registrierter Benutzer Avatar von Mattburger
    Registriert seit
    10.05.2001
    Ort
    Reutlingen
    Beiträge
    69

    Post Interbase, da nu ein File

    Hallo Christian,

    falls du dich fuer die Datenbank noch entscheiden kannst, so kann ich dir fuer deinen Fall den Interbase-Server empfehlen. Hier hast du tatsaechlich nur ein File z.B. mydb.gdb, welches du auf einen anderen Rechner uebertragen kannst.

    Das ganze funktioniert natuerlich nur wenn dieses nicht im parallel-Betrieb erfolgen soll.

    Die Datenbank sollte auch waehrend des Kopiervorgangs nicht geoeffnet sein.


  13. #13
    horschi
    Gast

    problem geloest

    ich benutze mysql

    habe das problem inzwischen selbst loesen koennen, ein blick in die manpages hat geholfen, ich komm mir richtig bloed vor sowas hier gefragt zu haben :-)

    in /var/lib/mysql/datenbankname liegt alles drin
    auf dem zielrechner muss mann allerdings die datenbank erstmal per mysqladmin oder sowas aehnlichem erstellen, sonst geht das rueberkopieren nicht


    naja, auf jeden fall vielen dank fuer eure zahlreichen postings

    mfg.
    Christian

  14. #14
    Registrierter Benutzer Avatar von elrond
    Registriert seit
    03.10.2001
    Ort
    potsdam
    Beiträge
    881
    wenn du mit der mysql arbeitest macht es dennoch sinn das eigens dazu entwickelte werkzeug "mysqldump" ,wie in meinem ersten posting beschrieben, zu benutzen. so kannst du vermeiden, dass es zu konkurrierenden zugriffen auf die datenbankfiles kommt.
    "Um die Welt zu ruinieren, genügt es, wenn jeder seine Pflicht tut." (Winston Churchill)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •