How to Terminate PostgreSQL Sessions

Ada sesuatu yang ingin dilakukan terhadap database akan tetapi sering kali kita melupakan bahwa database tersebut sedang di akses oleh beberapa user / aplikasi yang menyebabkan database tersebut memiliki sebuah session untuk mengikat autorisasi.

Pada tutorial ini saya hendak membuat replicate / duplikasi dari sebuah database postgresql dimana duplikasi tersebut dapat dilakukan apabila session dari database yang ingin di duplikasi terbebas. Postgresql yang digunakan adalah versi 10 dan terinstall di Sistem Operasi berbasis linux CentOs (tutorial ini bisa dijalankan pada versi postgresql berapapun dan pada OS apapun).

Langkah yang harus dilakukan adalah :

  1. Masuk akses ke database menggunakan user postgres (sudo su postgres / su – postgres)
  2. Setelah itu masukan password akses menggunakan username postgres. (bukan password root OS ya)
  3. Jalankan perintah SQL dibawah ini :

SELECT pg_terminate_backend(pg_stat_activity.pid)FROM pg_stat_activity WHERE pg_stat_activity.datname = ‘namadatabase‘ AND pid <> pg_backend_pid();

Output dari Syntax SQL diatas adalah akan menampilkan sederetan list session yang di terminate (dimatikan). Setelah itu kalian bisa bebas melakukan apapun terhadap database tersebut.

Catatan : Perintah SQL ini tidak mematikan service postgresql / merestart nya dan tidak mematikan / mendisconnect-kan aplikasi yang terhubung dengan database tersebut.

Leave a Reply

Your email address will not be published. Required fields are marked *