Schlagwort-Archive: Update

PostgreSQL-Update im Docker-Stil

Docker. Eigentlich ja ganz praktisch, wenn man „mal schnell“ ein Softwarepaket trotz überschaubarer Wartbarkeit mit überschaubarem Aufwand ausrollen möchte, ab und an aber auch ein zuverlässiger Quell für Facepalm-Momente. So auch Heute: Nach dem Update einer mit docker-compose zusammengesetzten Anwendung ging nichts mehr. Der Maintainer hatte dort von postgres:10 auf postgres:11 aktualisiert. Kleines Update sollte man meinen, die PostgreSQL-Images für Docker sind jedoch technisch nicht in der Lage Daten älterer Installationen zu migrieren. Folglich zeigte sich im Log vor dem Absturz folgende Meldung:

postgres_1 | FATAL: database files are incompatible with server
postgres_1 | DETAIL: The data directory was initialized by PostgreSQL version 10, which is not compatible with this version 11.6.

Was auf „normalen“ Servern mit pg_upgrade schnell geregelt und bei einigen Distributionen gar automatisiert ist, wird mit Docker ein paar Nummern komplizierter. Der Offizielle Weg: Backup machen, neu aufsetzen, importieren. Eigentlich wollte ich durch Docker Arbeit sparen, nicht mir weitere aufhalsen.

Glück im Unglück: Tianon Gravi hat auf GitHub und Docker Hub ein passendes System bereitgestellt, mit welchem man die Daten schnell zwischen verschiedenen PostgreSQL-Versionen migrieren kann.

Im Folgenden gehe ich davon aus, dass ein Named Volume „postgres-data“ existiert und alle darauf zugreifenden Container gestoppt sind.

Achtung, Fallstrick: Nutzt man docker-compose, so ändern sich die Volume-Namen. Ein Named Volume „postgres-data“ der Applikation „foobar“ heißt in Wahrheit „foobar_postgres-data„. Im Zweifel nochmal mit „docker volume ls“ prüfen.

  1. Fangen wir mit dem üblichen an: Backups. Bei Bind-Mounts kopiert man einfach den Quellordner passend zurecht, bei Named Volumes kann man diese üblicherweise unter /var/lib/docker/volumes/ finden oder mit docker-clone-volume duplizieren. Ich hatte postgres-data hierzu auf postgres-data-src und postgres-data-bck dupliziert.
  2. Weiter geht es mit dem Umwandeln der Datenbank. Hierzu nimmt man das Image mit den passenden Versionsnummern für Quell- und Zielversion.
    docker run --rm -v postgres-data-src:/var/lib/postgresql/10/data -v postgres-data-dst:/var/lib/postgresql/11/data tianon/postgres-upgrade:10-to-11
    Hiermit wird ein neues, mit PostgreSQL 11 kompatibles, Volume erzeugt, welches alle bisherigen Daten enthalten sollte.
  3. Leider gibt es in der aktuellen Version einen bekannten Bug, welche die Zugriffe in pg_hba.conf abweichend von den Dateien der offiziellen Images konfiguriert. Dies führt mit vielen Images zu Zugriffsfehlern. Um die Datei per hand zu editieren startet man entweder einen passenden Container oder greift über das Dateisystem des Hosts auf diese zu. In meinem Fall nutzte ich letztere Methode über die Datei /var/lib/docker/volumes/postgres-data-dst/_data/pg_hba.conf. An das Ende dieser wird folgende Zeile angefügt:
    host all all all md5
  4. Am Ende ändert man entweder den Volume-Eintrag seiner docker-compose.yml oder kopiert das neue Image passend zurück. In meinem Fall klang letzteres sinnvoller. Einen Befehl zum Umbenennen von Volumes ist Docker bis Heute nicht bekannt, daher bleibt hier nur das ursprüngliche Volume mit docker volume rm postgres-data zu löschen und postgres-data-dst – wie zuvor – mit docker-clone-volume oder im Dateisystem zum korrekten Volume-Namen zu klonen.

Warum man das nicht automatisiert erschließt sich mir nicht so ganz. Vermutlich beschränkt sich der Benutzerkreis hauptsächlich auf Entwickler, die ohnehin immer von 0 starten, und Enterprise-Häuser, die gemäß Fire-and-forget Systeme ohne Update bis zur Explosion betreiben.

BitNotice #150 – Siglent SDS1102CNL Firmware Update

BitNotice #150 - Siglent SDS1102CNL Firmware Update

(25 MB) 00:04:40

2019-07-03 17:45 🛈

Bei meinem Siglent SDS1102 sind mir in letzter Zeit Probleme bei der Nutzung einiger Messungen aufgefallen. Oft helfen hier Updates der Firmware, also schauen wir mal, wie man diese bei dem Modell installiert.

Downloads @ siglent.eu

BitNotice #123 – IBM/Lenovo Server-Firmware mit BoMC

BitNotice #123 - IBM/Lenovo Server-Firmware mit BoMC

(21 MB) 00:12:19

2017-06-23 12:00 🛈
Der Bootable Media Creator von Lenovo (ehemals IBM) erstellt Datenträger mit den aktuellsten Firmware-Updates für Serversysteme des Herstellers. Schauen wir mal, wie der BoMC bedient wird und man die Software per IMM installieren kann.

Update-Wahnsinn

Fast einen Monat nach erscheinen von WordPress 2.5 habe auch ich mir mal diese ominöse .zip-Datei gezogen. Wie vermutet keine gute Idee, bei einem solchen Versionssprung rächen sich die kleinen Modifikationen, welche sich über die Jahre angesammelt haben, sehr schnell. Vorallem die Gallery bereitete mir fast 2 Stunden Spaß – zware ist die aktuelle Version kompatibel, da ich allerdings Teile des Ausgabesystems angepasst hatte musste ich Diese entsprechend auf die neue übertragen. Auch andere Plugins streiken noch, auch, wenn das eher „hinter den Kullissen“ Probleme bereitet: Anklickbare Tags fand ich eigentlich recht praktisch und das Problem mit verschlüsselten Cookies (suhosin) beim Speichern haben die WordPress-Entwickler weiterhin auf ihrer ignore-list. (OK, laut einigen Quellen solls gefixt sein, aber ich seh hier die altbekannte Meldung bei Zwischenspeicherungen…)

Update

Manchmal hilft auch einfach RTFM… Plugin abgeschaltet und schon funktioniert auch das Zwischen speichern… An dieser stelle nochmal Danke an den Autor des Plugins, hat ’ne lange Zeit gute Dienste geleistet.

WordPress – jetzt neu mit Spyware gratis

Dieses mal direkt ein Major-Update. Nur mit der Datensicherheit bin ich nicht so ganz einverstanden. Der neue Updater nimmt sich die Freiheit Pluginlisten und Blog-URL an die WordPress-Server zu übermitteln. Dank State of the Nation sollte meine Installation diese Anrufe nach Hause erst mal unterlassen.

Aber immerhin: Die meisten Plugins leben noch, meine Gallery lädt, und Tags sind inzwischen auch im Theme verwustet.