ich bin gerade dabei einen eigenen OSM-Server aufzusetzen. Dabei versuche ich, mich an das “How to minutely hstore” Tutorial zu halten.Statt Debian 5.03 (Lenny) benutze ich Debian 6.0.2.1 (Squeeze) und statt PostgreSQL 8.3 verwende ich PostgreSQL 8.4.
Beim Schritt “Als nächstes aktivieren wir die Erweiterungen für die angelegte Datenbank” erhalte ich nach Eingabe von
psql: konnte nicht mit dem Server verbinden: Datei oder Verzeichnis nicht gefunden
Läuft der Server lokal und akzeptiert er Verbindungen
auf dem Unix-Domain-Socket »/var/run/postgresql/.s.PGSQL.5432«?
Hat jemand eine Idee was ich falsch mache? Muss man bei Squeeze generell noch irgendwas beachten im Vgl. zu Lenny?
Der Hinweis von viw ist unpassend; eine Password-Abfrage koennte erst nach erfolgreichem Verbindungsaufbau zum Server stattfinden, aber hier scheitert es bereits am Verbindungsaufbau.
Pruefe (netstat -lnt), ob ueberhaupt irgendwas auf dem Port 5432 lauscht - vermutlich nein. Hast Du die PostgreSQL eventuell mit Port 5433 installiert - sowas passiert leicht, wenn man z.B. eine 8.3 und 8.4 parallel haelt. Dann wuerdest Du beim Netstat einen Socket auf 5433 sehen. Gewissheit sollte da
bringen. Wenn auch dort korrekt 5432 steht, dann: laeuft Dein PostgreSQL ueberhaupt (ps fax|grep postgres)? Wenn nicht, /etc/init.d/postgres start (manchmal auch /etc/init.d/postgres-8.4 start). Wenn es dabei immer noch nicht startet, mal ins Logfile schauen.
Wenn das alles dann klappt, dann kommt die Password-Sache, aber da steht sicher irgendwo erklaert, was man mit der pg_hba.conf machen muss, um kein Password zu brauchen?
Habe ebenfalls anhand des How to minutely hstore Tutorials ein Debian Squeeze-System aufgesetzt, ohne mich an spezielle Postgresql-Anpassungen erinnern zu können. Lediglich falls Du einen eigenen Kartenserver aufsetzen möchtest, wie im zweiten Teil des Tutorials HowTo Mapnik & Tirex beschrieben sind einige kleinere Anpassungen nötig.
Ansonsten sind ja Frederiks Tipps ein sehr guter Anfang zur Fehlerdiagnose…
Guten Morgen!
Also erstmal danke für die kompetente Hilfe.
Es lag wahrscheinlich an einem Konfigurationsfehler in der pg_hba.conf. Konnte das aber noch nicht verifizieren, da jetzt ein anderes Problem aufgetaucht ist. Und zwar wollte ich nach der Konfiguration den postgresql-server neu starten und hab jetzt diese Fehlermeldung bekommen,
osm@osm:~$ sudo /etc/init.d/postgresql restart
Restarting PostgreSQL 8.4 database server: mainThe PostgreSQL server failed to start. Please check the log output: 2011-08-13
10:23:04 CEST FATAL: konnte Shared-Memory-Segment nicht erzeugen: Das Argument ist ung?ltig 2011-08-13 10:23:04 CEST
DETAIL: Fehlgeschlagener Systemaufruf war shmget(key=5432001, gr?sse=552992768, 03600). 2011-08-13 10:23:04 CEST TIPP:
Dieser Fehler bedeutet gew?hnlich, dass das von PostgreSQL angeforderte Shared-Memory-Segment den Kernelparameter SHMMAX
?berschreitet. Sie k?nnen entweder die ben?tigte Shared-Memory-Gr?sse reduzieren oder SHMMAX im Kernel gr?sser konfigurieren.
Um die ben?tigte Shared-Memory-Gr?sse zu reduzieren (aktuell 552992768 Bytes), reduzieren Sie den PostgreSQL-Parameter
>>shared_buffers<< (aktuell 65536) und/oder >>max_connections<< (aktuell 103). Wenn die angeforderte Gr?sse schon klein ist, ist es
m?glich, dass sie kleiner ist als der Kernelparameter SHMMIN. Dann m?ssen Sie die ben?tigte Shared-Memory-Gr?sse erh?hen oder
SHMMIN ?ndern. Die PostgreSQL-Dokumentation enth?lt weitere Informationen ?ber die Konfiguration von Shared Memory. ... failed!
failed!
Wie im Tutorial empfohlen habe ich shared_buffers=16GB und checkpoint_segments auf 16 gesetzt. Habe dann die shared_buffers auf 32MB runter und dann wieder auf 512MB rauf, aber die Fehlermeldung blieb immer die gleiche. Muss man da wirklich was bei den Kernelparametern ändern?
Die Fehlermeldung bedeutet, dass Du mehr als shared_buffer Speicher in Deiner postgresql.conf zuweist, als Debian in der Standardkonfiguration zulässt.
Füge in Deiner /etc/sysctl.conf die Zeile
kernel.shmmax=4096000000
ein und starte Dein System neu, dann sollte das klappen…
auf diesen wert zu setzen ist quatsch, das würden ca 4GB sein. dazu sollte man ersteinmal wissen wieviel ram die maschine auch hat
zum mal 4GB nicht 4.096.000.000 bytes sind sondern 4.294.967.296 bytes.
ich würde den kernel memory auch niemals so groß setzen, wie man arbeitsspeicher zur verfügung hat, dass kann unter umständen zu einer insabilität der system führen
mit dem haleb wert habe ich sehr gute erfahrung gemacht, habe ja auch erst vor paar wochen diese ganze server geschichte aufgesetzt.
die besten ergebnisse mit dem Wert shared_buffers habe ich bei 512MB alles was drüber war hat die datenbank wieder etwas gebremst.
am besten gesht du einfach nach diesem HowTo vor, da ist das meißte beschrieben was du für die PgSQL config brauchst. http://wiki.openstreetmap.org/wiki/Mapnik/PostGIS
ich würde dir auch noch empfehlen sich etwas in die parameter der pg_hba.conf und postgresql.conf einzulesen.
Ok hab jetzt den kernel.shmmax=2147483648 gesetzt und neu gebootet. Der Rechner hat 4GB RAM.
Beim Start des postgresql-servers kommt jetzt diese Fehlermeldung:
osm@osm:~$ sudo /etc/init.d/postgresql start
Starting PostgreSQL 8.4 database server: mainThe PostgreSQL server failed to start. Please check the log output: 2011-08-13 13:50:44
CEST LOG: Authentifizierungsoption nicht im Format name=wert: sameuser 2011-08-13 13:50:44 CEST ZUSAMMENHANG: Zeile 83 in
Konfigurationsdatei >>/etc/postgresql/8.4/main/pg_hba.conf<< 2011-08-13 13:50:44 CEST FATAL: konnte pg_hba.conf nicht laden ...
failed!
Ich hab die pg_hba.conf genau so verändert wie im Tutorial.
local gis gis trust
local all all ident sameuser
Der Fehler liegt anscheinend in der unteren Zeile (83), habt ihr eine Ahnung was daran falsch ist?
Patrick, ich bin völlig bei Dir. Die konkreten Werte hängen von der konkreten Rechnerausstattung ab. Aber lasst uns doch erst mal schauen, das quvxqy seinen Server zum Laufen bekommt, bevor wir mit dem Finetuning beginnen. Viw hatte ja auch bereits drauf hingewiesen, dass Postgresql 9 aus Performancegründen mehr Sinn macht, auch hier ließe sich noch optimieren…
Nun zum pg_hba.conf Problem. Als schnellen Workaround könntest Du die Zeile ändern in
local all all trust
Wie beim letzten Tipp gilt: vielleicht hat einer der Postgresql-Spezialisten eine bessere Idee, ein Anfang wäre die beschriebene Anpassung.
Habe jetzt osm2pgsql installiert. Beim Hinzufügen der Beschreibung für die Projektion “900913 Spherical Mercator” in die “spatial_ref_sys” Tabelle bekomme ich folgende Meldung:
Kann es sein, dass ich eine veraltete osm2pgsql-Version installiert habe? Ganz am Anfang des Tutorials heißt es, dass man mit “aktuellen osm2pgsql-Versionen” auch PostgreSQL 8.4 verwenden kann, das ich ja benutze. Hab alle Kommandos aus dem Tutorial verwendet.
osm@osm:~$ osm2pgsql --create --database gis --username gis --prefix berlin --slim --cache 2048 --hstore berlin.osm.bz2
osm2pgsql SVN version 0.80.0 (32bit id space)
Using projection SRS 900913 (Spherical Mercator)
Setting up table: berlin_point
HINWEIS: Tabelle »berlin_point« existiert nicht, wird übersprungen
HINWEIS: Tabelle »berlin_point_tmp« existiert nicht, wird übersprungen
Setting up table: berlin_line
HINWEIS: Tabelle »berlin_line« existiert nicht, wird übersprungen
HINWEIS: Tabelle »berlin_line_tmp« existiert nicht, wird übersprungen
Setting up table: berlin_polygon
HINWEIS: Tabelle »berlin_polygon« existiert nicht, wird übersprungen
HINWEIS: Tabelle »berlin_polygon_tmp« existiert nicht, wird übersprungen
Setting up table: berlin_roads
HINWEIS: Tabelle »berlin_roads« existiert nicht, wird übersprungen
HINWEIS: Tabelle »berlin_roads_tmp« existiert nicht, wird übersprungen
Mid: pgsql, scale=100, cache=2048MB, maxblocks=262145*8192
Setting up table: berlin_nodes
The target database has the intarray contrib module loaded.
While required for earlier versions of osm2pgsql, intarray
is now unnecessary and will interfere with osm2pgsql's array
handling. Please use a database without intarray.
Error occurred, cleaning up
Hallo,
da musst du wahrscheinlich die betreffende Datenbank neu einrichten - aber ohne “_int.sql”. Mir ist das kürzlich auch passiert. Schau mal hier: http://wiki.openstreetmap.org/wiki/Talk:Openptmap/Installation
(such auf der Seite nach _int.sql)