server postgres gagal memulai, tidak menghasilkan log, bagaimana cara mengatasi masalah?

33

Saya memulai instance postgres 9.3 di server ubuntu 12.04:

~# service postgresql start 

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

awal gagal, tetapi tidak meninggalkan log, file ini kosong:

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

dan tidak ada file lain dalam direktori ini: / var / log / postgresql /

apa cara terbaik untuk memecahkan masalah ini?

Max L.
sumber
Apakah ini instalasi pg baru atau apakah Anda baru saja melakukan peningkatan? periksa apakah pengguna postgres memiliki hak atas file konfigurasi pg dan file log
LinuxDevOps
3
Coba jalankan postgres dengan cara yang sama seperti skrip Anda (biasanya su - postgres; /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/datadan lihat apa yang memberi Anda. Anda mungkin perlu mengubah nama pengguna dan jalur tergantung pada pengaturan Anda.
Jenny D mengatakan Reinstate Monica
Selain apa yang dikatakan @JennyD, saya akan menambahkan -d 3ke postgresperintah. Ini akan memungkinkan hasil debug lebih luas yang ditulis ke log. Anda dapat menurunkan output debug dengan mengubahnya menjadi 1 atau 2, atau meningkatkannya dengan mengubahnya menjadi 4 atau 5. Selain itu, apa outputnya which pgsql?
zymhan
Bagaimana PostgreSQL diinstal pada server dan dari mana? Apakah ada sesuatu di log sistem , misalnya / var / log / syslog, / var / log / messages, dll?
Craig Ringer
6
Saya tidak mengerti mengapa pertanyaan ini ditutup.
guettli

Jawaban:

53

Coba jalankan secara manual dengan debug diaktifkan. Ini akan menyebabkannya berjalan di latar depan dan mencetak pesan kesalahan ke kesalahan standar, sementara juga meningkatkan verbositas.

Saya percaya ini akan menjadi baris perintah yang benar untuk PostgreSQL 9.3 di Ubuntu, tetapi mungkin membutuhkan sedikit penyesuaian (catatan: baris dibagi untuk dibaca; Anda dapat menggabungkannya kembali ke satu baris (tanpa backslash) jika Anda mau):

/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

Awal adalah lokasi postgresbiner, lalu kita aktifkan debug dan setel ke level 3 (Anda dapat menyesuaikan ini ke atas atau ke bawah untuk menambah atau mengurangi verbositas). Selanjutnya kita tentukan direktori data dan file konfigurasi untuk memulai. Ini harus menjadi default untuk Ubuntu Server 12.04, saya pikir.

Mudah-mudahan, itu akan memberi Anda informasi yang cukup untuk menentukan di mana masalahnya.

Christopher Cashell
sumber
1
Memulai secara manual bekerja untuk saya, tetapi menggunakan layanan masih tidak. saya mengubah direktori data default, apakah ada sesuatu yang saya perlu perbarui untuk membuat perintah layanan berfungsi lagi untuk memulai postgres?
chrismarx
1
@ chrismarx - servicePerintah ini hanya pembungkus nyaman di sekitar /etc/init.d/skrip yang benar-benar memulai dan menghentikan proses. Anda harus melihat skrip itu untuk melihat apa yang dilakukannya berbeda dari saat Anda menjalankannya secara manual. Melakukan sesuatu seperti bash -x /etc/init.d/postgresql startmungkin merupakan tempat yang baik untuk memulai penelitian Anda.
Christopher Cashell
3
terima kasih, saya dapat mengurutkan ini, ada masalah izin dengan direktori data, dan sepertinya layanan juga harus dijalankan dengan sudo
chrismarx
1
Penyelamat. Saya tidak dapat menemukan cara lain untuk mengetahui mengapa PostgreSQL tidak akan mulai, karena itu karena tidak dapat mengakses direktori datanya karena masalah izin.
Aron Lorincz
1
bagi saya itu adalah izin konfigurasi / etc / postgresql /
eugene