Pernahkan anda mengalami Replikasi database PostgreSQL tiba-tiba terputus sinkronisasinya dan ketika anda cek log database Standby nya terdapat LOG Error “ could not receive data from WAL stream: ERROR: requested WAL segment [WAL SEGMENT ID] has already been removed ”atau contohnya seperti gambar berikut :
Mencari Penyebab Error
Sebelum mengatasi masalah tersebut kita perlu check terlebih dahulu lag data antar Master dan Slave dengan cara menggunakan query “select now()-pg_last_xact_replay_timestamp() as replication_lag;” query tersebut berfungsi untuk menampilkan lamanya lag berdasarkan timestamp ketika anda menjalankan query tersebut dan timestamp ketika replikasi anda berhenti karena terjadi error, selain untuk melihat lag antara server Master dan Slave Anda juga dapat melihat kapan replikasi terputus dengan menggunakan query “select pg_last_xact_replay_timestamp();”. Jika lag nya sangat besar maka sudah dipastikan replikasi antara database Master dan Slave sudah tidak berjalan seperti sebagaimana mestinya.
Masalah yang terjadi ketika log menampilkan error seperti gambar di atas adalah pada saat database Slave meminta WAL yang dibutuhkan untuk replikasi kepada database Master dan WAL yang dibutuhkan oleh database slave tersebut sudah tidak tersedia di direktori WAL database Master. Hal tersebut dapat terjadi karena WAL yang berada di database Master telah dialihkan ke direktori Archive , selain itu masalah ini bisa juga terjadi karena WAL tersebut corrupt atau terhapus karena human error.
Cara Mengatasi Error
Cara mengatasi permasalahan tersebut adalah dengan cara copy WAL yang dibutuhkan oleh database slave dari database master secara manual. Ketika WAL yang dibutuhkan sudah berhasil dicopy kan maka secara otomatis database slave akan melakukan recovery melalui WAL tersebut. Jika recovery yang dilakukan sudah berhasil maka akan muncul log yang menerangkan bahwa WAL tersebut sudah berhasil direcovery seperti gambar berikut :
Jika setelah selesai melakukan recovery database slave sudah tidak memunculkan log error maka WAL yang dibutuhkan oleh database slave sudah terpenuhi. Ekesekusi kembali query “select now()-pg_last_xact_replay_timestamp() as replication_lag;” untuk melihat status lag, jika lag tidak tertinggal jauh atau hanya tertinggal beberapa millisecond maka replikasi sudah berjalan seperti semula.
i3 juga membantu profesional TI Indonesia dalam mencapai potensi terbaiknya. Kami menyelenggarakan pelatihan teknologi dari beberapa principal terkemuka seperti CompTIA, ECCouncil, EMC, Oracle, RedHat, dan VMware.
Selain sebagai tempat training IT yang banyak direkomendasikan oleh praktisi, i3 juga menawarkan jasa IT Services di 4 bidang utama keahlian: Open Source, Virtualisasi, Database, dan IT Security. Semua training dan services ditangani oleh instructor dan konsultan yang berpengalaman dan memiliki sertifikasi internasional.
Untuk kebutuhan manajemen data perusahaan Anda, Anda bisa dapat melihat informasi selengkapnya melalui solusi data management kami, atau kontak langsung tim sales kami untuk info lebih lanjut melalui halaman Contact Us.