Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Client -> Disconnect erzwingen

  1. #1
    CenText ist offline Erfahrener Benutzer
    Registriert seit
    29.07.2007
    Beiträge
    220

    Standard Client -> Disconnect erzwingen

    Hi, es gibt viele Clients, die auf meine Datenbank zugreifen (nur via. Select). Gibt es eine Möglichkeit einen bestimmten Client zwangsweise zu disconnecten, damit er sich neu einloggen muss?

  2. #2
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Nähe Dresden
    Beiträge
    5.337

    Standard

    Zitat Zitat von CenText Beitrag anzeigen
    Hi, es gibt viele Clients, die auf meine Datenbank zugreifen (nur via. Select). Gibt es eine Möglichkeit einen bestimmten Client zwangsweise zu disconnecten, damit er sich neu einloggen muss?
    pg_stat_activity sagt Dir die PID, die Du mit pg_cancel_backend(pid int) töten kannst.

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #3
    CenText ist offline Erfahrener Benutzer
    Registriert seit
    29.07.2007
    Beiträge
    220

    Standard

    Perfekt besten dank!!

  4. #4
    fristo ist offline Super-Moderator
    Registriert seit
    08.12.2005
    Ort
    Raum Frankfurt/Main
    Beiträge
    668

    Standard

    Zitat Zitat von akretschmer Beitrag anzeigen
    pg_stat_activity sagt Dir die PID, die Du mit pg_cancel_backend(pid int) töten kannst.

    Andreas
    mit der Einschränkung, das die Funktion "pg_stat_activity" wohl nur in der UNIX-Version von PostgreSQL ausgeliefert wird. In der Windows-Version von PostgreSQL ist die Funktion nicht vorhanden!




    mfg

    fristo

  5. #5
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Nähe Dresden
    Beiträge
    5.337

    Standard

    Zitat Zitat von fristo Beitrag anzeigen
    mit der Einschränkung, das die Funktion "pg_stat_activity" wohl nur in der UNIX-Version von PostgreSQL ausgeliefert wird. In der Windows-Version von PostgreSQL ist die Funktion nicht vorhanden!



    mfg

    fristo
    Das ist ein VIEW, und ich bin mir recht sicher, das es den auch unter Kleinweich gibt.

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  6. #6
    CenText ist offline Erfahrener Benutzer
    Registriert seit
    29.07.2007
    Beiträge
    220

    Standard

    Ich will hier nur akretschmer bestätigen. Funktioniert auch perfekt unter Windows!

    Ich stell mal hier noch eine kleine frage, sonst muss ich einen weitere Thread erstellen.

    Ich will den Benutzer-Namen von einer IP bestimmen. Kann ich das generell machen (über der Datenbank-Ebene) oder muss ich das Datenbankspezifisch abfragen.
    Zb. Wenn ich vier verschiedene Datenbanken habe, die abfrage 4x durchführen?

  7. #7
    CenText ist offline Erfahrener Benutzer
    Registriert seit
    29.07.2007
    Beiträge
    220

    Standard

    okay hat sich erledigt, der view beinhaltet alle datenbanken. d.h. egal, welche datenbank selektiert (connected) ist, es wird alles ausgegeben.

  8. #8
    andreas.wenk ist offline Neuer Benutzer
    Registriert seit
    04.02.2008
    Ort
    Hamburg
    Beiträge
    5

    Standard Aktive User ausserhalb von psql rausbekommen

    Moin moin,

    der Aufruf "SELECT * FROM pg_stat_activity" eignet sich wunderbar innerhalb von psql oder eine Applikation. Ich stehe aber vor dem Problem, dass ich täglich mit einem kleinen Shell Script einen dump wieder einspielen möchte. Dazu lösche ich die DB und erstelle eine neue um dann den dump einzuspielen.

    Die DB löschen kann ich allerdings nur, wenn kein anderer darauf zugreift. Ergo suche ich nach einer Möglichkeit herauszufinden, ob es noch Zugriffe auf die DB gibt. Eine Möglichkeit wäre die PID per ps aux | grep postgres rauszubekommen.

    Habt Ihr eine andere, bessere Idee? Vielleicht mit Bordmitteln?

    Hinweis: ja richtig, die Datenbank löschen ist nicht die feine Art - es handelt sich hier um eine Demo System wo das allerdings völlig in Ordnung geht.

    Besten Dank und Grüsse

    Andreas

  9. #9
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Nähe Dresden
    Beiträge
    5.337

    Standard

    Zitat Zitat von andreas.wenk Beitrag anzeigen
    Moin moin,

    der Aufruf "SELECT * FROM pg_stat_activity" eignet sich wunderbar innerhalb von psql oder eine Applikation. Ich stehe aber vor dem Problem, dass ich täglich mit einem kleinen Shell Script einen dump wieder einspielen möchte.
    Das geht doch auch aus einem shell-script heraus, wo genau ist Dein Proble?

    Code:
    psql ... -t -c "select count(1) from pg_stat_activity"
    Das kannst Du auch in eine Variable packen etc.

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  10. #10
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.020

    Standard

    Kurz vorher könnte man auch den/die Usernamen für die Demo auf "NOLOGIN" setzen und so für die Dauer des Backup/Restore neue Verbindungen verbieten.

    Näheres vermittelt die Dokumentation:

    ALTER USER
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum