PostgreSQL修改數據庫目錄/數據庫目錄遷移


說明:以9+版本為例,10+的版本只要把目錄替換一下即可。遷移目錄肯定是要停服的!

1、在數據庫軟件安裝之后,初始化數據庫時候,可以指定初始化時創建的數據庫的默認文件路徑

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

這樣初始化之后,再修改配置文件postgresql.conf為修改之后的數據文件路徑,就能保證以后的數據文件也在這個路徑下。

備注:可以通過find查找該文件的所在位置。

2、如果是已經初始化好了,再修改數據文件路徑的,如下過程:

找到配置文件查看原來的數據存儲路徑在哪

find / -name postgresql.conf

一般是在/etc/postgresql/9.6/main/postgresql.conf

停掉PostgreSQL

service postgresql stop

拷貝原來的數據路徑到新的路徑下

cp -rf /var/lib/postgresql/9.6/main/ /data/postgresql/

設置用戶和權限

chown -R postgres:postgres /data/postgresql/
chmod 700 /data/postgresql/

將配置文件的數據存儲路徑改成新的

vi /etc/postgresql/9.6/main/postgresql.conf
data_directory='/data/postgresql/datafile'

再啟動即可

service postgresql start

修改完畢后,可以用psql命令“show data_directory”查看當前數據目錄

postgres=# show data_directory;
data_directory
------------------------
/var/lib/pgsql/10/data
(1 row)

通過上面的修改的方法,使用ps -ef輸出的進程還是會顯示原來的舊目錄,這個相當於做了URL跳轉的操作,但對於運維人員不是那么的友好,那么可以通過修改源頭來進行修改。修改方法如下:

注意:修改目錄時先停止服務!

1、命令行方式啟動時指定目錄

pg_ctl stop -D /data/pgsql/data2
pg_ctl start -D /data/pgsql/data2

2、以init腳本啟動的,修改腳本(10+):

vi /etc/init.d/postgresql-10
# 修改為如下內容
PGDATA=/data/pgsql/data2

2、以systemd啟動的,修改腳本(10+):

vi /usr/lib/systemd/system/postgresql-10.service
# 修改為如下內容
Environment=PGDATA=/data/pgsql/data2

 

參考:

http://blog.itpub.net/29654823/viewspace-2147325/(以上內容轉自此篇文章)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM