⚠ This page contains old, outdated, obsolete, … historic or WIP content! No warranties e.g. for correctness!
All 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
PostgreSQL #FAIL — Handarbeit nötig!
PostgreSQL hatte vor kurzem ein Problem, und zwar in der Version 9.1.5, welches zu Datenkorruption führen kann. Ist in der Version 9.1.6 (und 9.2.1) gefixt. Dummerweise muß aber jede Datenbank, die auch nur einmal mit 9.1.5 gestartet wurde, gefixt werden, weil es sonst zu Datenkorruption kommen kann.
Schlimmer: die kaputte Version 9.1.5 wird aktuell mit precise-security in Ubuntu ausgeliefert und war für ca. ein Dutzend Tage in wheezy!
Nach dem Upgrade auf 9.1.6 gestaltet sich das Fixen wie folgt, als Superuser:
- Die
/etc/postgresql/9.1/main/postgresql.conf
editieren: die Konfigurationseinstellungen (ggfs. erst hinzufügen)vacuum_freeze_table_age = 0
undvacuum_cost_delay = 50
setzen - Die Datenbank stoppen:
/etc/init.d/postgresql stop
- Prüfen, ob
ps ax | fgrep postgres
wirklich nix mehr zurückliefert - Die Datenbank starten:
cleanenv - /etc/init.d/postgresql start
- Ggfs. alle Anwendungen, die PostgreSQL (dauerhaft) benutzen, wie apache2 (Evolvis) und tomcat6 (Domisol) neu starten
- Zum Systemuser wechseln —
su - postgres
— und vernünftige Sprache auswählen: Debianexport LC_ALL=C.UTF-8
Ubuntuexport LC_ALL=C
- Alle Indicēs regenerieren:
reindexdb -a
- Staubsaugen:
vacuumdb -F -z -a
(optional noch mit-v
zum mehr (zu viel) sehen) - Den PostgreSQL-User wieder verlassen:
exit
- Die beiden Konfigurationsänderungen von oben wieder rückgängig machen
- Falls gewünscht, die Änderungen aktivieren:
cleanenv - /etc/init.d/postgresql reload
Ich hab’ das mal für alle EvolvisForge- und tarent-activity-Maschinen gemacht, aber eure Desktops und so aktualisiert ihr bitte selber, wenn auch nur die Chance besteht, daß mal ein 9.1.5 oder 9.2.0 installiert war!