找回密码
 立即注册
首页 业界区 安全 PostgreSQL13中安装test_decoding插件

PostgreSQL13中安装test_decoding插件

靛尊 2025-6-1 20:56:31
test_decoding是PostgreSQL的一个逻辑解码插件,主要用于将WAL日志转换成可读的格式,方便进行逻辑复制或者数据变更捕获。常被用于配置逻辑复制或者使用类似Debezium这样的工具,用到这个插件。
问题概述

在PostgreSQL 13中安装test_decoding插件,已经安装了postgresql13-contrib包,但显示缺少test_decoding.control文件。
  1. postgres=# CREATE EXTENSION test_decoding;
  2. ERROR:  could not open extension control file "/usr/pgsql-13/share/extension/test_decoding.control": No such file or directory
  3. postgres=# CREATE EXTENSION test_decoding;
  4. ERROR:  could not find function "test_decoding_slot_create" in file "/usr/pgsql-13/lib/test_decoding.so"
复制代码
根据 rpm -ql postgresql13-contrib | grep test_decoding 的输出,系统只安装了 test_decoding.so 动态库文件,但缺少关键的 test_decoding.controltest_decoding--1.0.sql 文件。
  1. $ rpm -qa |grep postgresql13-contrib
  2. postgresql13-contrib-13.20-1PGDG.rhel7.x86_64
  3. $ rpm -ql postgresql13-contrib | grep test_decoding
  4. /usr/pgsql-13/lib/test_decoding.so
复制代码
PostgreSQL 的 test_decoding 插件需要以下文件:

  • 控制文件:test_decoding.control(位于 share/extension/)
  • SQL脚本:test_decoding--1.0.sql(位于 share/extension/)
  • 动态库:test_decoding.so(位于 lib/)
环境中缺少前两个文件,导致无法通过 CREATE EXTENSION 启用插件。
解决方案

手动创建缺失文件

  • 直接生成 test_decoding.control 和 test_decoding--1.0.sql 文件
[code]# 创建控制文件sudo tee /usr/pgsql-13/share/extension/test_decoding.control
您需要登录后才可以回帖 登录 | 立即注册