Apakah ada opsi batas waktu untuk akses jarak jauh ke basis data PostgreSQL?

9

Saya bekerja melalui pgAdmin III pada basis data PostgreSQL jarak jauh. Setelah periode yang tidak terlalu lama (katakanlah 10-15 menit) tanpa melakukan apa pun di pgAdmin, koneksi secara otomatis berakhir. Karena itu saya memiliki pesan kesalahan yang menanyakan apakah saya ingin menghubungkan kembali. Ini membutuhkan waktu sekitar 10 detik. dan struktur database runtuh, jadi saya harus membuka kembali skema yang saya buka sebelumnya.

Apakah ada cara untuk mengubah parameter batas waktu di suatu tempat sehingga mencegah koneksi berakhir untuk jangka waktu yang lebih lama?

layu
sumber

Jawaban:

8

Koneksi server PostgreSQL turun setelah 10-15 menit hampir pasti disebabkan oleh firewall pelacakan negara (mungkin menggunakan Terjemahan Alamat Jaringan (NAT)) antara klien dan server. Banyak firewall seperti itu memiliki batas waktu default 15 menit (900 detik).

Tiga parameter server-side, tcp_keepalives_idle, tcp_keepalives_interval, tcp_keepalives_countdirancang untuk membantu dalam situasi ini. Lihat dokumentasi yang ada di sini: http://www.postgresql.org/docs/9.2/static/runtime-config-connection.html#GUC-TCP-KEEPALIVES-IDLE

Ada juga parameter sisi klien untuk ini: keepalives, keepalives_idle, keepalives_interval, keepalives_count, yang Anda dapat mengatur koneksi. Lihat dokumentasi yang ada di sini: http://www.postgresql.org/docs/9.2/static/libpq-connect.html#LIBPQ-KEEPALIVES

Colin 't Hart
sumber
Komentar bukan untuk diskusi panjang; percakapan ini telah dipindahkan ke obrolan .
Paul White 9