Mengoptimalkan Streaming Replication dengan Menyimpan Arsip WAL dan Mengaktifkan Slot Replication

Mengoptimalkan Streaming Replication dengan Menyimpan Arsip WAL dan Mengaktifkan Slot Replication

Streaming Replication adalah fitur PostgreSQL yang memungkinkan Anda untuk menginisialisasi replikasi data dari database utama (master) ke database pendamping (standby). Dalam artikel ini, kami akan membahas cara membuat streaming replication menggunakan arsip WAL (Write-Ahead Log) dan slot replication.

Mengoptimalkan Arsip WAL

Arsip WAL berisi rekaman-write-ahead log yang digunakan oleh PostgreSQL untuk mengamankan data. Untuk mengoptimalkan penggunaan arsip WAL, Anda dapat mengaktifkan fitur "archive" pada database standby. Cara ini memungkinkan Anda untuk menyimpan arsip WAL yang tidak diperlukan, sehingga meningkatkan kinerja database.

Parameter yang perlu diatur adalah archive_cleanup_command. Contohnya:

archive_cleanup_command = 'pg_archivecleanup /opt/pg_archives/ %r'

Mengaktifkan Slot Replication

Slot replication memungkinkan Anda untuk menginisialisasi replikasi data dari database utama ke database standby. Slot ini memungkinkan Anda untuk mengatur nama slot dan memastikan bahwa data tidak hilang ketika database standby terputus.

Anda dapat membuat slot replication menggunakan perintah pg_basebackup atau secara manual dengan menggunakan perintah SQL.

postgres=# SELECT * FROM pg_create_physical_replication_slot('streaming_slot');
 slot_name | lsn
-------------+-----
 streaming_slot |

Menginisialisasi Replikasi Streaming

Untuk menginisialisasi replikasi streaming, Anda perlu mengaktifkan parameter primary_slot_name pada database standby.

primary_slot_name = 'streaming_slot'

Mengaktifkan Modus Sinkron

Modus sinkron memungkinkan Anda untuk memastikan bahwa semua perubahan data yang dilakukan oleh transaksi telah ditransfer ke satu atau lebih server standby sinkron.

Anda dapat menginisialisasi modus sinkron dengan mengatur parameter synchronous_commit dan synchronous_standby_names.

synchronous_commit = on
synchronous_standby_names = 's1'

Mengawasi Kinerja Database

Dalam proses replikasi streaming, Anda perlu memantau kinerja database untuk memastikan bahwa data dapat ditransfer dengan cepat dan akurat.

Anda dapat menggunakan query berikut untuk memantau kinerja database:

postgres=# select application_name, client_addr,state, sysnc_state, reply_time from pg_stat_replication;

Menggunakan Database Standby untuk Offloading Query

Database standby dapat digunakan untuk offloading query-read-only (SELECT) dari database utama, sehingga meningkatkan kinerja database dan memungkinkan Anda untuk melakukan load balancing.

Namun, perlu diingat bahwa perlu dilakukan tes sebelum deployment pada environment produksi.