Thay đổi đường dẫn database Postgresql PGDATA directory change trên Linux OS

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

word image 1739 1

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

word image 1739 2

Khởi động service:

sudo systemctl start postgresql-15.service

sudo systemctl status postgresql-15.service

word image 1739 3

Đổ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)

word image 1739 4

Chúc các bạn thành công./

 

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận