Re: move databases files location

From: "jehan(dot)procaccia" <jehan(dot)procaccia(at)int-edu(dot)eu>
To: Richard Huxton <dev(at)archonet(dot)com>
Cc: pgsql-general(at)postgresql(dot)org, Lydie(dot)Soler(at)agroparistech(dot)fr
Subject: Re: move databases files location
Date: 2007-10-18 09:23:02
Message-ID: 471725F6.3000509@int-edu.eu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Richard Huxton wrote:
> jehan.procaccia wrote:
>> my postgresql installation from redhat package:
>> $ rpm -q postgresql
>> postgresql-7.4.17-1.RHEL4.1
>> is located in /var partition, unfortunalty it is nearly full
>> $ df -H .
>> Filesystem Size Used Avail Use% Mounted on
>> /dev/sda12 11G 8.2G 1.7G 84% /var
>>
>> How can I tell postgresql to record databases in an other partition ?
>> For now they are in:
>> [root(at)metarisk1 /var/lib/pgsql/data/base]
>> $ ls
>> 1 17142 18275591 26876456 537107 6123076 657110 802399
>> 17141 17837306 18372925 533001 596944 61317 7321277 8500925
>>
>> will it be simply a move of the files, or should I have to
>> dump&restore the databases ?
>
> I don't think 7.4 had tablespaces (check the manual). In which case
> you'll have to do it manually.
>
> 1. Stop the database server.
> 2. Create a new location for your db stuff /some/where/pgsql2/data/base
> 3. Move the directories you want over to the new location
> 4. Symlink each of the directories
> cd /var/lib/pgsql/data/base
> link -s /some/where/pgsql2/data/base/17142
> 5. Check ownership & permissions
> 6. Restart database
>
> If you want to move all of them, rather than just individual databases
> then you just need to move .../data and reset your PGDATA to point at
> that. Can't remember where that gets set with the old RPMS - try in
> /etc/postgresql or /etc/pgsql
>
apperently PGDATA is set in .bash_profile and points to /var/lib/pgsql/data:
[postgres(at)server ~]
$ cat .bash_profile
PGDATA=/var/lib/pgsql/data
[ -f $PGDATA/../initdb.i18n ] && source $PGDATA/../initdb.i18n
export PGDATA

So I suppose I'll have to stop postgres, move (or copy to be safe ..)
/var/lib/pgsql/data to /data2/pgsql/data (/data2 is a file system with
plenty of space) , set PGDATA=/data2/pgsql/data and restart postgres,
that's all ?

thanks for a confirmation.

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Tomi N/A 2007-10-18 10:15:44 a failover scenario
Previous Message Jorge Godoy 2007-10-18 09:07:07 Re: Suggestions for Remote Procedure Calls from PG, please?