본문 바로가기
Data PipeLine/Debezium

[Debezium] Creation of replication slot failed 에러 조치

by 연습장이 2024. 11. 11.
728x90
반응형

에러내용

[2024-11-03 19:36:44,277] ERROR [june_test_01|task-0] WorkerSourceTask{id=june_test_01-0} Task threw an uncaught and unrecoverable exception. Task is being killed and will not recover until manually restarted (org.apache.kafka.connect.runtime.WorkerTask:212)
io.debezium.DebeziumException: Creation of replication slot failed
        at io.debezium.connector.postgresql.PostgresConnectorTask.start(PostgresConnectorTask.java:168)
        at io.debezium.connector.common.BaseSourceTask.start(BaseSourceTask.java:141)
        at org.apache.kafka.connect.runtime.AbstractWorkerSourceTask.initializeAndStart(AbstractWorkerSourceTask.java:280)
        at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:202)
        at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:259)
        at org.apache.kafka.connect.runtime.AbstractWorkerSourceTask.run(AbstractWorkerSourceTask.java:77)
        at org.apache.kafka.connect.runtime.isolation.Plugins.lambda$withClassLoader$1(Plugins.java:236)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.postgresql.util.PSQLException: ERROR: unsupported startup parameter: replication
        at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:693)
        at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:203)
        at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:258)
        at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:54)
        at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:263)
        at org.postgresql.Driver.makeConnection(Driver.java:443)
        at org.postgresql.Driver.connect(Driver.java:297)
        at io.debezium.jdbc.JdbcConnection.lambda$patternBasedFactory$1(JdbcConnection.java:243)
        at io.debezium.jdbc.JdbcConnection$ConnectionFactoryDecorator.connect(JdbcConnection.java:129)
        at io.debezium.jdbc.JdbcConnection.connection(JdbcConnection.java:875)
        at io.debezium.connector.postgresql.connection.PostgresReplicationConnection.pgConnection(PostgresReplicationConnection.java:542)
        at io.debezium.connector.postgresql.connection.PostgresReplicationConnection.createReplicationSlot(PostgresReplicationConnection.java:510)
        at io.debezium.connector.postgresql.PostgresConnectorTask.start(PostgresConnectorTask.java:161)
        ... 11 more
[2024-11-03 19:36:44,277] INFO [june_test_01|task-0] Stopping down connector (io.debezium.connector.common.BaseSourceTask:282)
[2024-11-03 19:36:44,278] INFO [june_test_01|task-0] Connection gracefully closed (io.debezium.jdbc.JdbcConnection:949)
[2024-11-03 19:36:44,278] INFO [june_test_01|task-0] Connection gracefully closed (io.debezium.jdbc.JdbcConnection:949)

 

원인

  사실 replication slot을 생성할 수 없다는 것은 현상이고 unsupported startup parameter: replication을 주목해야 한다. replication을 인지할 수가 없다는데 왜일까? 바로 커넥터 생성시 pgbouncer 포트를 사용하였기 때문이다.

  덕분에  wal_level 확인하고 커넥터용 pg 계정 권한 체크하고 삽질을 아주..

 

해결방법

pg server의 포트로 변경하도록 한다.

 

참고

Chatgpt에 물어보면 원론적인 얘기만 해서 아쉬웠다.

728x90
반응형