PostgreSQL®-Datenbankwartung - DBAdmin-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;”
Sicherung erstellen
Um Ihre komplette PostgreSQL®-Datenbank zu sichern, gehen Sie wie folgt vor:
Voraussetzung: WinCC OA läuft und PostgreSQL®-Datenbank ist erreichbar.
- Setzen Sie die folgenden Parameter in der entsprechenden Datei:
Windows: <PG Installationspfad>/<PG-version>/postgres.conf
oder Linux: /var/lib/pgsql/data/postgresql.conf
, 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!
- Öffnen Sie auf Windows die Kommandozeile bzw. auf Linux ein Terminalfenster.
- 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.
Note:Das <db_target_backup_directory> muss leer sein. Es empfiehlt sich im Verzeichnis einen "Datums+Zeit"-Ordner einzurichten.CAUTION: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
-
Wie Sie die Datenbank stoppen, hängt davon ab, wie die Datenbank installiert
und gestartet wurde. Unter Windows sollte das Dienste-Panel
(Windows-Startmenü -> Eingabe von "Dienste") verwendet werden, um die
Datenbank zu stoppen.
Auf Linux-Systemen sollte je nach Distribution entweder systemctl oder der Befehl service verwendet werden. Wenn Sie unsicher sind, fragen Sie Ihren Datenbankadministrator.
- Benennen Sie das Datenbankkonfigurationsverzeichnis um oder entfernen Sie es.
Der Speicherort hängt davon ab, wie die Datenbank installiert wurde. Wenn Sie
unsicher sind, wenden Sie sich an Ihren Datenbankadministrator. Darüber hinaus
müssen Archive mit Tablespace-Informationen in die richtigen Verzeichnisse
entpackt werden: Gehen Sie für jeden Eintrag in der tablespace_map-Datei in das
dort genannte Verzeichnis, verschieben oder entfernen Sie alle dort befindlichen
PG_*-Unterverzeichnisse und entpacken Sie das Archiv mit dem entsprechenden
Namen an diesen Ort.
tar -xf <db_target_backup_directory>/base.tar.gz -C <database configuration directory> tar -xf <db_target_backup_directory>/pg_wal.tar.gz -C <database configuration directory>/pg_wal
- Erstellen Sie ein neues leeres pgdata-Verzeichnis.
- Öffnen Sie auf Windows die Kommandozeile bzw. auf Linux ein Terminalfenster.
- Starten Sie den Server mit einer für die Art der Installation geeigneten Methode.
Unter Windows sollte das Dienste-Panel (Windows-Startmenü -> Eingabe von "Dienste") verwendet werden, um den Server zu starten.
Auf Linux-Systemen sollte je nach Distribution entweder systemctl oder der Befehl service verwendet werden. Wenn Sie unsicher sind, fragen Sie Ihren Datenbankadministrator. - Führen Sie in jedem Fall 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.
systemctl
anstelle von pg_ctl
start
.pg_ctl
ist unter Debian nicht im bin-Pfad
enthalten. Sie müssen den vollständigen Pfad
/lib/postgresql/$version$/bin/pg_ctl verwenden.