Mengatasi Error Replication Slot "Debezium" Sudah Ada di Debezium Kafka-Connect

Mengatasi Error Replication Slot “Debezium” Sudah Ada di Debezium Kafka-Connect

============================================================

Ketika Anda restart container Debezium Kafka-Connect atau mengdeploy instance lain, maka terjadi error berikut:

io.debezium.jdbc.JdbcConnectionException: ERROR: replication slot "debezium" already exists

Error ini disebabkan oleh adanya replikasi slot yang sudah ada dengan nama "debezium". Debezium mengharapkan replikasi slot yang unik untuk setiap koneksi, sehingga Anda harus memastikan bahwa tidak ada replikasi slot yang sudah ada sebelum menjalankan aplikasi.

Pada Dokumentasi Debezium Kafka-Connect, diperlihatkan dua konfigurasi opsi berikut:

  • slot.name: Mengatur nama replikasi slot. Anda dapat mengganti nama ini untuk membuat replikasi slot baru.
  • slot.drop_on_stop: Mengatur apakah replikasi slot akan dihapus ketika aplikasi berhenti.

Untuk mengatasi error ini, Anda harus mengkonfigurasi slot.name dengan nama yang unik dan tidak sama dengan nama replikasi slot yang sudah ada. Misalnya, Anda dapat mengganti nama "debezium" menjadi "debezium-new" seperti berikut:

{ 
 "name": "record-loader-connector",
 "config": { 
 "connector.class": "io.debezium.connector.postgresql.PostgresConnector",
 "database.dbname": "record_loader?ssl",
 "database.user": "postgres",
 "database.hostname": "redacted",
 "database.history.kafka.bootstrap.servers": "redacted",
 "database.history.kafka.topic": "dbhistory.recordloader",
 "database.password": "redacted",
 "name": "record-loader-connector",
 "database.server.name": "recordLoaderDb",
 "database.port": "20023",
 "table.whitelist": "*.sync",
 "slot.name": "debezium-new" // Ubah nama replikasi slot
 },
 "tasks": [ 
 { 
 "connector": "record-loader-connector",
 "task": 0
 }
 ],
 "type": "source"
}

Dengan mengkonfigurasi slot.name dengan nama yang unik, Anda dapat menjamin bahwa replikasi slot tidak ada sebelum menjalankan aplikasi.

Leave a comment