說明:以9+版本為例,10+的版本只要把目錄替換一下即可升筏。遷移目錄肯定是要停服的涯雅!
1鲜结、在數(shù)據(jù)庫軟件安裝之后,初始化數(shù)據(jù)庫時(shí)候活逆,可以指定初始化時(shí)創(chuàng)建的數(shù)據(jù)庫的默認(rèn)文件路徑
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
這樣初始化之后精刷,再修改配置文件postgresql.conf為修改之后的數(shù)據(jù)文件路徑,就能保證以后的數(shù)據(jù)文件也在這個(gè)路徑下蔗候。
備注:可以通過find查找該文件的所在位置怒允。
2锈遥、如果是已經(jīng)初始化好了丽惶,再修改數(shù)據(jù)文件路徑的诉字,如下過程:
找到配置文件查看原來的數(shù)據(jù)存儲(chǔ)路徑在哪
find/ -name postgresql.conf
一般是在/etc/postgresql/9.6/main/postgresql.conf
停掉PostgreSQL
service postgresql stop
拷貝原來的數(shù)據(jù)路徑到新的路徑下
cp -rf /var/lib/postgresql/9.6/main/ /data/postgresql/
設(shè)置用戶和權(quán)限
chown -R postgres:postgres/data/postgresql/chmod 700 /data/postgresql/
將配置文件的數(shù)據(jù)存儲(chǔ)路徑改成新的
vi /etc/postgresql/9.6/main/postgresql.conf
data_directory='/data/postgresql/datafile'
再啟動(dòng)即可
service postgresqlstart
修改完畢后琅轧,可以用psql命令“show data_directory”查看當(dāng)前數(shù)據(jù)目錄
postgres=# show data_directory;data_directory
------------------------/var/lib/pgsql/10/data(1 row)
通過上面的修改的方法乍桂,使用ps -ef輸出的進(jìn)程還是會(huì)顯示原來的舊目錄睹酌,這個(gè)相當(dāng)于做了URL跳轉(zhuǎn)的操作旺芽,但對(duì)于運(yùn)維人員不是那么的友好,那么可以通過修改源頭來進(jìn)行修改。修改方法如下:
注意:修改目錄時(shí)先停止服務(wù)抵怎!
1、命令行方式啟動(dòng)時(shí)指定目錄
pg_ctl stop -D /data/pgsql/data2
pg_ctl start-D /data/pgsql/data2
2利耍、以init腳本啟動(dòng)的程癌,修改腳本(10+):
vi /etc/init.d/postgresql-10# 修改為如下內(nèi)容
PGDATA=/data/pgsql/data2
2、以systemd啟動(dòng)的,修改腳本(10+):
vi /usr/lib/systemd/system/postgresql-10.service# 修改為如下內(nèi)容
Environment=PGDATA=/data/pgsql/data2