I use postgresql 9.1, on ubuntu 12.04. I had installed the depot package.

I have added a new partition to my system, and I would like to create a postgresql database on this partition ( which will be entirely dedicated to this database).

My pgdata is located in var/lib/postgresql/9.1/main. I plan to stop the postgresql service, copy the pgdata content to the new partition, then make a symbolic link to the new partition, chown the new directory to postgres user, restart postgresql... but I'm afraid this all looks more like a hack.

Is there a way to create a database specifically on a specified partition ? Something more "canonical" (not a play of word with ubuntu)

  • It depends on your operating system and whether it's a self-compiled or pre-packaged postgres install, you need to provide these details in the question – Daniel Vérité Mar 19 '13 at 15:07
  • @DanielVérité ubuntu 12.04., ubuntu depot package installed – Stephane Rolland Mar 19 '13 at 15:15
  • Check the answers to this question. – jop Mar 19 '13 at 15:18
  • ok I found it @ var/lib/postgresql/9.1/main – Stephane Rolland Mar 19 '13 at 15:59
  • 1
    You don't need the symbolic link, just change the configuration of the postmaster startup script to point to the new data directory. You could also create a tablespace on the new partition and create the new database in that. No need to mess around with the data directory. – a_horse_with_no_name Mar 19 '13 at 16:35

CREATE TABLESPACE could be used.

create tablespace dedicated_datastore owner postgres location '/my/mount/point/'

and now the tablespace can be used as parameter when creating a database, (or a table, or an index)

create database my_database tablespace dedicated_datastore
  • 2
    I'm not sure about using the phrase should be used!! If you only have one database (and/or cluster) then it might be better to use either mount points, symlinks, or change the PGDATA location (in order of preference from various guides). Tablespaces have lots of caveats when it comes to backing up where as having the whole data directory mapped does not. – Adam Gent Nov 30 '16 at 15:37
  • @AdamGent noticed your comment only today. I changed it to "could"/ – Stephane Rolland Jul 10 '20 at 12:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.