PostgreSQL®- Ausführen des PgClusterMonitors

Installation Python

  • Installieren Sie Python 3.6 oder höher.
  • Selektieren Sie die Option für die Installation von pip.
  • Installieren Sie die Pakete auf beiden Cluster-Seiten indem Sie das folgende Kommando aufrufen: pip install flake8 psycopg2 urllib3 coloredlogs pywin32 servicemanager
  • config.ini liegt im Verzeichnis: wincc_oa_path/data/NGA/PostgreSQL/sql/Cluster Monitor Tool und ist für die Konfiguration des Cluster-Überwachungstools, d.h. für die ausführbare Datei des Tools: main.py.
  • Ersetzen Sie den Inhalt der config.ini durch den entsprechenden Inhalt einer Vorlage für Ihr System:
    • indem Sie den Inhalt des entsprechenden Templates kopieren und den Inhalt der config.ini ersetzen.

    oder

    • indem Sie die entsprechende Datei "Windows: config.windows.template.ini" oder Linux: "config.linux.template.ini" in config.ini umbenennen.
  • Editieren Sie die folgenden Optionen der template.ini-Datei: p1 und p2 (der Host, der Port und der Dbname).
Anmerkung: Verwenden Sie IP-Adressen anstatt Hostnamen in der config.ini-Datei. Ändern Sie die Portnummer auf die installierte Portnummer. Standardmäßig ist die PostgreSQL-Portnummer 5432.
[cluster]
p1 = host=localhost port=5432 dbname=winccoa user=postgres password=postgres
sslmode=prefer sslcompression=1 krbsrvname=postgres target_session_attrs=any
p2 = host=hostName port=5432 dbname=winccoa user=postgres password=postgres
sslmode=prefer sslcompression=1 krbsrvname=postgres target_session_attrs=any
[main] local_node_host_name = p1.
Anmerkung: Diese Option ist auf beiden Seiten des Clusters unterschiedlich: p1 auf der einen und p2 auf der anderen Seite!
pg_data_path = C:/Program Files/PostgreSQL/16/data.
Anmerkung: Wenn Sie die Default-Installation installiert haben, muss der Pfad nicht angepasst werden. Wenn Sie nicht das Default installiert haben, passen Sie die Pfade entsprechend an.
cmd_create_db_directories= Verwenden Sie die Verzeichnisse, die beim Anlegen
des Schemas erstellt wurden: "db", "ebvents", "alerts", "backup".
Ersetzen Sie das folgende Verzeichnis mit dem root-Verzeichnis
Ihres Schemas: "C:\\postgresql_backend"
cmd_create_db_directories = (if not exist "C:\\Share\\postgresql_backend"
mkdir "C:\\postgresql_backend") && (if not exist
"C:\\postgresql_backend\\db" mkdir
"C:\\postgresql_backend\\db") && (if not exist
"C:\\postgresql_backend\\alerts" mkdir
"C:\\postgresql_backend\\alerts") && (if not exist
"C:\\postgresql_backend\\events" mkdir
"C:\\postgresql_backend\\events") && (if not exist
"C:\\postgresql_backend\\backups" mkdir
"C:\\postgresql_backend\\backups")
cmd_remove_db_directories = (del /q "C:\Program Files\PostgreSQL\16\data\*")
&& (for /d %%x in ("C:\\Program Files\\PostgreSQL\\16\\data\\*") do
@rd /s /q "%%x") && (if exist "C:\\Share\\postgresql_backend" rmdir
/s /q "C:\\Share\\postgresql_backend")
  • Ersetzen Sie mit dem richtigen Namen Ihres Netzwerkinterfaces "Ethernet". Um die Interfaces anzuzeigen, verwenden Sie:
    netsh interface ipv4 show interfaces
    cmd_get_network_status_string = netsh interface ipv4 show interfaces "Ethernet" | findstr /e /c:": connected"
Anmerkung: Wenn Sie die Default-Installation installiert haben, muss der Pfad nicht angepasst werden. Andernfalls passen Sie die Pfade der folgenden Optionen entsprechend an.
  • path_to_backup: Passen Sie den Pfad auf das Backup-Verzeichnis des Schemas an.
  • Führen Sie das Skript main.py aus.
Anmerkung: Führen Sie es als Administrator aus, wenn erforderlich. Alternativ kann das Pyton-Skript auch als Dienst ausgeführt werden.
  • Öffnen Sie dazu das Verzeichnis wincc_oa_path/data/NGA/PostgreSQL/sql/Cluster Monitor Tool und führen Sie :
    py windows_service.py --startup=auto install
    als Administrator aus.
VORSICHT: Wenn der Befehl fehlschlägt, stellen Sie sicher, dass das Verzeichnis \win32 der Python-Installation die Dateien pythoncom<3x>.dll' und 'pywintypes<3x>.dll' enthält. Die Location der Dateien kann je nach Python-Installation variieren. Suchen Sie die Dateien in Ihrer Python-Installation und kopieren Sie sie in das \win32-Verzeichnis.
  • Der Befehl oberhalb erstellte den Dienst "PgClusterMonitor". Überprüfen Sie den Status des Dienstes "PgClusterMonitor" im Windows Task Manager/Dienste und starten Sie den Service, wenn erforderlich.
    Anmerkung: Der PgClusterMonitor muss auf beiden Hosts ausgeführt werden.
VORSICHT: Wenn Sie Probleme haben den Dienst zu starten, überprüfen Sie, dass Sie im Dienst als den richtigen Benutzer eingeloggt sind. Den Benutzer überprüfen Sie über das Start Menü. Geben Sie im Start Menü "Services" ein.
  • Der Dienst kann auch als Linux-Dienst ausgeführt werden. Gehen Sie wie folgt vor:
  • Erstellen Sie eine Datei für den Dienst:
    sudo touch /lib/systemd/system/pg-cluster-monitor.service
  • Editieren Sie den Dienst pg-cluster-monitor.service wie folgt:
    [Unit Description=PostgreSQL Cluster Monitor Service After=multi-user.target]
    [Service]
    WorkingDirectory=/pg_cluster_monitor
    User=root
    Type=idle
    ExecStart=/usr/bin/python3 /pg_cluster_monitor/main.py
    Restart=always 
    [Install]
    WantedBy=multi-user.target
    where /pg_cluster_monitor is directory with source code.
  • Führen Sie danach die folgenden Kommandos aus:
    sudo systemctl daemon-reload sudo systemctl enable
    pg-cluster-monitor.service sudo systemctl start
    pg-cluster-monitor.service                 
  • Überprüfen Sie den Status des Dienstes über das Kommando:
     systemctl status pg-cluster-monitor.service