Synology DSM7 und PostgreSQL ?

Tuxnet

Benutzer
Mitglied seit
02. Jan 2019
Beiträge
618
Punkte für Reaktionen
74
Punkte
48
Hallo zusammen,
gibt es einen weg PostgreSQL auf der Synology mit dem aktuellen Betriebssystem ( DSM 7 )zu installieren ?
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.476
Punkte für Reaktionen
1.087
Punkte
194
Per Docker-Image sollte das kein Problem sein.
 

Tuxnet

Benutzer
Mitglied seit
02. Jan 2019
Beiträge
618
Punkte für Reaktionen
74
Punkte
48
Ja, da hast du recht, das funktioniert.
Ich möchte es aber direkt auf der synology.

Derzeit experimentiere ich mit der postsql von Synology.
 

TZ_Adm_Fabian

Benutzer
Mitglied seit
25. Mai 2022
Beiträge
15
Punkte für Reaktionen
0
Punkte
1
Hallo, ich will mich kurz vorstellen: Ich bin Fabian, und muss mich in meinen technischen Job nebenbei um Administrationsthemen kümmern. Linux ist mir nicht fremd, mit Synology hatte ich bislang nicht so viel zu tun und ich bin eben keine Vollzeitadmin.

Ich möchte unsere NAS für eine verteilte SQL-Datenbank verwenden. Die Anwendung ist die freie Literaturverwaltung Jabref für die Postgres empfohlen wird, MariaDB ginge auch (nicht optimal). Es müssen nicht viele Benutzer für die DB gepflegt werden, ein geteilter ginge auch, aber das NAS-Login wäre optimal.

So wie ich es verstanden habe, gibt es kein Paket für PostgreSQL für NAS sondern ich könnte die System-DB aufbohren.
* Ist das eine sinnige Idee?
* Was wären die Implikationen vom oben erwähnten docker image? Wie würden die Daten gesichert?

Macht es Sinn, die PostgreSQL für meine Anwendung auf der Synology laufen zu lassen? Ich hätte noch einen Linuxserver, den ich verwenden könnte.

Danke für Eure Hilfe!
 

Tuxnet

Benutzer
Mitglied seit
02. Jan 2019
Beiträge
618
Punkte für Reaktionen
74
Punkte
48
Es gibt drei Möglichkeiten

1 - docker
2- die interne PostgresSQL Datenbank
3- PostgresSQL als packet über eine andere quelle installieren ( cphub.net )
 
  • Like
Reaktionen: TZ_Adm_Fabian

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.187
Punkte für Reaktionen
71
Punkte
68
Wie schon empfohlen ist es Sinnvoller eine kleine Dockerinstallation statt der System-DB zu nutzen. Bei letzterem weiss man nie, ob sich Synology mal für eine andere DB entscheidet und mit Docker hat man die Freiheit der Versionen. Es ist durchaus sinnvoll das auch auf der DS zu betreiben, da man im Gegensatz zu den meisten kleinen Linux Server hier gespiegelte oder mit RAID5 gesicherte Platten ohnne weiters zutun nutzen kann und da idR auch genug Platz für Db-Dumps als Datensicherung hat
Docker geht aber nur ab den Plus Geräten.. Die Installation ist supereasy
 
  • Like
Reaktionen: TZ_Adm_Fabian

EDvonSchleck

Gesperrt
Mitglied seit
06. Mrz 2018
Beiträge
4.703
Punkte für Reaktionen
1.120
Punkte
214
Docker funktioniert hier ohne Probleme und man bekommt immer die aktuellste Version angeboten.
Ich selbst bin kein freund von Paketen aus irgendwelchen Quellen.
Und wenn du erst einmal mit Docker angefangen hast, findest du bestimmt noch weitere interessante Anwendungen.
 
  • Like
Reaktionen: TZ_Adm_Fabian

TZ_Adm_Fabian

Benutzer
Mitglied seit
25. Mai 2022
Beiträge
15
Punkte für Reaktionen
0
Punkte
1
Danke für die Tipps. Dann versuche ich mich mal mit docker. Ich hatte damit schon zu tun, bin aber bislang noch nicht richtig warm damit gekommen - ich hoffe mal, ich komme nicht weiter mit .yml-Files in Kontakt.
 

EDvonSchleck

Gesperrt
Mitglied seit
06. Mrz 2018
Beiträge
4.703
Punkte für Reaktionen
1.120
Punkte
214
mach das, ist wirklich super wenn man das einmal verstanden hat
Ich hab nur den Port, das externe Verzeichnis und das Postgres-Passwort für den Admin angelegt. Danach hab ich die Datenbanken mir Pg4admin angelegt und eingerichtet. Das kannst du auch als Docker oder als Anwendung auf den Rechner laufen lassen. Eine einfachere Lösung wäre noch Adminer. Beide sind mehr oder weniger das Gegenstück zu PhpmyAdmin.
 
  • Like
Reaktionen: TZ_Adm_Fabian

tproko

Benutzer
Sehr erfahren
Mitglied seit
11. Jun 2017
Beiträge
2.117
Punkte für Reaktionen
256
Punkte
129

Wenn du eine DS hast die docker offiziel unterstützt kannst du via docker App alles ohne yaml Files machen.

Falls du vorhast docker nativ zu installieren (gibt dazu Anleitungen), würde ich das mit docker Compose betreiben.

Wie @EDvonSchleck schon schrieb geht pg4admin ganz gut. Ich verwende das oder das openSource tool dbeaver (der kann quasi alle mir derzeit viel genutzen DBs.
 

TZ_Adm_Fabian

Benutzer
Mitglied seit
25. Mai 2022
Beiträge
15
Punkte für Reaktionen
0
Punkte
1
mach das, ist wirklich super wenn man das einmal verstanden hat
Ich hab nur den Port, das externe Verzeichnis und das Postgres-Passwort für den Admin angelegt. Danach hab ich die Datenbanken mir Pg4admin angelegt und eingerichtet.

das Passwort geht wohl über die Environment-Variable, ein Verzeichnis habe ich auch irgendwie gemounted (keine Ahnung ob das passt?). pg4amin habe ich mir lokal a.d. Mac installiert (danke für den Tipp).

Mein Problem ist, dass ich nicht verstehe, wie ich am besten a.d. Server komme.
Ich habe als Docker-Port 5432, da komme ich nicht von außen drauf.
Local-Port ist 49157, damit komme ich vom Mac aus drauf (auch mit nx -vz <server> <port> getestet).
Welchen Port soll ich denn im Netzwerk (nicht Synology) konfigurieren, damit man a.d. Port kommt?
Mir kommt 49157 falsch vor?! Network Name und Driver sind jeweils bridge

Das ist wohl die Einstiegshürde in docker ...

Danke!
 

EDvonSchleck

Gesperrt
Mitglied seit
06. Mrz 2018
Beiträge
4.703
Punkte für Reaktionen
1.120
Punkte
214
Aller Anfang ist schwer, gerade bei Docker muss man das erst einmal verstehen, ist aber nicht sehr schwer.

Wenn du ein Ordner gemappt hast und das Passwort vergeben sowie einen externen Port zugeteilt (geht aber auch der zugewiesene) ist soweit ja schon alles richtig. Jetzt musst du mit der DS-IP+Dockerport in pg4admin einen Server anlegen. Dabei wirst du nach dem Passwort gefragt, welches du vergeben hast. Denn geht es weiter mit einen User anlegen sowie einer Datenbank.

Ob Host-Netzwerk, Bridge oder ein neu erstelltes Netzwerk ist egal, das hat nur ein bedingten Einfluss, AUßER das die Datenbank, Paperless und redis in den gleichen Netzwerk sein müssen um sich gegenseitig mit den Namen zu finden.

Wenn deine DS nicht zu alt ist, kannst du auch pg4admin als Docker laufen lassen, denn würdest du die interne IP oder Namen als Adressen angeben.
Meine DS ist zu alt und es kommt ein Fehler bzw nur eine alte Version funktioniert. Deshalb nutze ich selbst den Windowsclient zum einrichten, womit ich aber leben kann.
 
  • Like
Reaktionen: TZ_Adm_Fabian

TZ_Adm_Fabian

Benutzer
Mitglied seit
25. Mai 2022
Beiträge
15
Punkte für Reaktionen
0
Punkte
1
Was ist paperless und redis?!

Es funktioniert im lokalen Netz mit dem lokalen Port 49157. Ich konnte sowohl vom Mac aus mit pg4admin die DB und einen User anlegen und auch die Anwendung (JabRef) konnte a.d. DB zugreifen.

Um das aber von anderen Netzen aus zu machen (z.B. WLAN und VPN), muss ich der IT sagen, welche Ports der NAS sie aufmachen sollen. Ich dachte, es wäre die 5432, aber damit ist die NAS nicht erreichbar. Sie ist es aber über den lokalen Port.

Ich vermute, dass ich docker so konfigurieren muss, dass ich von außen über 5432 a.d. Container komme.
 

EDvonSchleck

Gesperrt
Mitglied seit
06. Mrz 2018
Beiträge
4.703
Punkte für Reaktionen
1.120
Punkte
214
Sorry war noch im anderen Thread, auch mit postgres.
Denn kannst du es natürlich überspringen, wenn du aber andere Dienste auf postgres mittels Docker laufen lassen willst, gilt das auch für diese!
Du wolltest ja postgres nur auf der DS laufen lassen.

Der Port ist egal, der sollte aber wenn es geht fix sein. Auch der 49xxx muss funktionieren!
 

EDvonSchleck

Gesperrt
Mitglied seit
06. Mrz 2018
Beiträge
4.703
Punkte für Reaktionen
1.120
Punkte
214
heiß aber nicht das es nicht funktioniert, verwende ansonsten irgend einen, es geht ja nur um Zugriff auf die Datenbank zu erhalten. Bei Docker untereinander geschieht das über den Namen und den Standartport im Container.
Du kannst Postgres auch als Host laufen lasen, denn funktioniert alles über den Standartport 5432.
 

TZ_Adm_Fabian

Benutzer
Mitglied seit
25. Mai 2022
Beiträge
15
Punkte für Reaktionen
0
Punkte
1
Host hat nicht geklappt, ich habe auch nirgends mehr die 5432 gesehen. Aber ich habe jetzt verstanden, wie Du das mit bridge gemeint hast. Anstelle von auto mit 47*** im dynamischen Bereich habe ich mir die 10000 gewünscht, i.d. Netzwerkfreigabe eintragen lassen und das geht jetzt!

Ich habe noch zwei Probleme:
Eines ist, dass ich nicht sehe, wo die Daten geschrieben und somit auch im Backup gesichert werden? Ich habe nämlich eine zweite Synology, die die erste im Backup hat.

Ich habe eine Verzeichnis erstellt und dort einen Mount point definiert. Ich hätte gehofft, das Postgres dort magisch seine Daten ablegt. Aber im Filesystem finde ich nichts. Wenn ich Docker beende und neu starte, scheinen Daten noch da zu sein, auch wenn ich sie bislang noch nicht per pg4Admin finden konnte.

Oder wie könnte ich sonst sicherstellen, dass die i.d. DB nicht verloren gehen?
 

Anhänge

  • Bildschirmfoto 2022-06-03 um 15.33.34.png
    Bildschirmfoto 2022-06-03 um 15.33.34.png
    49,4 KB · Aufrufe: 4

EDvonSchleck

Gesperrt
Mitglied seit
06. Mrz 2018
Beiträge
4.703
Punkte für Reaktionen
1.120
Punkte
214
soll das der mount vom offiziellen postgres sein? bei mir sieht das ein bisschen anders aus!
Bei Dockerhub steht in der Beschreibung für den Mount "/var/lib/postgresql/data"

Wenn du also einen Ordner nach außen zugänglich machen willst, das deine Daten gespeichert bleiben, denn musst du einen Ordner hinzufühen und unter Mount Patht /var/lib/postgresql/data eintragen. Wenn du z.b. /docker/postgres > /var/lib/postgresql/data eingestellt hast soird der Ordner nach starten von Postgres-Docker gefüllt mit den Datenbanken.

Den Port brauchst du ja nur wenn du von extern via IP connecten willst - für Docker Container untereinander bracht man das nicht!

Mittels Aufgabe kann man via Script noch ein kompletten Dump aller Datenbanken machen, der landest denn automatisch im Backup-Ordner.
 
  • Like
Reaktionen: TZ_Adm_Fabian

tproko

Benutzer
Sehr erfahren
Mitglied seit
11. Jun 2017
Beiträge
2.117
Punkte für Reaktionen
256
Punkte
129
Ich würde dazu ein klassisches pgdump machen.

Via Aufgabenplaner von DSM kannst du zB mit dem Befehl docker exec das pgdump im Container anstarten. Dort in einen Ordner schreiben, der nach außen gemounted ist. Dann kannst du den wegsichern.
 
  • Like
Reaktionen: TZ_Adm_Fabian


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat