Nicht das ich wüsste - das Deaktivieren von Extensions ist allerdings eher selten. Genaugenommen sehe ich diese Frage zum ersten Mal.
Was genau möchtest du denn erreichen? "Shared Memory Segment aktualisieren" ist etwas ungenau beschrieben.
Hallo,
wir versuchen gerade testweise eine Migration von Informix nach PostgreSQL 9 und haben folgendes Problem.
Situation:
Eine mittels LOAD genutzte Extension zieht wiederum eine Shared Library (.so) an, welche wiederum ein Shared Memory Segment nutzt.
Das Shared Memory Segment muss regelmäßig aktualisiert werden. Hierzu müssen jedoch alle Verbindungen zuvor unterbrochen werden. Es ist sichergestellt, dass zu diesem Zeitpunkt keine User auf der DB sind.
Unter Informix gibt es die Möglichkeit eines UNLOADs, welches die Extension freigibt und danach die Daten im Shared Memory Segment aktualisiert werden können.
Es sieht so aus, als ob erst der Postgres-Server herunter gefahren werden müsste, um dann die Shared Memory Segmente aktualisieren zu können. Danach Postgres wieder hochfahren. Laut Doku gibt es ja kein 'UNLOAD' mehr "(Presently, unloads are disabled and will never occur, but this may change in the future.) " [35.9 C-Language Functions]
Dieses Vorgehen wirkt nicht sonderlich elegant, da gibt es doch bestimmt einen besseren Weg?!
Viele Grüße,
Andreas Mack
Nicht das ich wüsste - das Deaktivieren von Extensions ist allerdings eher selten. Genaugenommen sehe ich diese Frage zum ersten Mal.
Was genau möchtest du denn erreichen? "Shared Memory Segment aktualisieren" ist etwas ungenau beschrieben.
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
Hallo ads,
Im Shared Memory Segment (SMS) befinden sich zwei Dateien mit Referenzdaten, welche über die Extension via einer Shared Library (.so) attached werden.
Diese Dateien müssen regelmäß aktualisiert/ausgetauscht werden, was nicht geht, so lange sie attached sind.
Der User 'optirun' ist der User der Postgres DB.Code:(Linux)> ipcs ------ Shared Memory Segments -------- key shmid owner perms bytes nattch status 0x434f5245 3211264 optirun 644 66549518 2 0x46524551 3244033 optirun 644 5811267 1
Wünschenswert wäre folgender Algorithmus:
1. DB -> detach Extension (... und somit SMS)
2. Dateien in SMS aktualisieren
3. DB -> attach Extension (LOAD)
Viele Grüße,
Andreas
Da reicht es nicht einfach, wenn du die mittels mmap() im Speicher hast?
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
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen