AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Zwei Spalten auf zwei Server vergleichen
Thema durchsuchen
Ansicht
Themen-Optionen

Zwei Spalten auf zwei Server vergleichen

Ein Thema von Edelfix · begonnen am 27. Feb 2015 · letzter Beitrag vom 4. Mär 2015
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
 
Delphi 12 Athens
 
#11

AW: Zwei Spalten auf zwei Server vergleichen

  Alt 2. Mär 2015, 13:38
Falls Du nicht die interne Replikation verwenden willst, bliebe noch der Weg über Trigger: auf jede Tabelle Trigger für INSERT, UPDATE und DELETE und die Aktion in einer Schattentabelle speichern (zB rowversion; modtime; username; tablename; action; recordhash). Ein Programm kann dann zB zu beiden Servern verbinden, diese Schattentabellen vergleichen (ab der zuletzt gespeicherten rowversion) und die Aktionen nachfahren, falls der HASH nicht übereinstimmt.
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Edelfix

Registriert seit: 6. Feb 2015
Ort: Stadtoldendorf
214 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: Zwei Spalten auf zwei Server vergleichen

  Alt 3. Mär 2015, 16:17
Erst einmal Danke für die Beiträge!

Es geht mir nicht um das Synchronisieren der Datenbanken.

Ich will nur einmal alle 24h ein Check machen wie eine Art Volkszählung ob alle Datensätze in den Datenbanken synchron sind.

Dazu bilde ich eine art Prüfsumme in dem ich jede Tabelle mit RECCOUNT durchzähle und die Ergebnisse jeder Zählung addieren.

Die beiden Summen aus den beiden DB werden verglichen und wenn sie nicht gleich sind = Alarm Email an Support.

Es funktioniert aktuell aber eben argh langsam und das Abarbeiten nacheinander.

Das Anbinden anderer Datenbanken über "Links" scheitert weil wir "Check User Rights" deaktivieren müssten das aber nicht dürfen.

Danke für die zahlreichen Vorschläge.

@joachimd. Wie ist das mit den Schattentabellen gemeint? Virtuelle Tabellen mit #Tabellenname?
Kann ich mit einer Query die aufgelisteten Informationen (zB rowversion; modtime; username; tablename; action; recordhash) abfragen? Wenn ja wie?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

AW: Zwei Spalten auf zwei Server vergleichen

  Alt 3. Mär 2015, 19:47
Hol dir doch einfach von dem entfernten Server die Daten in ein ClientDataSet, füge diese Daten in eine temporäre Tabelle auf dem lokalen Server ein und dann vergleichst du ganz gemütlich.

Das jetzt mit der PPL noch gemaxht, dann wird es auch einigermassen fix.

Insgsamt laufen da dann 2 Threads parallel:
  • Einer holt die Daten
  • der andere trägt die Daten ein und vergleicht die Daten per SQL-Statement.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
 
Delphi 12 Athens
 
#14

AW: Zwei Spalten auf zwei Server vergleichen

  Alt 4. Mär 2015, 13:16
@joachimd. Wie ist das mit den Schattentabellen gemeint? Virtuelle Tabellen mit #Tabellenname?
Kann ich mit einer Query die aufgelisteten Informationen (zB rowversion; modtime; username; tablename; action; recordhash) abfragen? Wenn ja wie?
#tabellen stehen nur der aktuellen Verbindung zur Verfügung und werden nach einem Disconnect gelöscht. Ich meine schon eine "echte" Tabelle, welche eben das Log mitführt. Diese kannst du dann ab einem bestimmten Eintrag (ROWVERSION) von deinem Client-Programm lesen und abarbeiten.
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Benutzerbild von rweinzierl
rweinzierl

Registriert seit: 22. Mär 2005
98 Beiträge
 
#15

AW: Zwei Spalten auf zwei Server vergleichen

  Alt 4. Mär 2015, 17:01
Hallo

Warum ist die aktuelle Lösung langsam ? Ich vermute das es daran liegt das dabei die gesamte Datenbank übers Netz muss. Nocheinmal, wenn ich würde nur einen Hash Wert übertragen und vergleichen

mfg

Reinhold



Erst einmal Danke für die Beiträge!

Es geht mir nicht um das Synchronisieren der Datenbanken.

Ich will nur einmal alle 24h ein Check machen wie eine Art Volkszählung ob alle Datensätze in den Datenbanken synchron sind.

Dazu bilde ich eine art Prüfsumme in dem ich jede Tabelle mit RECCOUNT durchzähle und die Ergebnisse jeder Zählung addieren.

Die beiden Summen aus den beiden DB werden verglichen und wenn sie nicht gleich sind = Alarm Email an Support.

Es funktioniert aktuell aber eben argh langsam und das Abarbeiten nacheinander.
  Mit Zitat antworten Zitat
Edelfix

Registriert seit: 6. Feb 2015
Ort: Stadtoldendorf
214 Beiträge
 
Delphi 10.4 Sydney
 
#16

AW: Zwei Spalten auf zwei Server vergleichen

  Alt 4. Mär 2015, 20:03
Ha ja verstehe. Eine Art Auswerte Tabelle auf jedem Server. Dann braucht man nur die beiden Tabellen auf "ungleich" prüfen.

Genau das auf "ungleich" prüfen dauert. Weil wir dazu beide Tabellen (wenn ungleich) aus beiden Dictionaris holen und beide mit eof und next in den beiden querys Daten Satz nach Daten Satz vorhanden vergleichen.

So eine Schleife mit über 10.000 Datnesätzen dauert.

Da wir jetzt erst einmal beide Server gerade gezogen haben kommt es nicht mehr so oft zu ungleichen Tabellen daher ist das Problem nicht mehr akut.

Vielen Dank.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:37 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