Um das ganze etwas einfacher zu gestalten: wieso erstellst du keinen neuen Tablespace?
Dokumentation: CREATE TABLESPACE
Das dürfte dir die Arbeit um einiges vereinfachen.
Hallo,
ich hab das noch nicht ganz kappiert. Ich möchte eine postgres-postgis Datenbank -- unter debian lenny -- aufsetzen und weiß, dass die Datenmenge den Platz in meiner /var übersteigt. Deshalb habe ich eine leere Partition meiner Festplatte als /Daten eingehängt.
Ich hab mitein neues cluster erzeugt und den server mitCode:$ /usr/lib/postgresql/8.3/bin/initdb -W --lc-collate=C -D /Daten/pgsql/datagestartet.Code:$ /usr/lib/postgresql/8.3/bin/postgres -D /Daten/pgsql/data/ LOG: Datenbanksystem wurde am 2009-01-05 23:26:18 CET heruntergefahren LOG: Autovacuum-Launcher startet LOG: Datenbanksystem ist bereit um Verbindungen anzunehmen
Wie komme ich jetzt dort als user rauf und erzeuge eine Datenbank? Mit createdb ... erzeuge ich doch eine datenbank die dann im cluster unter /var/lib... liegt, oder?
Oder sollte ich doch kein neues cluster erzeugen und den ordner unter /var/lib nach /Daten kopieren und einen symlink zurück nach /var/lib legen?
Danke
Torsten
Um das ganze etwas einfacher zu gestalten: wieso erstellst du keinen neuen Tablespace?
Dokumentation: CREATE TABLESPACE
Das dürfte dir die Arbeit um einiges vereinfachen.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Nein, Mit initdb erzeugst Du einen DB-Cluster, in diesem liegen dann die einzelnen Datenbanken.
Eine Instance von PG verwaltet einen Cluster.
Je nachdem, was Du machen willst. Wenn vorhandene Daten erhalten bleiben sollen und nur weiterer Platz geschaffen werden soll, kannst Du das entweder mit dem kopieren und dem Symlink machen oder für neue Datenbanken/Tabellen/Indexe einfach neue Tablespaces auf Deiner neuen Platte nutzen. Mit verschiedenen Tablespaces zu arbeiten hätte zudem noch den Vorteil, schneller zu sein (Aufteilen von Tabellen und Indexe auf versch.Tablespaces und damit Platten)Oder sollte ich doch kein neues cluster erzeugen und den ordner unter /var/lib nach /Daten kopieren und einen symlink zurück nach /var/lib legen?
Danke
Torsten
.oO( kann es sein, daß Dir das aber auch schon gestern im IRC erklärt wurde? )
Andreas
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Jetzt nachdem ich weiß, dass es so etwas gibt würde ich das gern machen. Ich weiß nur noch nicht wie. Wenn ich als # su postgres
$ CREATE TABLESPACE eingebe bekomme ich: bash: CREATE: command not found
Hab ich noch was vergessen zu installieren oder muss man das anders machen?
Danke
Torsten
Führe die entsprechenden Befehl mal in psql aus![]()
Das "bash" sollte dich stutzig machen ...
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Du landest nach su - postgres in einer normalen Shell, hier der bash. In dieser mußt Du psql starten und in psql Dein CREATE TABLESPACE machen. Als Einzeiler:
*ungetestet*, sollte aber gehen. Anschaulicher ist es aber, psql interaktiv zu benutzen.Code:su - postgres -c "psql template1 -c 'create tablespace ...'"
Andreas
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Danke Andreas,
ich bin bis jetzt davon ausgegangen, mit su postgres schon in einer postgres-shell zu sein.
Jetzt habe ich aber das Problem, das postgres und ich als user keine Schreibberechtigung zu haben scheineDer Ordner /Daten gehört aber mir als user. Zu welcher Gruppe gehört postgres und die postgresql-user per default auf einem debian?Code:postgres=# CREATE TABLESPACE digit OWNER torsten LOCATION '/Daten/pgsql/data' ; FEHLER: konnte Zugriffsrechte für Verzeichnis »/Daten/pgsql/data« nicht setzen: Die Operation ist nicht erlaubt
Was ist grundsätzlich noch zu beachten wenn ich auf einem Speichermedium schreib- und lesezugriff als postgresuser haben will?
Danke
Torsten
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Ich muss mich hier mal einmischen: deine Probleme sind nur sehr bedingt auf PostgreSQL basierend. Du solltest schon wissen, wie man mit einem Unix-System umgeht, bevor du dich an dessen Nutzung (in dem Fall PostgreSQL) wagst.
All die Fehler, die du bisher hattest sind Probleme der Systemadministration, nicht der Datenbank.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen