debezium 无法使用带有默认插件 pgoutput 的 postgres 11 访问文件 "decoderbufs"
debezium could not access file "decoderbufs" using postgres 11 with default plugin pgoutput
我是 kafka 的新手,我正在尝试使用 debezium postgres 连接器。
但即使将 postgres 版本 11 与标准插件一起使用,我也会收到此错误:
org.apache.kafka.connect.errors.ConnectException: org.postgresql.util.PSQLException: 错误: 无法访问文件 "decoderbufs": 没有那个文件或目录
至 运行 kafka / debezium 我正在使用 fast-data-dev docker 的图像,如下所示
# this is our kafka cluster.
kafka-cluster:
image: landoop/fast-data-dev:latest
environment:
ADV_HOST: 127.0.0.1 # Change to 192.168.99.100 if using Docker Toolbox
RUNTESTS: 0 # Disable Running tests so the cluster starts faster
ports:
- 2181:2181 # Zookeeper
- 3030:3030 # Landoop UI
- 8081-8083:8081-8083 # REST Proxy, Schema Registry, Kafka Connect ports
- 9581-9585:9581-9585 # JMX Ports
- 9092:9092 # Kafka Broker
在 运行ning 之后,我可以打开我的本地主机:3030 来选择 debezium 连接器,我是这样配置的:
并且我在 11.5 版中使用 aws postgres rds
看了好几个使用wal2json的教程,但是在rds.extensions里面没有找到,也没有看到添加的方法。无论如何,从版本 10 开始,debezium 可以使用 pgoutput 并且显然不需要配置。
将rds.logical_replication属性设为1
当执行 SHOW wal_level;在终端我看到它 returns 合乎逻辑
在文档中说你必须设置 max_wal_senders = 1 和 max_replication_slots = 1
放入 rds 最小 is 5, so I left the default that
是 10
我没有定义 REPLICATION 角色,因为根据我在 rds 中的理解,没有办法
在此图中您可以看到使用的版本是 11.5
但是我得到了如下所示的错误
您还没有将 "plugin.name" 属性 设置为 "pgoutput" 在您的 Debezium connector properties 中,您已经知道了。但是这个答案是为那些不知道在哪里设置这个选项的人准备的,为了更清楚。
在以下连接器属性中:
因为你没有设置 plugin.name 选项,它采用默认值 decoderbufs 这就是为什么你出现以下错误:
将 "plugin.name" 显式设置为 "pgoutput" 应该可以解决问题。
{
"connector.class": "io.debezium.connector.postgresql.PostgresConnector",
"database.user": "postgres",
"database.dbname": "xxxxx",
"tasks.max": "1",
"database.hostname": "xxxx.rds.amazonaws.com",
"database.password": "xxxx",
"database.server.name": "database-1",
"database.port": "5432",
"plugin.name": "pgoutput" --> this property
}
我是 kafka 的新手,我正在尝试使用 debezium postgres 连接器。 但即使将 postgres 版本 11 与标准插件一起使用,我也会收到此错误: org.apache.kafka.connect.errors.ConnectException: org.postgresql.util.PSQLException: 错误: 无法访问文件 "decoderbufs": 没有那个文件或目录
至 运行 kafka / debezium 我正在使用 fast-data-dev docker 的图像,如下所示
# this is our kafka cluster.
kafka-cluster:
image: landoop/fast-data-dev:latest
environment:
ADV_HOST: 127.0.0.1 # Change to 192.168.99.100 if using Docker Toolbox
RUNTESTS: 0 # Disable Running tests so the cluster starts faster
ports:
- 2181:2181 # Zookeeper
- 3030:3030 # Landoop UI
- 8081-8083:8081-8083 # REST Proxy, Schema Registry, Kafka Connect ports
- 9581-9585:9581-9585 # JMX Ports
- 9092:9092 # Kafka Broker
在 运行ning 之后,我可以打开我的本地主机:3030 来选择 debezium 连接器,我是这样配置的:
并且我在 11.5 版中使用 aws postgres rds 看了好几个使用wal2json的教程,但是在rds.extensions里面没有找到,也没有看到添加的方法。无论如何,从版本 10 开始,debezium 可以使用 pgoutput 并且显然不需要配置。
将rds.logical_replication属性设为1
当执行 SHOW wal_level;在终端我看到它 returns 合乎逻辑
在文档中说你必须设置 max_wal_senders = 1 和 max_replication_slots = 1
放入 rds 最小 is 5, so I left the default that
是 10
我没有定义 REPLICATION 角色,因为根据我在 rds 中的理解,没有办法
在此图中您可以看到使用的版本是 11.5
但是我得到了如下所示的错误
您还没有将 "plugin.name" 属性 设置为 "pgoutput" 在您的 Debezium connector properties 中,您已经知道了。但是这个答案是为那些不知道在哪里设置这个选项的人准备的,为了更清楚。
在以下连接器属性中:
因为你没有设置 plugin.name 选项,它采用默认值 decoderbufs 这就是为什么你出现以下错误:
将 "plugin.name" 显式设置为 "pgoutput" 应该可以解决问题。
{
"connector.class": "io.debezium.connector.postgresql.PostgresConnector",
"database.user": "postgres",
"database.dbname": "xxxxx",
"tasks.max": "1",
"database.hostname": "xxxx.rds.amazonaws.com",
"database.password": "xxxx",
"database.server.name": "database-1",
"database.port": "5432",
"plugin.name": "pgoutput" --> this property
}