Như các bạn đã biết sau khi cài đặt Postgresql database thì chúng được lưu trữ mặc định trong thư mục đường dẫn sau: /var/lib/pgsql/15/data, việc này có thể dẫn tới khó khăn cho công tác quản trị và mở rộng về sau khi mà database của chúng ta lớn dần và hết dung lượng lưu trữ. Hơn nữa việc cài đặt database chung mount point với hệ điều hành là đặc biệt không nên (nếu hết dung lượng đĩa thì OS và database ngỏm luôn => nguy hiểm) => chúng ta cần chuyển đổi đường dẫn thư mục database sang một mount point mới.
Ở đây tôi ví dụ là chúng ta chuyển đến đường dẫn: /pgdata/15/data
Phiên bản postgresql đang sử dụng là 15
Dưới đây là các bước thực hiện chuyển đổi.
Kiểm tra đường dẫn hiện tại:
su postgres psql show data_directory;
postgres=# show data_directory;
data_directory
————————
/var/lib/pgsql/15/data
(1 row)
Stop service postgresql:
systemctl status postgresql-15.service systemctl stop postgresql-15.service systemctl status postgresql-15.service
Tạo thư mục và sửa thông tin file khởi động, move data folder:
cd / mkdir /pgdata/15/data -p chown postgres:postgres /pgdata -R
Sửa cấu hình sang thư mục mới:
vi /etc/systemd/system/postgresql-15.service.d/override.conf
## thêm vào nội dung sau:
[Service]
Environment=PGDATA=/pgdata/15/data
[root@localhost /]# cat /etc/systemd/system/postgresql-15.service.d/override.conf
[Service]
Environment=PGDATA=/pgdata/15/data
[root@localhost /]#
Reload daemon và initdb:
systemctl daemon-reload sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
Sửa thông tin pg_hba: xác thực trust hết
sudo vi /pgdata/15/data/pg_hba.conf
Khởi động service:
sudo systemctl start postgresql-15.service sudo systemctl status postgresql-15.service
Đổi mật khẩu và restart database:
sudo -u postgres psql
\password
=> nhập mật khẩu tương ứng
sudo systemctl restart postgresql-15.service
Login và kiểm tra thông tin đường dẫn mới:
psql -h localhost -U postgres show data_directory;
postgres=# show data_directory;
data_directory
—————–
/pgdata/15/data
(1 row)
Chúc các bạn thành công./