更新时间:2024-09-19 GMT+08:00

使用rds_hwdrs_ddl插件

简介

RDS PostgreSQL支持rds_hwdrs_ddl插件,该插件是为了通过创建触发器和函数实现PostgreSQL增量DDL同步时用户手动创建对象出现权限不足而实现的。

支持的版本说明

该插件支持从9.5到15的版本。

可通过以下SQL语句查询当前实例是否支持该插件:

SELECT * FROM pg_available_extension_versions WHERE name = 'rds_hwdrs_ddl';

RDS for PostgreSQL实例支持的插件,具体请参见支持的插件列表

插件安装与卸载

  • 安装插件
    SELECT control_extension('create', 'rds_hwdrs_ddl');

    在安装完该插件后,可以通过查看系统视图查看该插件创建的对象。

    -- 查看hwdrs_ddl_info表
    select relname, relowner::regrole, relacl from pg_class where relname = 'hwdrs_ddl_info';
        relname     | relowner |            relacl             
    ----------------+----------+-------------------------------
     hwdrs_ddl_info | root     | {root=arwdDxt/root,=ard/root}
    
    -- 查看hwdrs_ddl_function函数
    select proname, proowner::regrole from pg_proc where proname = 'hwdrs_ddl_function';
          proname       | proowner 
    --------------------+----------
     hwdrs_ddl_function | root
    (1 row)
    -- 查看hwdrs_ddl_event触发器
    select evtname, evtevent from pg_event_trigger;
         evtname     |    evtevent     
    -----------------+-----------------
     hwdrs_ddl_event | ddl_command_end
    (1 row)
  • 卸载插件
    SELECT control_extension('drop', 'rds_hwrds_ddl');

更多信息,请参见通过界面安装和卸载插件通过SQL命令安装和卸载插件

基本使用

该插件内部创建了通过创建触发器和函数实现PostgreSQL增量DDL同步所需的所有对象以及赋予了相应的权限,只需要安装插件即可进行同步任务。

使用该插件辅助完成DDL同步任务的步骤如下:

  1. 创建插件
  2. 创建PostgreSQL->RDS for PostgreSQL的同步任务
  3. 同步任务完成之后,通过卸载插件即可删除hwdrs_ddl_info表,hwdrs_ddl_function函数及hwdrs_ddl_event触发器。