[PostgreSQL] Replication Slot
Sejak PostgreSQL 9.4, ada parameter baru di Postgres yaitu max_replication_slot. Apa sih ini?
Replication slot adalah mekanisme dalam Postgres yang secara otomatis akan memastikan bahwa WAL files dari host master dijaga keberadaannya sampai semua standby server menerimanya. Dengan kata lain, slot replikasi akan memastikan bahwa WAL files yang ada di host master TIDAK dihapus sampai semua server standby sudah mengambilnya. Slot replikasi ini sebenarnya bisa digantikan dengan parameter wal_keep_segments dan archive_command, hanya saja cara kerja keduanya berbeda karena slot memastikan kebutuhan WAL files terpenuhi sedangkan wal_keep_segments menggunakan parameter jumlah file. Adapun archive_command memberikan beban kerja kepada server untuk memprosesnya.
Kelebihan lain slot replikasi adalah host master memastikan bahwa penghapusan baris/record tidak mengakibatkan konflik recovery dengan server standby, bahkan jika server standby dalam kondisi terputus untuk beberapa saat. Parameter hot_standby_feedback sebenarnya bisa menghalau konflik recovery, hanya saja ia tidak menjamin record yang terhapus pada host master dijaga karena standby putus koneksi. Parameter lain yang mungkin digunakan sebelum adanya slot replikasi adalah vacuum_defer_cleanup_age yang harus diset ke nilai cukup tinggi untuk menjamin standby terhindar dari konflik. Slot replikasi menghapuskan kedua masalah pada parameter sebelumnya.
Adapun karakter pada slot replikasi adalah berikut: