Difference between revisions of "Postgres:Changing Data Directory"

From Earlham CS Department
Jump to navigation Jump to search
Line 1: Line 1:
1. Shut down PostgreSQL
+
1. Shut down PostgreSQL (switch to postgres user)
 
:/usr/<postgres folder>/bin/pg_ctl stop -D /var/lib/pgsql/<version>/main/data
 
:/usr/<postgres folder>/bin/pg_ctl stop -D /var/lib/pgsql/<version>/main/data
 
::Example: /usr/pgsql-9.1/bin/pg_ctl stop -D /var/lib/pgsql/9.1/main/data
 
::Example: /usr/pgsql-9.1/bin/pg_ctl stop -D /var/lib/pgsql/9.1/main/data
Line 9: Line 9:
 
4. Change ownership of the new directory and subdirectories to make sure postgres user has access to those
 
4. Change ownership of the new directory and subdirectories to make sure postgres user has access to those
 
:sudo chown -R <ownername>:<groupname> <foldername>
 
:sudo chown -R <ownername>:<groupname> <foldername>
5. Restart PostgreSQL
+
5. Restart PostgreSQL (switch to postgres user)
 
:/usr/<postgres folder>/bin/pg_ctl start -D new/path/to/data
 
:/usr/<postgres folder>/bin/pg_ctl start -D new/path/to/data
 
:/usr/<postgres folder>/bin/pg_ctl status -D new/path/to/data
 
:/usr/<postgres folder>/bin/pg_ctl status -D new/path/to/data

Revision as of 13:44, 24 May 2019

1. Shut down PostgreSQL (switch to postgres user)

/usr/<postgres folder>/bin/pg_ctl stop -D /var/lib/pgsql/<version>/main/data
Example: /usr/pgsql-9.1/bin/pg_ctl stop -D /var/lib/pgsql/9.1/main/data

2. Make sure that PostgreSQL has been shut down successfully

/usr/<postgres folder>/bin/pg_ctl status -D /var/lib/pgsql/<version>/main/data

3. Find the PostgreSQL config file and edit it (usually in /etc/postgresql, but it might be in /var)

nano /etc/postgresql/<version>/main/postgresql.conf
change the data_directory, pg_hba, and pg_ident lines to the new paths

4. Change ownership of the new directory and subdirectories to make sure postgres user has access to those

sudo chown -R <ownername>:<groupname> <foldername>

5. Restart PostgreSQL (switch to postgres user)

/usr/<postgres folder>/bin/pg_ctl start -D new/path/to/data
/usr/<postgres folder>/bin/pg_ctl status -D new/path/to/data