Pernahkan anda mengalami Replikasi database PostgreSQL tiba –  tiba terputus sinkronisasi nya 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 :

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 di alihkan ke direktori Archive , selain itu masalah ini bisa juga terjadi karena WAL tersebut corrupt atau terhapus karena human 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 di copy 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 di recovery 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.


PT. Inovasi Informatika Indonesia (i3) juga membantu profesional TI Indonesia dalam mencapai potensi terbaiknya. Kami menyelenggarakan pelatihan teknologi dari beberapa principal terkemuka seperti CompTIA, ECCouncilEMC, 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 SourceVirtualisasiDatabase, dan IT Security. Semua training dan services ditangani oleh instructor dan konsultan yang berpengalaman dan memiliki sertifikasi internasional.
Informasi lebih lanjut tentang lengkap jadwal pelatihan dan layanan IT silahkan hubungi kami melalui info@i-3.co.id