PostgreSQL®-Datenbankwartung - WinCC OA-Managed Database

Schema aktualisieren

WinCC OA PostgreSQL® Schema-Upgrade-Skripte werden im WinCC OAInstallationsverzeichnis WinCC OA/data/NGA/PostgreSQL/sql/Migrations gespeichert. Jeder Name des Upgrade-Skripts enthält die Version des Zielschemas, auf die das WinCC OA -Datenbankschema aktualisiert werden soll, z.B.
PSQL_upgradeTo<version>.sql
aktualisiert das Schema auf die angegebene Version.
Anmerkung:
Stellen Sie sicher, dass Sie Ihre PostgreSQL®-Schema-Version auf die neueste verfügbare Version aktualisieren. Sie finden die verfügbaren Aktualisierungsskripte unter \data\NGA\PostgreSQL\sql\Migrations. Aktualisieren Sie das Schema in der richtigen Reihenfolge, d.h. von der niedrigsten zur höchsten (neuesten) Version.
Um das Upgrade-Skript auszuführen, rufen Sie einfach psql auf:
psql -f <upgrade_script.sql> [-U user] [-h database_host] [-p database_port] <database_name>

Um zum Beispiel das Schema auf die angegebene Version zu aktualisieren, wenn der Datenbankserver auf localhost mit dem Standardport (5432), mit dem Benutzer (etm) und mit dem Datenbanknamen (winccoa) installiert ist, führen Sie einfach folgenden Befehl aus:

psql -f PSQL_upgradeTo<version>.sql -U etm winccoa

Sie werden dann nach dem Passwort des Benutzers `etm` gefragt. Weitere Informationen über die Herstellung einer Verbindung zur PostgreSQL®-Datenbank finden Sie unter (https://www.postgresql.org/docs/current/app-psql.html).

Der Benutzer "etm" muss über Replikationsrechte verfügen, die standardmäßig nicht vergeben werden. Dies geschieht z.B. durch Ausführen des Befehls "ALTER ROLE etm REPLICATION;" in der Datenbank mit dem Benutzerkonto admin:
psql -U admin_user -h C:/Users/<username>/AppData/Local/.winccoa -p 15432 -c “ALTER ROLE etm REPLICATION;”
Um eine lokale Unix-Socket-Verbindung zu verwenden, verwenden Sie folgenden Befehl für Windows:
pg_basebackup -D <db_target_backup_directory> -U admin_user -h C:/Users/<username>/AppData/Local/.winccoa -p 15432 -Ft -z -c spread -R -P
und den folgenden Befehl für Linux:
pg_basebackup -D <db_target_backup_directory> -U admin_user -h $HOME/.winccoa -p 15432 -Ft -z -c spread -R -P

Sicherung erstellen

Um Ihre komplette PostgreSQL®-Datenbank zu sichern, gehen Sie wie folgt vor:

Anmerkung:
Wenn Sie die PostgreSQL®-Befehle verwenden müssen, rufen Sie die Befehle aus dem WinCC OA-Produktverzeichnis /bin/pgsql/bin auf.

Precondition: WinCC OA läuft und PostgreSQL®-Datenbank ist erreichbar.

  • In einer "WinCC OA-managed PostgreSQL-Datenbank-Backend-Konfiguration werden die folgenden Parameter gesetzt, um sicherzustellen, dass die Größe der Logdatei im Dauerbetrieb begrenzt / konstant gehalten wird:
    logging_collector = on
    log_truncate_on_rotation = on
    log_rotation_age = 1d
    log_filename = '%A.log' # log file name pattern: creates a logfile with weekday name - will be overwritten after 7 days!

    Für das DB Admin managed PostgreSQL® -Datenbank-Backend empfehlen wir die gleiche Konfiguration. Dies muss vom Datenbankadministrator in der entsprechenden Datei eingestellt werden:

    <Project path>/db/wincc_oa/localdb/postgresql/<PostgreSQL Version>/pgdata/postgresql.conf

  • Öffnen Sie auf Windows die Kommandozeile bzw. auf Linux ein Terminalfenster.
  • Wechseln Sie in das folgende WinCC OA-Produktverzeichnis /bin/pgsql/bin. Wenn eine Umgebungsvariable unter Windows auf dieses Verzeichnis gesetzt ist, ist das nicht erforderlich.
  • Setzen Sie die nachfolgenden psql-Befehle ab.
    pg_basebackup -D <db_target_backup_directory> [-U admin_user] [-h database_host] [-p database_port] -Ft -z -c spread -R -P
    Sie werden aufgefordert sich zu authenfizieren (user = "etm" + ihr definiertes Passwort bei Standardprojekt-Erstellung bzw. das Default-Passwort bei "Legacy Projekt"). Bei erfolgreich ausgeführtem Befehl wird folgendes ausgegeben:
    <Größe/Größe> kB (100 %), 1/1 Tablespace
    Sie können auch die Unix-Socket-Verbindung verwenden, um eine Sicherung durchzuführen:
    pg_basebackup -D <db_target_backup_directory> -U admin_user -h C:/Users/<username>/AppData/Local/.winccoa -p 15432 -Ft -z -c spread -R -P

    Unter Linux ist der Pfad: $HOME/.winccoa.

    Anmerkung:
    Das <db_target_backup_directory> muss leer sein. Es empfiehlt sich im Verzeichnis ein "Datums+Zeit"-Ordner einzurichten.
    VORSICHT:
    Die Backup-Dateien sind nicht verschlüsselt. Um unbefugten Zugriff zu verhindern, stellen Sie sicher, dass das Zielverzeichnis (db_target_backup_directory), insbesondere ein Remote-Verzeichnis, sicher ist. Verwenden Sie BitLocker (Windows) oder andere Verschlüsselungsprogramme, um die Backup-Dateien zu verschlüsseln.

Sicherung wiederherstellen

  • Verwenden Sie das database engineering panel, um die Datenbank zu stoppen.
  • Benennen Sie das Datenbankkonfigurationsverzeichnis um oder entfernen Sie es: <wincc oa project directory>/db/wincc_oa/localdb/postgresql/<PostgreSQL Version>/pgdata und erstellen Sie ein neues leeres pgdata-Verzeichnis.
  • Öffnen Sie auf Windows die Kommandozeile bzw. auf Linux ein Terminalfenster.
  • Wechseln Sie in das folgende WinCC OA-Produktverzeichnis <winccoa product directory>/<version>/bin/pgsql/bin.
    Anmerkung:
    Wenn eine Umgebungsvariable unter Windows auf dieses Verzeichnis gesetzt ist, ist das nicht erforderlich. Beachten Sie zudem, dass das Zielverzeichnis "database_directory" leer sein muss. Sie müssen zuerst Ihre alte, beschädigte Datenbank verschieben oder löschen.
  • Öffnen Sie die Eingabeaufforderung unter Windows oder Ihr bevorzugtes Terminal unter Linux und führen Sie aus:
    tar -xf <db_target_backup_directory>/base.tar.gz -C <wincc oa project directory>/db/wincc_oa/localdb/postgresql/<PostgreSQL Version>/pgdata tar -xf <db_target_backup_directory>/pg_wal.tar.gz -C <wincc oa project directory>/db/wincc_oa/localdb/postgresql/<PostgreSQL Version>/pgdata /pg_wal 
  • Verwenden Sie database engineering panel, um den Server zu starten.
  • Führen Sie den folgenden Befehl aus, um die Datenbank vom Standby-Modus in den Lese-/Schreibmodus zu versetzen:
    pg_ctl promote -D <database_directory>

Wenn eine Datenbank-Rücksicherung notwendig geworden ist und der NextGen Archiver die Daten aus dem Ausfall gepuffert hat, werden die Puffer automatisch in die Datenbank nachgeschrieben, nachdem eine neue DB-Verbindung hergestellt und die Puffer aufgelöst wurden.

Anmerkung:
Das Konzept der Datenbanksicherung sollte so ausgelegt sein, dass WinCC OA alle Daten für den Zeitraum zwischenspeichern kann, in dem wieder ein Wiederherstellungspunkt eingerichtet werden kann. Dies bedeutet, dass der verfügbare Platzbedarf für den Pufferzeitraum größer ist als das Sicherungsintervall.

Sie finden alle erforderlichen Befehle in der Readme-Datei <winccoa product directory>/<version>data/NGA/PostgreSQL/sql>/readme.md