PostgreSQL®-Datenbankwartung

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_upgradeTo1.3.sql
aktualisiert das Schema auf Version 1.3.
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 beispielsweise das Schema auf die Version 1.3 zu aktualisieren, bei der der Datenbankserver auf localhost mit dem Standardport (5432), mit dem Benutzer (etm) und mit dem Datenbanknamen (winccoa) installiert ist, rufen Sie einfach auf:

psql -f PSQL_upgradeTo1.3.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).

Sicherung erstellen

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.

  • Ö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
    Anmerkung: Das <db_target_backup_directory> muss leer sein. Es empfiehlt sich im Verzeichnis ein "Datums+Zeit"-Ordner einzurichten.

Sicherung wiederherstellen

  • Bennen Sie das nachfolgende Datenbank-Dateiverzeichnis um: <wincc oa project directory>db/wincc_oa/localdb/postgresql/16/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.
  • Führen Sie den Befehl aus für eine verwaltete Datenbank - siehe Kapitel : PostgreSQL®-Datenbank - Übersicht
    tar -xf <db_target_backup_directory>/base.tar.gz -C <db_file_target_directory>
    tar -xf <db_target_backup_directory>/pg_wal.tar.gz -C <db_file_target_directory>/pg_wal
  • Führen Sie die folgenden zwei Befehle aus, wenn Sie eine Remote-Datenbank verwenden:
    pg_ctl start -D <db_file_target_directory> 
  • 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

Anmerkung: Wenn Sie die Standard-Systeminstallation von PostgreSQL® verwenden, dann benutzen Sie systemctl anstelle von pg_ctl start.
Anmerkung: pg_ctl ist unter Debian nicht im bin-Pfad enthalten. Sie müssen den vollständigen Pfad /lib/postgresql/$version$/bin/pg_ctl verwenden.