Announcement

Collapse
No announcement yet.

Fragen zu: Datenbank-Abgleich bzw. Datenbank-Replikation

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fragen zu: Datenbank-Abgleich bzw. Datenbank-Replikation

    Hallo Netzgemeinde,

    Wir stehen immer mal wieder vor dem Problem, Kundendatenbanken mit einer Masterdatenbank abzugleichen, weil sich in der Zwischenzeit ein Teil der Datenbankstruktur (Stored Procedures, Domains, Tabellen, etc.) geändert hat. Bisher haben wir das folgendermaßen gemacht:

    1. per IBConsole bzw. ISQL Metadaten aus der Kundendatenbank erzeugen -> Kunde.ddl

    2. per IBConsole bzw. ISQL Metadaten aus der Masterdatenbank erzeugen -> Master.ddl

    3. Über den IBComparer V3.21 ein Result-Script aus der Schnittmenge von Kunde.ddl und Master.ddl erzeugen

    4. Im IBExpert das Result-Script auf der Kundendatenbank ausführen

    Der Nachteil dabei ist, das der IBComparer v3.21 z.B. keine vorhandenen Domains ändert.
    Beispiel: Das Datenbankfeld "Exportpfad" hat die Domain D_Text (VarChar 80) und soll nun die Domain D_Pfad (VarChar 254) erhalten.
    Außerdem ist die Homepage von Boris Loboda nur noch in Kyrillisch.

    In Zukunft möchten wir die Kundendatenbanken möglichst automatisch abgleichen. Was für Alternativen sind Euch bekannt? Welche Möglichkeiten gibt es, um Datenbanken abzugleichen?

    1. IBComparer

    2. Replikation

    3. Eigene Anwendung mit IBO, aber welche Kompos?

    MfG Jürgen Vogt

  • #2
    Hallo,<BR>
    also ich habe das über Replikation gemnacht, unter www.ibphoenix sind ein paar Artikel dazu, auch wie die der IBReplikator das macht.
    <BR>
    Im Prinzip wird jede Änderung an den Tabellen-Inhalten per Trigger in einer Extra-Tabelle protokolliert mit Tab-Name, Primärindex-Wert und Art der Änderung.
    <BR>
    Der von mir geschriebene "Replikationsmanager" (er funktioniert, also darf der diesen Namen tragen ), durchläuft diese Änderungstabelle und führt die Änderungen auf der 2. GDB aus.
    <BR>
    Das einzige, was ich nicht kann, ist auf Änderungen der Struktur zu reagieren. Ich habe auch keinen Plan, wie ich das machen soll.
    <BR>Mein Manager arbeitet sogar noch offline, es wird eine Änderungs-GDB erzeugt, die die Änderungstabelle und die geänderten Tabellen + Datensätze enthält.
    <BR>War notwenig bei dem Kunden, weil keine Online-Verbindung besteht.
    <BR>
    Die Tabellenstruktur-Änderungen erfolgen bei mir simultan auf beiden gdb's über ein script.
    Es sind aber keine Domän-Änderungen, sondern meist nur neue Felder oder Indizes.
    <BR>
    <BR>
    Heiko
    <BR>
    <BR>
    Da fällt mir ein, auf der ibo-hp hab ich doch was drüber gelesen, das Jason schon sowas fertig hat ?

    Comment


    • #3
      Hallo Jürgen,
      <br>
      offline war das Stichwort.
      <br>
      also ich hab mir dazu nen Tool geschrieben, welches die Änderungen in den Tabellen in einen eigene gdb schreibt + dem geänderten datensatz, natürlich nicht beim Löschen.
      <br>
      Diese gdb wird dann auf der anderen Datenbank wieder eingelesen.
      <br>Beide datenbanken besitzen unterschiedliche Mummernkreise für die Primärschlüssel (also 1-5 mio, die 1. 5mio-10 mio die zweite. Das läßt sich ja einfach über Generatoren machen.
      <br>
      <br>
      tabellen-struturänderung hab ich noch nicht drin
      <br>
      <br>
      Heik

      Comment


      • #4
        Hallo Heiko,

        Danke für Deine Antwort. Wir setzen Jasons IBOs in der Version 4.2.Hc ein. Darunter sind auch zwei Komponenten, die da heißen: TIB_RPL_Sync und TIB_RPL_Meta. Mit diesen beiden experimentiere ich gerade, aber ich werde nicht schlau aus ihnen. In ein Testprojekt habe ich zwei TIB_Connection gezogen, denen ich die beiden Datenbanken zuweise. Anschließend weise ich TIB_RPL_Sync und TIB_RPL_Meta über die Eigenschaften IB_Connection und IB_ConnectionSrc jeweils die verschiedenen TIB_Connection zu. Soweit, sogut. Ab hier komme ich jedenfalls nicht weiter. Mein Ziel ist es jedenfalls, "offline" zwei Datenbanken abzugleichen.

        Jürge

        Comment

        Working...
        X