![]() |
AW: Zwei Spalten auf zwei Server vergleichen
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.
|
AW: Zwei Spalten auf zwei Server vergleichen
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? |
AW: Zwei Spalten auf zwei Server vergleichen
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:
|
AW: Zwei Spalten auf zwei Server vergleichen
Zitat:
|
AW: Zwei Spalten auf zwei Server vergleichen
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 Zitat:
|
AW: Zwei Spalten auf zwei Server vergleichen
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz