Saya perlu akses eksklusif ke database. Apakah mungkin menggunakan perintah SQL untuk "melepaskan" semua pengguna lain dari database postgres. Atau mungkin menutup semua koneksi lain dan kemudian mendapatkan akses eksklusif.
Ini untuk pengujian unit, dan tes hanya dijalankan secara manual, sehingga tidak ada bahaya yang terlibat. Hanya koneksi lama yang mati yang akan terpengaruh.
Tidak ada pengguna lain yang terhubung ke basis data yang belum dikirim.
Koneksi lama yang mati berasal dari pengembangan. Ini terjadi setiap saat ketika tes yang sedang ditulis atau gagal tidak keluar bersih.
Jika seseorang juga perlu tetap terkunci dari pengguna lain untuk sementara waktu setelah memutuskan sambungan mereka dalam skenario produksi, lihat jawaban Scott Marlowe di bawah ini: /dba//a/6184/2024
Lihat juga pertanyaan serupa ini di dba: Bagaimana cara menjatuhkan semua koneksi ke database tertentu tanpa menghentikan server?
sumber
procpid
diganti namanya menjadipid
, jadi waspadalah untuk itu.Masalahnya di sini ada dua, pertama Anda harus memutuskan pengguna tersebut, dan kedua Anda harus menjaga mereka keluar dari server Anda. Alih-alih mencabut perms connect, saya biasanya menggunakan pg_hba.conf untuk menolak koneksi baru dari mesin dan / atau pengguna tertentu, kemudian lakukan saja pg_ctl -m fast stop; pg_ctl mulai untuk menjatuhkan semua koneksi saat ini. Dengan slony melakukan perubahan DDL ini cukup banyak keharusan atau Anda akan mendapatkan kebuntuan di semua tempat.
sumber