Datastream menggunakan log transaksi WAL (Write Ahead Log) PostgreSQL untuk membaca aliran PostgreSQL. Log disimpan dalam file WAL di server database. Setiap catatan dalam log WAL mewakili satu perubahan pada data sebenarnya di salah satu tabel dalam database.
Menetapkan parameter konfigurasi untuk file WAL PostgreSQL
Sebaiknya terapkan setelan konfigurasi berikut ke database PostgreSQL Anda:
max_slot_wal_keep_size: tetapkan parameter ini (hanya tersedia untuk PostgreSQL 13 dan yang lebih baru) untuk membatasi jumlah penyimpanan yang digunakan oleh slot replikasi. Hal ini sangat penting untuk transaksi yang berjalan lama, yang dalam kasus ekstrem, dapat menyebabkan ukuran file WAL menggunakan seluruh penyimpanan dan merusak database.statement_timeout: tetapkan parameter ini ke nilai yang dipilih untuk mengurangi latensi yang disebabkan oleh transaksi yang berjalan lama. Anda juga dapat menggunakanstatement_timeoutsebagai tindakan pencegahan alternatif untuk database yang tidak mendukungmax_slot_wal_keep_size.wal_sender_timeout: tetapkan parameter ini ke0(untuk menonaktifkan waktu tunggu) atau ke nilai yang lebih besar dari atau sama dengan 10 menit.
Jika Anda berencana membuat lebih dari 10 aliran, atau jumlah slot replikasi logis yang digunakan oleh resource lain selain jumlah aliran yang direncanakan melebihi 10, pastikan untuk mengubah parameter berikut:
max_replication_slots: tingkatkan nilai parameter ini, bergantung pada jumlah slot replikasi yang ditetapkan untuk database Anda (Anda memerlukan 1 slot replikasi per streaming). Anda hanya dapat menyetelmax_replication_slotssaat server dimulai.max_wal_senders: tingkatkan nilai parameter ini, sehingga lebih besar daripada nilai parametermax_replication_slots. Anda hanya dapat menyetelmax_wal_senderssaat memulai server.
Mengoptimalkan file log WAL
Untuk menghindari latensi tinggi pada aliran dan pertumbuhan cepat dalam ukuran file log WAL saat mereplikasi data dari sumber PostgreSQL, pertimbangkan untuk menerapkan tindakan pencegahan berikut:
- Hindari operasi besar yang berjalan lama karena dapat meningkatkan ukuran file WAL Anda secara signifikan.
- Gunakan tabel
UNLOGGEDatauTEMPORARYselama operasi batch. - Periksa konfigurasi WAL Anda dan pertimbangkan untuk mengurangi frekuensi titik pemeriksaan. Untuk mengetahui informasi selengkapnya, lihat Konfigurasi WAL
- Periksa operasi
DELETEyang besar dan pertimbangkan untuk menggantinya dengan operasiTRUNCATE. Tindakan ini dapat mengurangi data file WAL secara signifikan, tetapi Anda harus berhati-hati, karena Datastream tidak mereplikasi operasiTRUNCATE.
Langkah berikutnya
- Pelajari lebih lanjut PostgreSQL sebagai sumber.
- Pelajari lebih lanjut cara mengonfigurasi database PostgreSQL sumber.