Mehrere Server- verschiedene Tablespace

Hallo Wissende,
ich muss euch heute mal mit einer prinzipiellen Frage belästigen.

Ich habe seit Jahren einen PG-Server mit verschiedenen Sachdatenbanken am Laufen. Jetzt kommen mehr und mehr Geodatenbanken hinzu.
Nun stellt sich mir die Frage, wie ich das ganze System aufbauen sollte.

Grundlagen:
PostgresSQL 9.3.6 64bit Windows, PostGIS 2.1.5

Die wichtigsten Datenbanken:
DB1: 3 Tabellen nur Sachdaten Größe 7 GByte statisch (nur lesen) selten (3-4 mal pro Monat) genutzt
5 Geo-Datenbanken mit PostGIS: je 150-800 Tabellen Größe 2-6 GByte 24/7 lesend/schreibend in Benutzung
20 Geo-Datenbanken mit PostGIS (Archiv): je 150-800 Tabellen Größe 2-6 GByte nur 3-4 mal pro Jahr genutzt

Ich frage mich jetzt inwieweit die selten genutzten Datenbanken den Gesamtserver im normalen Betrieb ausbremsen.
Macht es Sinn verschiedene Tablespaces zu benutzen?
Lohnt Aufwand/Nutzen für einen eventuellen 2. Datenbankserver?

Wer kann mir eine grobe Richtung geben?

Gruß Steffen

Hallo!
Genug Platz vorausgesetzt sollten Datenbanken, die nur so rumliegen ausser bei Dumps keinen Einfluß haben.
Ansonsten lohnt es sich ein wenig zu überlegen wie viel da geschrieben wird. Wir haben für große Mengen, die geschrieben werden müssen, einen Tablespace auf SSD, entsprechend auch für die dazugehörigen Indices ein SSD-Tablespace. Der Rest liegt auf einem RAID 10 mit schnellen Platten. Das geht recht fix, bei kleinen Transaktionen bringen die SSD eigentlich nicht so viel, die sind hauptsächlich für komplexe Geodaten und das schnelle Wegschreiben aus Simulationsrechnungen. Die werden dann, nachdem sie fertig und nicht mehr zeitkritisch sind auf den normalen Tablespace verschoben.
Fürs Lesen sind IMO ausreiched RAM und Kerne sowie eine sinnvolle Indizierung wichtiger. Das merkt man auch deutlich bei Geodaten.
Du kannst natürlich auch mit Replikation auf einen 2. Server arbeiten, das hängt aber davon ab wie deine Lasten verteilt sind und sich Schreib- und Lesevorgänge ins Gehege kommen.

Gruß Uwe

Hallo Uwe,
die Datenbanken haben untereinander keinen “Kontakt”. Replikation ist also nicht notwendig
Es wäre somit prinzipiell kein Problem 2 getrennte Datenbankserver aufzusetzen. Allerdings bedeutet das dann auch 2 physische bzw. 2 virtuelle Server mit den entsprechenden Kosten.
Es bleibt für mich halt die prinzipielle Frage ob Datenbanken, welche nicht benutzt werden, Leistung von anderen Datenbanken “abziehen”.

Ich hatte mir schon überlegt, die 20 unbenutzten Datenbanken jeweils als DUMP abzulegen und nur bei Bedarf einzuspielen (und dann wieder zu löschen). Ist halt die Frage ob dieser Aufwand sich das lohnt?

Unterschiedliche Tablespaces und die “Livedatenbanken” auf SSD ist sicher eine gute Idee - werde aber keine SSD im (virtuellen) Server bekommen.

Gruß Steffen

wie schon gesagt, Datenbanken, die nur rumideln ziehen keine Leistung von anderen ab. Tablespaces machen Sinn, wenn Du heftig genutze Daten auf unterschiedlichen ablegst. Wenn in deinen Default-Tablespace alle Daten passen ist das dann auch okey. Wenn Du unterschiedliche Tablespaces hast, die dann aber auf derselben Spindel liegen, macht das dann unterm Strich eher wenig Sinn.

Viel mehr kann man Dir derzeit aber jetzt nicht helfen, weil hier keiner weiß, ob da irgendwo bei Dir ein Flaschenhals ist und wenn ja, wo.

Hallo,
vielen Dank für die Antwort.

Wenn die “rumliegenden” Datenbanken der Performance nicht schaden, dann lass ich das alles so liegen und spare mir den temporären Neuaufbau der Archivdatenbanken über einen Dump.

Tabelspace werde ich wohl trennen - auch wenn’s vielleicht nix bringt kostet ja nix :slight_smile:

Vielen Dank
Steffen

Je nach deiner Konfiguration ist es auch sinnvoll Logging, Indices und Daten auf getrennten Spindeln zu haben.

Grüßle Uwe

Hallo,
ich muss das Thema noch mal aufgreifen.

Die Trennung der Datenbankserver Archiv vs. Bestand liegt mir weiterhin am Herzen. Auch wegen der Übersichtlichkeit.

Ich kann doch mehrere Datenbankserver (verschiedene Ports) auf einem physischen Server betreiben?
Diese würden dann doch völlig getrennt verwaltet (Übersichtlichkeit) und könnten auch separat gestartet werden!?

Allerdings müsste ich dann vom Standardport 5432 abweichen.

Ist so eine Installation normal? Gibt es etwas besonderes zu beachten? Was wäre ein guter Ausweichport?

Gruß Steffen

Ja, das geht. Unterschiedliche Ports und Datadir nutzen. Welchen Port Du nutzt ist unerheblich. Üblich ist es, einfach hochzuzählen. Beachte, daß ein DB-übergreifender Zugang, also von der einen DB zur anderen, nicht so leicht ist. Aber es gibt ja FDW.

Hallo,
vielen Dank für die schnelle Antwort. Kommunizieren müssen die Datenbankserver nicht. Der Archivserver wäre ohnehin 98% der Zeit “down”.

Was mich verwirrt ist zum Beispiel die Aussage :

Fake News!

Spaß beiseite. Frage den Autor dort, warum er dieser Meinung ist.

Hallo,

Fake News!

Der Beitrag muss aber stimmen, denn er ist von 2014 und “Fake News” wurden erst dieses/letztes Jahr erfunden :sunglasses: .

Ja nee, alles gut! Ich werde natürlich dir vertrauen und das Ganze mal testen.

Gruß Steffen

Der kann ja nicht mal PostgreSQL richtig schreiben…