2010-06-09 38 views

Trả lời

98

Các "thư mục nơi postgresql sẽ giữ tất cả cơ sở dữ liệu" (và cấu hình) được gọi là "thư mục dữ liệu" và tương ứng với những gì PostgreSQL gọi (một chút gây nhầm lẫn) một "database cluster", mà không liên quan đến tính toán phân tán, nó chỉ có nghĩa là một nhóm các cơ sở dữ liệu và các đối tượng liên quan được quản lý bởi một máy chủ PostgreSQL.

Vị trí của thư mục dữ liệu phụ thuộc vào phân phối. Nếu bạn cài đặt từ mã nguồn, mặc định là /usr/local/pgsql/data:

Về hệ thống tập tin, một cụm cơ sở dữ liệu sẽ là một thư mục duy nhất theo đó tất cả dữ liệu sẽ được lưu trữ. Chúng tôi gọi đây là thư mục dữ liệu hoặc khu vực dữ liệu. Hoàn toàn tùy thuộc vào bạn nơi bạn chọn lưu trữ dữ liệu của mình. Không có mặc định, mặc dù các địa điểm chẳng hạn như /usr/local/pgsql/data hoặc /var/lib/pgsql/dữ liệu phổ biến. (ref)

Bên cạnh đó, một thể hiện của máy chủ PostgreSQL đang chạy được liên kết với một cụm; vị trí của thư mục dữ liệu có thể được chuyển tới daemon máy chủ ("postmaster" hoặc "postgres") trong tùy chọn dòng lệnh -D hoặc bằng biến môi trường PGDATA (thường là trong phạm vi người dùng đang chạy, thường là postgres). Bạn thường có thể nhìn thấy các máy chủ đang chạy với một cái gì đó như thế này:

[[email protected] ~]# ps auxw | grep postgres | grep -- -D 
postgres 1535 0.0 0.1 39768 1584 ?  S May17 0:23 /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data 

Lưu ý rằng nó là có thể, mặc dù không phải là rất thường xuyên, để chạy hai trường hợp của máy chủ PostgreSQL cùng (cùng mã nhị phân, quy trình khác nhau) phục vụ khác nhau " cụm "(thư mục dữ liệu). Tất nhiên, mỗi cá thể sẽ lắng nghe trên cổng TCP/IP của chính nó.

42
/var/lib/postgresql/[version]/data/ 

Ít nhất trong Gentoo Linux và Ubuntu 14.04 theo mặc định.

Bạn có thể tìm thấy postgresql.conf và xem thông số data_directory. Nếu nó được nhận xét thì thư mục cơ sở dữ liệu giống với thư mục tệp cấu hình này.

+14

Nó sẽ tùy thuộc vào phân phối, tất cả chúng đều hơi khác. Nếu bạn có thể kết nối với hệ thống, sử dụng "SHOW data_directory" có lẽ là cách dễ nhất. –

+0

@MagnusHagander nó là một câu trả lời, y không bạn làm cho bình luận này một câu trả lời. Nó làm việc tốt cho tôi. – Vishal

+0

trong Gnome Tôi thấy tương tự ở đây '/ var/lib/8.1/postgresql' –

8

trên CentOS 6.5/PostgreSQL 9,3:

Thay đổi giá trị của "PGDATA=/var/lib/pgsql/data" để bất cứ điều gì vị trí bạn muốn trong file kịch bản ban đầu /etc/init.d/postgresql.

Nhớ chmod 700chown postgres:postgres đến vị trí mới và bạn là sếp.

12

mặc định trong Debian 8.1 và PostgreSQL 9.4 sau khi cài đặt với người quản lý gói apt-get

ps auxw | grep postgres | grep -- -D 
postgres 17340 0.0 0.5 226700 21756 ?  S 09:50 0:00 /usr/lib/postgresql/9.4/bin/postgres -D /var/lib/postgresql/9.4/main -c config_file=/etc/postgresql/9.4/main/postgresql.conf 

như vậy rõ ràng /var/lib/postgresql/9.4/main.

Các vấn đề liên quan