PostgreSQL®-Datenbankwartung - WinCC OA-Managed Database
Schema aktualisieren
PSQL_upgradeTo<version>.sql
aktualisiert das Schema auf
die angegebene Version.
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).
"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;”
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
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:
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.
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:pg_basebackup -D <db_target_backup_directory> [-U admin_user] [-h database_host] [-p database_port] -Ft -z -c spread -R -P
Sie können auch die Unix-Socket-Verbindung verwenden, um eine Sicherung durchzuführen:<Größe/Größe> kB (100 %), 1/1 Tablespace
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.
Sie finden alle erforderlichen Befehle in der Readme-Datei <winccoa product directory>/<version>data/NGA/PostgreSQL/sql>/readme.md