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.