Erstmalige Installation

Inhalt

  1. Konfiguration der Oracle Datenbank
  2. Konfiguration in WinCC OA
  3. Auslagerung der Archive über eine externe DLL Schnittstelle

Im Falle einer erstmaligen Installation der Relationen, sind zwei individuelle Konfigurationen erforderlich - in der Oracle Datenbank und in WinCC OA.

Konfiguration der Oracle Datenbank

Bevor die Verbindung zu WinCC OA hergestellt werden kann, muss die Oracle Datenbank richtig konfiguriert werden.

  1. Erstellen Sie im Verzeichnis <WinCC_OA_Installationspfad>\data\RDBSetup\ora eine leere Datei mit dem Namen "RDB_config.sql".
  2. Kopieren Sie die Daten aus der Datei "RDB_config_template.sql" im gleichen Verzeichnis in die leere Datei "RDB_config.sql".
  3. Ersetzen Sie in der Datei "RDB_config.sql" alle Defaultwerte der Setup-Parameter durch reelle Werte, falls erforderlich. Siehe Parameter für das Oracle DB-Setup.
  4. Wenn der Setup-Parameter "use_java" auf 'no' gesetzt wurde, findet die Auslagerung der Archive über die externe DLL Schnittstelle statt. Es müssen die im Abschnitt Auslagerung der Archive über eine externe DLL Schnittstelle beschriebenen Einstellungen vorgenommen werden.
  5. Wenn der Setup-Parameter "use_java" auf 'yes' gesetzt wurde, sind keine zusätzlichen Einstellungen erforderlich, da Java in der Oracle Standard Edition und Oracle Enterprise Edition bereits eingebettet ist.
  6. Setzen Sie die Anzahl der Datenbankdateien (Parameter "db_files" in der Oracle-Datenbank) z.B. auf den Wert 10000 (db_files = 10000). Damit wird sichergestellt, dass die maximale Anzahl der Datenbank-Dateien nicht überschritten wird. Der maximale Wert für den Parameter db_files ist 65000. Beachten Sie zudem, dass der Wert einmal festgelegt und nicht laufend geändert werden sollte.
  7. Rufen Sie über die Kommandozeile die entsprechende Batch-Datei (<WinCC_OA_Installationspfad>\data\RDBSetup\ora) auf und starten Sie somit das Setup. win_install.bat -> Batch-Datei für Windows bzw. unix_install.sh -> Batch-Datei für Linux

    Durch Aufruf der Batch-Datei werden alle notwendigen Einstellungen für die Konfiguration der Verbindung zur Oracle Datenbank eingetragen. Aus Sicherheitsgründen werden die Passwörter nicht in die Datei "RDB_config.sql" eingetragen, sondern als einzige Parameter interaktiv abgefragt, wobei die Eingabe versteckt erfolgt.

VORSICHT:

Sollte die Datei RDB_config.sql einen Zusatz im Namen haben, muss der Zusatz beim Aufruf des Setups der Installationsdatei mit eingegeben werden. Ansonsten werden beide Dateien bei diesem Aufruf ausgeführt: Beispiel Windows: Abweichender Name: RDB_config_Test.sql win_install.bat _Test Beachten Sie dieses auch bei der Konfiguration eines DRS-Systems. Dies gilt genauso für die RDB_config.sql-Datei under Linux, z.B. unix_install.sh_Test Beachten Sie zudem, dass der Dateiname erweitert aber nicht umbenannt werden darf!

Password of SYS-User (empty for OS-Authentication) : Passwort für den Benutzer mit System-Datenbank-Administrationsrechten (nur für das Setup erforderlich - wird aus Sicherheitsgründen nicht gespeichert). Das Passwort kann auch im Falle von OS-Authentication oder wenn keine neuen User erzeugt werden leer bleiben.
Password of Schema User:

Passwort des RDB-Schema-Benutzers – wenn der Benutzer neu angelegt wird (Regelfall), dann ist das Passwort frei wählbar (bis zu 15 Zeichen). Achten Sie bei der Passworteingabe, dass es für Sie gut zu merken ist - nachträglich gibt es keine Möglichkeit es zu entschlüsseln.

Das hier angegebene Passwort wird nicht automatisch während des Setups in WinCC OA übernommen, sondern muss bei den spezifischen Parametrierpanels nochmals angegeben werden (siehe auch Parametrierung des RDB Archiv-Managers).

Password of Application User:

Passwort des RDB-Anwendungsbenutzers.

Hier gilt das gleiche wie beim Schema-Benutzer.

Um das Ablaufdatum des Passwortes zu ändern, muss das Default-Profil geändert werden. Ändern Sie die Gültigkeitsdauer des Passwortes wie folgt:

alter profile default limit password_life_time unlimited;

Zusätzlich ruft die Batch-Datei während des Installationsvorganges, in Abhängigkeit von den gegebenen Antworten, diverse andere SQL-Skriptdateien auf. Treten dabei Fehler auf, können die genauen Ursachen in der Datenbank-Tabelle ARC_LOG nachgelesen werden. Parallel dazu werden die einzelnen Installationsschritte in der Datei "RDB_setup.log" protokolliert. Die Log-Dateien befinden sich nach der Installation im RDB-Setup Verzeichnis.

Treffen Sie die folgenden Vorsichtsmaßnahmen in Oracle SQL*Net und der Windows Systemstufe, um das "Einfrieren" des RDB Archiv-Managers zu vermeiden, wenn die Netzwerkverbindung während eines Aufrufs zum Oracle-Server verloren geht. Beachten Sie, dass dies keine WinCC OA Einschränkung ist, sondern ein Implementierungspunkt der Oracle Network Software.

  1. Setzen Sie den folgenden Windows Registry-Eintrag (oder erstellen Sie ihn, falls er noch nicht existiert):
    KeepAliveTime
    Key:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    Value type: REG_DWORD  //Zeit in Millisekunden
    Range: 1 - 0xFFFFFFFF
    Default value: 7.200.000 //zwei Stunden

    Dieser Wert soll auf 180000 (dezimal) gesetzt werden - dies entspricht 3 Minuten.

  2. Führen Sie einen Reboot des Rechners durch.

  3. Nehmen Sie folgenden Einstellungen in Oracle SQL*Net in der Datei tnsnames.ora vor:

    Fügen Sie die Zeile "(ENABLE=BROKEN)", wie unten dargestellt, hinzu:
    TESTDB.etm-ag.com = (DESCRIPTION = (ENABLE=BROKEN)
    (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = myhost)(PORT = 1521))
    ) (CONNECT_DATA = (SERVICE_NAME = TESTDB) ) )
  4. Unter Linux dauert das Umschalten zwischen zwei Oracle Datenbanken verhältnismäßig lange. Um diesen Vorgang zu beschleunigen, muss innerhalb der sysctl.conf der Wert für den Eintrag net.ipv4.tcp_retries2 auf den Wert 2 gesetzt werden. Die Config-Datei findet sich unter /etc/sysctl.conf. Anschließend muss mittels des Befehls "sysctl -p" die Änderung übernommen werden

Folgende zusätzliche Einstellungen von SQLNET-Parametern in der SQLNet.ora-Datei sind für Client und Server zu berücksichtigen für Netzwerke mit instabilen Verbindungen. Im Normalfall sind diese Parameter nicht zu verwenden.

Client:

  • SQLNET.RECV_TIMEOUT=150 : Der Oracle Client wartet nach Aufbau der Verbindung max. 150 Sekunden auf Daten. Kommen diese im definierten Zeitraum nicht, wird die Verbindung wieder abgebrochen.
  • SQLNET.SEND_TIMEOUT=150 : Der Oracle Client versucht nur in diesem Zeitraum Daten zu senden. Gelingt ihm das nicht, wird die Verbindung abgebrochen.
  • SQLNET.OUTBOUND_CONNECT_TIMEOUT=10 : Kann in der definierten Zeitspanne keine Oracle Net Verbindung hergestellt werden, wird der Versuch die Verbindung herzustellen beendet. Der Client empfängt folgenden Fehler: ORA-12170: TNS: Connect timeout occurred
  • TCP.CONNECT_TIMEOUT=20 (kein Default) : Wird eine innerhalb der definierten Zeitspanne keine TCP Verbindung zum Database Server hergestellt, wird der Versuch die Verbindung herzustellen beendet. Der Client erhält folgenden Fehler: ORA-12170: TNS:Connect timeout occurred. Ohne richtiges Einstellen dieses Parameters kann eine Client Verbindungsanfrage den Database Server für die default-Länge blockieren.

Server:

  • SQLNET.INBOUND_CONNECT_TIMEOUT=60 (Default) : Wenn es dem Client nicht möglich ist, in dieser Zeitspanne eine Verbindung sowie eine gelungene Authentifizierung herzustellen, beendet der Database Server die Verbindung. Die IP Adresse des Clients wird geloggt und in die SQLNET.log-Datei wird folgender Fehler geschrieben: ORA-12170: TNS:Connect timeout occurred error. Der Client empfängt entweder den Fehler ORA-12547: TNS:lost contact oder ORA-12637: Packet receive failed

Konfiguration in WinCC OA

Nachdem die Oracle Datenbank auf eine Verbindung mit WinCC OA vorbereitet worden ist, müssen jetzt auch noch die notwendigen Einstellungen in WinCC OA selbst getätigt werden. Die Einstellungen betreffen auf der einen Seite die im Projekt verwendeten Manager - statt der Value Archiv-Manager wird ein RDB Archiv-Manager verwendet, was auch seinen Niederschlag in den Einträgen der Config-Datei hat.

Einstellungen in der WinCC OA Console
  1. Legen Sie ein WinCC OA Projekt an.
  2. Öffnen Sie die WinCC OA Console mit dem Projekt, ohne das Projekt zu starten.
  3. Löschen Sie alle per Default vorhandenen Archiv-Manager aus der Managerliste.
  4. Fügen Sie einen RDB Archiv-Manager mit der Option "-num 99" und dem Startmodus "manuell" zwischen dem Datenbank-Manager und dem Event-Manager ein. Die einzige zulässige Managernummer für die -num Startoption des RDB Archiv-Managers ist zurzeit 99.
    Abbildung 1. WinCC OA Console mit RDB Archiv-Manager
Einstellungen in der Config-Datei
  1. In der Sektion [general] setzen Sie die folgenden Einträge: Aktivieren Sie die Archivierung von Werten unter Verwendung der relationalen Datenbank, indem Sie den Config-Eintrag useRDBArchive = 1 setzen und geben Sie an welches Archiv standardmäßig verwendet werden soll, indem Sie den Config-Eintrag defaultArchive = 97 setzen.
  2. Setzen Sie auch den Config-Eintrag useValueArchive in der Sektion [general] auf 1 (siehe auch Archive anlegen und parametrieren).
Anmerkung:

Intern verwendet der RDB-Manager defaultmäßig das Archiv mit der Nummer 97. In der Konsole wird der RDB-Manager jedoch mit der Nummer -num 99 gestartet. Verwenden Sie den Config-Eintrag defaultArchive=99, wenn alle leeren _archive-Konfigs in der Oracle-Datenbank gespeichert werden sollen. Leere _archive-Konfigs sind normalerweise nur in einem leeren Projekt vorhanden. Wenn der Config-Eintrag defaultArchive=99 in der Config-Datei für das Feature HDB-RDB Parallel verwendet wird, darf das ValueArchive_0 nicht verwendet werden. Wenn der Config-Eintrag "defaultArchive=99" verwendet wird, verwenden Sie das ValueArchive_1 oder höher für die Archivierung.

  • Folgende Config-Einträge sind in der Sektion [ValueArchiveRDB] einzutragen:
    Config-Eintrag Datentyp Beschreibung
    DbUser = <name> String

    Name des neu erzeugten WinCC OA Application bzw. Schema- Benutzers, wie bei der vorausgegangenen Konfiguration der Oracle Datenbank angegeben, z.B. "operator".

    Der Application User kann angelegt werden, wenn der Benutzer lediglich das Recht haben soll auf die Oracle Tabellen zugreifen zu können.

    Db = <name> String Name der Datenbank, die mittels Kommando "tnsping“ vom Client-Rechner aus gefunden werden kann - wie bei der vorausgegangenen Konfiguration unter Connect Identifier angegeben, z.B. "ORAWERK1".
    DbPass = <passwort> String Legt das Passwort fest, welches für den Zugriff auf die Datenbank verwendet werden soll.
  • Optional kann noch angegeben werden, ob die Abfragen von Werten aus der Oracle Datenbank mit Hilfe des RDB Archiv-Managers gemacht werden sollen oder direkt mit Hilfe von speziellen Control-Erweiterungen.

    Die Abfrage unter Verwendung des RDB Archiv-Managers erlaubt die uneingeschränkte Verwendung der bekannten CTRL-Befehle - z.B.: dpGetPeriod().

    Werden die speziellen CTRL-Erweiterungen verwendet, so sind diese für jene Manager zu laden, in denen die RDB spezifischen CTRL-Befehle verfügbar sein sollen.

    Optionale Parameter in den Sektionen [ui] oder [ctrl] Datentyp Beschreibung
    queryRDBdirect = 1 Bool Gibt an, dass eine direkte Abfrage erfolgen soll.

    CtrlDLL = "CtrlRDBArchive"

    CtrlDLL = "CtrlRDBCompr"

    String Lädt die beiden erforderlichen CTRL-Erweiterungen.
Starten des Projektes und Parametrierung in WinCC OA
  1. Starten Sie das WinCC OA Projekt mit dem RDB Archiv-Manager. Geben Sie das Datenbank-Passwort im Parametrierpanel des RDB Archiv-Managers an.
    Der RDB Archiv-Manager prüft beim Start, ob das Tabellenschema in der Oracle Datenbank versionsmäßig korrekt ist (Hinweis: Die Versionsnummer des Oracle-Schemas hängt nicht mit der Versionsnummer von WinCC OA zusammen). Wenn die folgende Fehlermeldung angezeigt wird, muss die Oracle-Schema-Version aktualisiert werden.
    WCCOArdb (97),
    2008.02.13 09:14:53.503, SYS, FATAL, 0, , DB Schema
    is<Versionsnummer>RDB needs to have the
    Version<neueVersionsnummer>, Starting with the wrong
    version! Upgrade to the required version! WCCOArdb (97), 2008.02.13
    09:14:55.516, SYS, INFO, 39, Connection lost, Closing all connections to
    (SYS: 1 Data -num 0 CONN: 1)
    Abhängig von der aktuellen Versionsnummer des Oracle-Schemas, müssen eines oder mehrere Upgrade-Scripts (\data\RDBSetup\ora) ausgeführt werden. Beachten Sie, dass die Version, auf die das Upgrade erfolgen soll, unbedingt als erster Parameter angegeben werden muss.

    Das Upgrade-Skript RDB_upgradeTo8.5.sql (\data\RDBSetup\ora\) beinhaltet alle niedrigeren Upgrade-Skripts. Das bedeutet, dass wenn die aktuelle Version des Oracle-Schemas kleiner als 8.5 ist, muss dieses zuerst ausgeführt werden und erst dann das aktuellste Upgrade.

    Anmerkung:

    Die aktuelle Schema-Version ist 8.22. Beim Upgrade von einer Version < 8.5 muss der Parameter reset_cs in der RDB_config.sql auf "yes" gesetzt sein.

    Verwenden Sie unter Linux unix_upgrade anstatt win_upgrade.

    Beispiel 1

    Wenn die aktuelle Schema-Version kleiner als 8.5 ist, führen Sie unter Windows die folgenden Upgrades aus:

    win_upgrade 8.5

     win_upgrade <aktuellste neueVersionsnummer>
    Anmerkung:

    Ab Version 8.6 muss nur das aktuellste Upgrade ausgeführt werden.

  2. Parametrieren Sie die Archivierung in der relationalen Datenbank mittels der RDB Standardpanels (siehe Parametrierung des RDB Archiv-Managers und Parametrierung der Archivgruppen).
  3. Führen Sie eine Konvertierung von ValueArchiv-Configs auf RDB Archiv-Configs durch. Diese findet automatisch nach dem Start des Panels "RDB Managerauswahl" statt, insofern Datenpunkte mit Value Archiven vorhanden sind. Bestätigen Sie die Anfrage zur Konvertierung mit "Ja" (siehe Parametrierung des RDB Archiv-Managers).
  4. Wenn der Start des RDB Managers erfolgreich war, kann dessen Startmodus über die WinCC OA Console von "manuell" auf "automatisch" umgestellt werden.
Anmerkung:

Einige Datenpunktelemente, für die das Archiv-Config früher aktiviert wurde, aber keine Archivklasse explizit zugewiesen wurde, werden automatisch in der Archivgruppe "EVENT" archiviert. Das betrifft z.B. alle _UI_X.UserName Datenpunkte.

Auslagerung der Archive über eine externe DLL Schnittstelle

Wenn im Setup die Option ”use_java” nicht aktiviert ist, dann wird die Auslagerung der Archive über die externe DLL PVSSOraExt.dll auf Windows bzw. PVSSOraExt.so auf Linux durchgeführt. Für diesen Fall sind einige Einstellungen vorzunehmen, damit die Kommunikation zwischen Oracle und der externen DLL funktioniert.

  1. Die DLL befindet sich im RDB Setup-Verzeichnis unter data/RDBSetup/ora. Von dort ist sie im Zuge des Setups ins Oracle-Bin-Verzeichnis (Windows) oder ins Lib-Verzeichnis (Linux) des Oracle-Servers manuell zu kopieren (z.B. D:\oracle\product\19.3.0.0\Db_1\BIN). Bei jeder möglichen Oracle Konfiguration (RAC, Dataguard, etc.) muss auf jeder Oracle-Server-Instanz die DLL vorhanden sein .
  2. In den Dateien "tnsnames.ora" und "listener.ora" muss die Konfiguration für extern e Procedure Calls (extproc) vorgenommen werden. Die beiden Dateien befinden sich im Oracle-Homeverzeichnis des Servers unter network/admin .

    z.B. Änderung in "tnsnames.ora":

     EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )
    (CONNECT_DATA =
    (SID = PLSExtProc)
    (PRESENTATION = RO)
    )
    )

    z.B. Änderung in "listener.ora":

    SID_LIST_LISTENER_<YOURLISTENERNAME> =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = <YOUR_ORACLE_HOME>)
    (PROGRAM = extproc)
    (ENVS = "EXTPROC_DLLS = <YOUR_ORACLE_HOME>/PVSSOraExt.so")
    )
    )
    <YOURORACLE_HOME>/PVSSOraExt.so

    Beispiel :

     SID_LIST_LISTENER_19C
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = /u01/app/oracle/product/19.3.0.0/db1)
    (PROGRAM = extproc)
    (ENVS = "EXPROC_DLLS = /u01/app/oracle/product/19.3.0.0/db1/PVSSOraExt.so"
    )
    )
    
    LISTENER_MCC-DBS1 =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = mcc-dbs1vip)(PORT = 1521))
    )
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.41.53)(PORT = 1521))
    )
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.42.53)(PORT = 1521))
    )
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )
    )
    )
  3. Bei der Verwendung der DLL Schnittstelle werden die erforderlichen Benutzerrechte nicht vergeben - anders als bei der Verwendung von Java - da diese nicht notwendig sind. Wenn beim Upgrade von externen Procedure Calls auf Java gewechselt wird, fehlen dem Schema-Benutzer die Dateirechte. Die Rechte müssen von einem Datenbankbenutzer nachträglich gewährt werden. Die erforderlichen Befehle befinden sich in der Datei "RDB_privileges" (<WinCC_OA_Installationsverzeichnis>\data\RDBSetup\ora).