máy chủ postgres không khởi động được, không tạo được log, làm thế nào để khắc phục sự cố?


33

Tôi đang bắt đầu một phiên bản postgres 9.3 trên máy chủ Ubuntu 12.04:

~# service postgresql start 

 * The PostgreSQL server failed to start. Please check the log output.
                                                                     [fail]

bắt đầu thất bại, nhưng nó không để lại nhật ký, tập tin này trống:

tail /var/log/postgresql/postgresql-9.3-main.log 

và không có tệp nào khác trong thư mục này: / var / log / postgresql /

cách tốt nhất để khắc phục sự cố này là gì?


Đây có phải là bản cài đặt pg mới hay bạn vừa mới nâng cấp? kiểm tra xem người dùng postgres có quyền đối với tệp cấu hình pg và tệp nhật ký
LinuxDevOps

3
Hãy thử postgres chạy theo cùng một cách như kịch bản của bạn không (thông thường su - postgres; /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/datavà xem những gì nó mang lại cho bạn Bạn có thể cần phải thay đổi tên người dùng và các đường dẫn phụ thuộc vào thiết lập của bạn..
Jenny D nói Khôi phục Monica

Ngoài những gì @JennyD đã nói, tôi sẽ thêm -d 3vào postgreslệnh. Điều này sẽ cho phép đầu ra gỡ lỗi mở rộng hơn được ghi vào nhật ký. Bạn có thể hạ thấp đầu ra gỡ lỗi bằng cách thay đổi nó thành 1 hoặc 2 hoặc tăng nó bằng cách thay đổi nó thành 4 hoặc 5. Ngoài ra, đầu ra của nó là which pgsqlgì?
zymhan

PostgreSQL được cài đặt trên máy chủ như thế nào và từ đâu? Có bất cứ điều gì trong nhật ký hệ thống , ví dụ / var / log / syslog, / var / log / message, v.v.?
Craig Ringer

6
Tôi không hiểu tại sao câu hỏi này đã bị đóng.
guettli

Câu trả lời:


53

Hãy thử chạy thủ công với gỡ lỗi được kích hoạt. Điều này sẽ khiến nó chạy ở nền trước và in bất kỳ thông báo lỗi nào thành lỗi tiêu chuẩn, đồng thời làm tăng mức độ chi tiết.

Tôi tin rằng đây sẽ là dòng lệnh chính xác cho PostgreSQL 9.3 trên Ubuntu, nhưng nó có thể yêu cầu một số điều chỉnh rất nhẹ (lưu ý: dòng được chia để dễ đọc; bạn có thể kết hợp lại thành một dòng duy nhất (không có dấu gạch chéo ngược) nếu bạn muốn):

/usr/lib/postgresql/9.3/bin/postgres -d 3 -D /var/lib/postgresql/9.3/main \
   -c config_file=/etc/postgresql/9.3/main/postgresql.conf

Bắt đầu là vị trí của postgresnhị phân, sau đó chúng tôi kích hoạt gỡ lỗi và đặt nó ở mức 3 (bạn có thể điều chỉnh tăng hoặc giảm để tăng hoặc giảm mức độ chi tiết). Tiếp theo, chúng tôi chỉ định thư mục dữ liệu và tệp cấu hình để bắt đầu. Đây phải là mặc định cho Ubuntu Server 12.04, tôi nghĩ vậy.

Hy vọng rằng, điều đó sẽ cung cấp cho bạn đủ thông tin để xác định vấn đề ở đâu.


1
bắt đầu nó hoạt động bằng tay cho tôi, nhưng sử dụng dịch vụ vẫn không. Tôi đã thay đổi thư mục dữ liệu mặc định, có điều gì tôi cần cập nhật để làm cho lệnh dịch vụ hoạt động trở lại để bắt đầu postgres không?
chrismarx

1
@chrismarx - serviceLệnh chỉ là một trình bao bọc thuận tiện xung quanh /etc/init.d/tập lệnh thực sự bắt đầu và dừng quá trình. Bạn sẽ cần xem kịch bản đó để xem nó đang làm gì khác với khi bạn tự chạy nó. Làm một cái gì đó như bash -x /etc/init.d/postgresql startcó thể là một nơi tốt để bắt đầu nghiên cứu của bạn.
Christopher Cashell

3
cảm ơn, tôi đã sắp xếp thứ này, có vấn đề về quyền với thư mục dữ liệu và có vẻ như dịch vụ cũng phải được chạy với sudo
chrismarx

1
Phao cứu sinh. Tôi không thể tìm thấy bất kỳ cách nào khác để nói lý do tại sao PostgreSQL sẽ không bắt đầu, vì đó là vì nó không thể truy cập vào thư mục dữ liệu của nó vì vấn đề về quyền.
Aron Lorincz

1
đối với tôi, đó là sự cho phép của configs / etc / postgresql /
eugene
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.