Historische Synchronisation
Die Aufgabe der historischen Synchronisation ist es, ausgewählte historische Daten, die in die Datenbank (Oracle) des lokalen Systems (Subsystem) geschrieben werden, an die zentrale Datenbank des Zentralsystems über eine Datenbankverbindung zu übertragen. Das Subsystem oder mehrere Subsysteme bilden zusammen mit dem Zentralsystem ein verteiltes System.
Vorausgesetzt wird, dass
-
alle Subsysteme und das Zentralsystem verwenden RDB Archivierung.
-
die relationalen Datenbanken des Zentralsystems und der Subsysteme den gleichen Schema-Benutzernamen und Passwort haben, um die Datenbankverbindung stabil zu halten.
-
alle Archivgruppen, die auf den Subsystemen vorhanden sind, ebenso mit identischem Namen auf dem Zentralsystem gegeben sind.
-
eine Installation der historischen Synchronisation wurde durchgeführt.
Es ergibt sich eine hierarchische Struktur der beteiligten WinCC OA Systeme. Die Konfiguration findet auf der Subsystem-Ebene statt, wobei eine Parametrierung der RDB Archivierung ebenso auf der Zentralsystem-Ebene erforderlich ist. Die Subsysteme verbinden sich dann lokal zum Zentralsystem, welches alle Subsystemdaten auf der Zentralsystem-Ebene zusammenfasst (siehe Abbildung unten).
Um eine konsistente Datenübertragung zum Zentralsystem zu ermöglichen, werden alle erforderlichen Konfigurationsdaten für einen Wert synchronisiert, d.h. gegebenenfalls wird ein Datenpunktelement samt Datenpunkt, Datenpunkttyp und System, zu dem ein Wert gehört, durch das Subsystem im Zentralsystem angelegt. Die Definition der Archivparameter (Online-Zeit, Maximale Größe und Anzahl von Archiven, Speichergröße, zeitliche Steuerung von Archivwechseln) wird nicht synchronisiert, da es beabsichtigt ist, dass diese Parameter auf beiden Systemen unterschiedlich sein dürfen. Zum Beispiel können Daten auf dem Subsystem 1 Woche online gehalten werden, dagegen auf dem Zentralsystem bis zu einem Jahr.
Die Synchronisation wird immer am Subsystem initialisiert, nie am Zentralsystem. Der Synchronisationsprozess findet im Hintergrund statt. Die Synchronisation kann entweder automatisch (Default) oder manuell durchgeführt werden. Der manuelle Weg kann nützlich sein, wenn das Netzwerk des Systems nach einem erneuten Verbindungsaufbau stark ausgelastet ist und der Benutzer den Zeitpunkt selbst bestimmen will, wann die Synchronisation durchgeführt werden soll. Auf diesem Wege beeinträchtigt die Synchronisation den normalen Betrieb des Systems nur im geringeren Ausmaß.
Eine Synchronisation der Archivierung am Zentralsystem wird nicht unterstützt. Historische Daten werden nur an den Subsystemen geschrieben. Alle Daten, die das Zentralsystem empfängt, werden mittels einer Synchronisation von den Subsystemen gesendet.
Auswahl der Daten für die Synchronisierung
Die Archivgruppe eines Datenpunktelements bestimmt, ob die Werte des Datenpunktelements an das Zentralsystem weitergeleitet werden oder nicht. Datenpunktelemente müssen demnach entsprechend ausgewählt und gruppiert werden. Die Gruppierung findet in WinCC OA folgendermaßen statt:
-
Wählen Sie eine vorhandene Archivgruppe aus, deren Daten an das Zentralsystem weitergeleitet werden sollen, oder erstellen Sie für diesen Zweck eine neue Archivgruppe (siehe RDB Archivgruppen Einstellungen).
-
Konfigurieren Sie die Archivgruppe nach Belieben (siehe Konfiguration). Wichtig dabei ist, dass die Checkbox "Weiterleiten (Forwarding)" angehakt ist.
-
Öffnen Sie den WinCC OA PARA und fügen Sie den Datenpunktelementen, deren Werte weitergeleitet werden sollen, ein _archiveKonfig hinzu.
-
Wählen Sie in der Combobox des Archivierungspanels die Archivgruppe aus, die Sie in Punkt 1 ausgewählt/erstellt haben.
Alarme
Bei Alarmen muss darauf geachtet werden, dass es nur eine Alarmgruppe in einem WinCC OA System gibt und die Erstellung von weiteren nicht möglich ist. Dadurch ist die Übertragung von entweder allen oder keinen Alarmen nur möglich. Es ist nicht möglich, nur ausgewählte Alarme zu übertragen.
Normaler Betrieb einer Site
RDB schreibt die historischen Daten in Bulks (große Datenmengen) in die Datenbank.
-
Jedes Bulk bekommt eine Bulk-ID, die in die Statustabelle geschrieben wird. Die Bulk-ID wird dazu verwendet, um Daten im Falle eines Fehlers wiederherzustellen. Kombiniert mit der System-ID ist sie global einzigartig.
-
Alle Aktualisierungen und Erweiterungen an Elementen sowie das Löschen von Elementen wird an die Zentraldatenbank weitergegeben, wenn das Element mit der Archivgruppe parametriert wurde, in der auch die "Weiterleiten (Forwarding)" Checkbox angehakt ist (siehe Konfiguration). Sollte es zu Problemen mit der Netzwerkverbindung zur Zentraldatenbank kommen, werden die Daten solange in einer Warteschlange aufbewahrt, bis die Verbindung wieder hergestellt werden kann.
-
Alle Alarme und Werte, die von WinCC OA kommen, werden zuerst in die lokalen Archivtabellen geschrieben und dann in die Warteschlange übertragen, von wo sie in die Zentraldatenbank gesendet werden, wenn sie zu einer Archivgruppe gehören, wo das Forwarding gesetzt ist.
-
Das Zentralsystem markiert die Übertragung als erledigt oder als fehlgeschlagen. Das Subsystem schreibt den entsprechenden Status in die eigene Synchronisation-Tabelle sowie in die Tabelle des Zentralsystems.
Betrieb im Falle eines Site-Fehlers
Wenn die Verbindung zwischen dem Subsystem und dem Zentralsystem unterbrochen wird, werden die Daten auf der Subsystem-Ebene gesammelt. Nachdem die Verbindung wieder aufgebaut werden kann, werden die Daten wieder mit dem Zentralsystem synchronisiert (bis zu einer bestimmten maximalen Archivierungszeit, die am Subsystem parametriert wird - z.B. 1 Woche). Normalerweise wird die Synchronisation automatisch gestartet. Da die Auslastung des Netzwerkes nach Wiederaufbau der Verbindung sehr hoch ist, kann die Synchronisation auch manuell gestartet werden, um den anderen Aufgaben, die nach solch einem Verbindungsaufbau durchgeführt werden, eine höhere Priorität zu geben.
Jeglicher Zeitraum, in dem eine Verbindung zwischen dem Subsystem und dem Zentralsystem nicht hergestellt ist, wird vom Subsystem aufgezeichnet. Nach Wiederaufbau der Verbindung startet die automatische Synchronisation. Nach erfolgreicher Synchronisation wird der entsprechende Eintrag gelöscht (oder als übertragen markiert).
Fehler bei der Übertragung
-
Alle Daten, die versucht wurden weiterzuleiten, sind weiterhin in der Warteschlange verfügbar. Dadurch wird die Übertragung solange fortgesetzt, bis diese erfolgreich durchgeführt werden kann. Ein eigener Datenbankprozess ("Job") ist dafür verantwortlich, dass die Übertragung fortlaufend versucht wird.
-
In der Synchronisation-Tabelle wird der Bulk als "fehlgeschlagen" gekennzeichnet, was bedeutet, dass er weiterhin gesendet werden muss.
-
Ein "Job" versucht kontinuierlich die Daten zu verschicken. Je kürzer das Intervall bei der Installation der Datenbank definiert wurde, desto schneller wird der "Job" eine wiederaufgebaute Verbindung erkennen können.
-
Alle Daten, die in die LASTVAL-Tabelle und Warteschlange geschrieben wurden, werden an die Site verschickt. Bei Erfolg wird die Warteschlangegeleert.
-
Im Falle einer erfolgreichen Übertragung, wird der normale Betrieb fortgesetzt.
Fehlererkennung und Synchronisation werden automatisch durchgeführt.
Wird die Verbindung zwischen dem Subsystem und dem Zentralsystem während des Datentransfers unterbrochen, wird eine Sperre gesetzt und folgende Fehlermeldung im Log Viewer ausgegeben: PVSS_II.log:WCCOAui (1), 2009.07.01 12:44:35.936, CTRL, SEVERE, 76, Invalid argument in function, Error in the Query!, ORA-01591: Sperre wird von unterbrochener, verteilter Transaktion 6.23.223960 aufrecht gehalten. Normalerweise wird die Sperre aufgehoben, sobald die Verbindung wieder hergestellt werden konnte. Ist dies nicht der Fall, ist Folgendes durchzuführen: 1. Abfragen der Pending Transaction mit "SELECT LOCAL_TRAN_ID FROM DBA_2PC_PENDING"; 2. Rollback der Pending Transaction mit der gefundenen Transaktions-ID, z.B.: rollback force '1.8.178692';
Betrieb am Zentralsystem
Jedes Subsystem schreibt seine Daten in das Zentralsystem. Eine Datenverbindung vom Zentralsystem zu den Subsystemen ist nicht erforderlich, da der komplette Verkehr vom Subsystem initiiert wird - das Zentralsystem übernimmt hier die Rolle des passiven Systems.
Manuelle Synchronisation
Es ist möglich, die automatische Synchronisation auszuschalten, was heißt, dass der "Job" die Warteschlange nicht leert, bevor diese nicht erfolgreich abgearbeitet wurde. Per Default wird eine automatische Synchronisation ausgeführt - eine manuelle Synchronisation ist demnach nur in Ausnahmefällen erforderlich.
Im Synchronisation-Panel kann der Benutzer von einem Subsystem eine manuelle Synchronisation nach einem beliebigen Zeitraum auslösen, vorausgesetzt, dass die automatische Synchronisation ausgeschalten ist.