使用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同步任务的步骤如下:
- 创建插件。
- 创建PostgreSQL->RDS for PostgreSQL的同步任务。
- 同步任务完成之后,通过卸载插件即可删除hwdrs_ddl_info表,hwdrs_ddl_function函数及hwdrs_ddl_event触发器。