data/base Ordner auf mehrere Laufwerke aufteilen?

Allgemeines zu PostgreSQL.

data/base Ordner auf mehrere Laufwerke aufteilen?

Beitragvon franzkovic » Fr 10. Sep 2010, 17:18

Hallo,
ich habe relativ wenig Ahnung von der Materie also bitte um Verzeihung wenn meine Frage dumm ist ;)

Ich würde gerne einzelne Datenbanken auf ein anderes Laufwerk verschieben. Also bspw. base Ordner 1234 auf C: und base Ordner 4567 auf D:

Ich habe Postgres 8.3 auf einem Windows 7 System.

Ist das irgendwie möglich?

Danke und Gruß
Peter
franzkovic
Neuer Benutzer
 
Beiträge: 6
Registriert: Fr 10. Sep 2010, 17:14

Beitragvon castorp » Fr 10. Sep 2010, 17:21

franzkovic hat geschrieben:Ich würde gerne einzelne Datenbanken auf ein anderes Laufwerk verschieben. Also bspw. base Ordner 1234 auf C: und base Ordner 4567 auf D:

Ich habe Postgres 8.3 auf einem Windows 7 System.
Ist das irgendwie möglich?
Ja, über Tablespaces. Einfach mehrere Tablespaces anlegen und die entsprechenden Tabellen verteilen.
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'
castorp
Erfahrener Benutzer
 
Beiträge: 673
Registriert: Sa 27. Jun 2009, 22:24

Beitragvon ads » Sa 11. Sep 2010, 09:38

Wie castorp sagt: über Tablespaces.
Dabei kannst du aber keine OIDs angeben sondern verschiebst die Tabellen anhand des Namens auf den jeweiligen Tablespace.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören Bild

Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

PostgreSQL Service & Support
ads
Erfahrener Benutzer
 
Beiträge: 4147
Registriert: Mi 8. Feb 2006, 11:58
Wohnort: MD

Beitragvon franzkovic » Mi 15. Sep 2010, 13:44

vielen Dank schonmal für den Hinweis mit den tablespaces. Das hat ausgezeichnet funktioniert ... zumindest für die lokalen Laufwerke.

Ein Problem habe ich jedoch noch: ich würde gerne eine datenbank auf meinem NAS speichern. Das erzeugen der tablespaces auf dem NAS funktioniert soweit gut. Die Tablespace wird einwandfrei erzeugt. Sobald ich jedoch eine Datenbank mit dieser tablespace verlinken möchte erhalte ich die Fehlermeldung: "ERROR: could not create directory 'pg_tblspc/xxxx': No such file or directory".

Beim Versuch diese tablespace zu löschen kommt die gleiche Fehlermeldung.
franzkovic
Neuer Benutzer
 
Beiträge: 6
Registriert: Fr 10. Sep 2010, 17:14

Beitragvon ads » Mi 15. Sep 2010, 14:00

Da braucht es wohl ein paar mehr Details.

Was für ein NAS? Wie ist das genau angebunden? Gibt es das Verzeichnis denn auf dem NAS, das dort angelegt wurde?
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören Bild

Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

PostgreSQL Service & Support
ads
Erfahrener Benutzer
 
Beiträge: 4147
Registriert: Mi 8. Feb 2006, 11:58
Wohnort: MD

Beitragvon franzkovic » Mi 15. Sep 2010, 15:08

das NAS ist ein QNAP SS-839 Pro. Es ist über einen DLink Router mit dem gesamten Netzwerk verbunden. Es existieren auf dem NAS öffentliche Ordner, die für jeden User im Netzwerk freigegeben sind (ich habe trotzdem im NAS einen Benutzer mit namen "postgres" und passwort "xxxx" erstellt).

Nach dem erstellen des tablespace schreibt postgres eine Datei namens "PG_VERSION" in den gewünschten Ordner´auf dem NAS. Ich vermute daher, dass die Berechtigungen ausreichend vorhanden sind(?)
franzkovic
Neuer Benutzer
 
Beiträge: 6
Registriert: Fr 10. Sep 2010, 17:14

Beitragvon ads » Mi 15. Sep 2010, 16:22

Das beantwortet weder meine Frage, wie das NAS (genau) angebunden ist, noch ob das gesuchte Verzeichnis vielleicht vorhanden ist.

Der Typ des Routers interessiert maximal sekunder, über welches Protokoll spricht die Datenbank mit den NAS?
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören Bild

Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

PostgreSQL Service & Support
ads
Erfahrener Benutzer
 
Beiträge: 4147
Registriert: Mi 8. Feb 2006, 11:58
Wohnort: MD

Beitragvon franzkovic » Mi 15. Sep 2010, 17:07

sorry ... dann hab ich dich missverstanden. Die ganze Materie ist ziemlich neu für mich. Ehrlich gesagt habe ich keine Ahnung über welches Protokoll die Datenbank mit dem NAS spricht. Alles was ich weiss ist, dass auf dem NAS ein Linux läuft mit einer EXT4 Dateistruktur.

Auf einem PC ist die postgresql Datenbank installiert und das NAS ist auf diesem PC über die Netzlaufwerk Funktion von Windows eingebunden.

Leider habe ich nicht ganz verstanden was du mit "gesuchtes Verzeichnis vielleicht vorhanden" meinst.

Gruß
franzkovic
Neuer Benutzer
 
Beiträge: 6
Registriert: Fr 10. Sep 2010, 17:14

Beitragvon ads » Mi 15. Sep 2010, 17:16

Hmm, wie wäre es, wenn du erst mal klärst, wie die Datenbank bzw. der Datenbankserver mit dem NAS spricht?
Wenn das SMB ist - das ist ungünstig für Datenbanken.

Du sollst außerdem auf dem NAS schauen, ob das Verzeichnis, das die Datenbank sucht, dort vorhanden ist.
Das grenzt den Fehler insoweit ein als das man sehen kann, ob der Server aufgrund Übertragungsproblemen entsteht.

Ach ja, wurde an dem NAS irgendwas geändert? LUNs entfernt oder hinzugefügt? Daten umgezogen? Verzeichnisse verschoben?
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören Bild

Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

PostgreSQL Service & Support
ads
Erfahrener Benutzer
 
Beiträge: 4147
Registriert: Mi 8. Feb 2006, 11:58
Wohnort: MD

Beitragvon franzkovic » Mi 15. Sep 2010, 19:34

vielen Dank für deine Geduld ... also da das NAS mittels Windows Netzlaufwerk auf dem Win7 PC eingebunden ist vermute ich einfach mal, dass es das SMB Protokoll ist (wie kann ich das herausfinden?). Auf dem NAS wurden keine Veränderungen vorgenommen. Ich habe lediglich ein Verzeichnis mit dem Namen "test" erstellt.

wenn ich ein tablespace erzeuge kann ich in pgadmin folgende werte eintragen:

Name: test
Ort: //NAS/Public/test
Eigentümer: postgres

Nach Erzugen der tablespace wird auf dem NAS im Verzeichnis Public/test die Datei "PG_VERSION" abgelegt.

Gleichzeitig wird auf dem Win7 PC (auf dem postgres läuft) im Verzeichnis postgres/data/pg_tblspc ein Ordner angelegt mit dem Namen der OID, der grade erzeugten tablespace (der Ordner hat das Windows Symbol einer Verknüpfung). Dieses Verzeichnis wird auch in der ERROR Message beim doppen der tablespace genannt.

Wenn ich versuche diesen Ordner zu öffnen erhalte ich von Windows die folgende Fehlermeldung: "auf C:\postgres\data\pg_tblspc\oid_nummer kann nicht zugegriffen werden. Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch."
franzkovic
Neuer Benutzer
 
Beiträge: 6
Registriert: Fr 10. Sep 2010, 17:14

Nächste

Zurück zu Allgemeines

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste