============================================================
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.