pg_drop_events
记录删表删列删视图的事务号,辅助PITR确定时间点
仓库
bolajiwahab/pg_drop_events
https://github.com/bolajiwahab/pg_drop_events
源码
pg_drop_events-0.1.0.tar.gz
pg_drop_events-0.1.0.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pg_drop_events | 0.1.0 | ADMIN | PostgreSQL | SQL |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 5850 | pg_drop_events | 否 | 否 | 否 | 是 | 否 | 否 | public |
| 相关扩展 | plpgsql table_log safeupdate pg_strict pg_savior pgmemento pgaudit pgelog block_copy_command pg_kpart data_historization |
|---|
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 0.1.0 | 1817161514 | pg_drop_events | plpgsql |
| RPM | PIGSTY | 0.1.0 | 1817161514 | pg_drop_events_$v | - |
| DEB | PIGSTY | 0.1.0 | 1817161514 | postgresql-$v-pg-drop-events | - |
构建
您可以使用 pig build 命令构建 pg_drop_events 扩展的 RPM / DEB 包:
BASH
安装
您可以直接安装 pg_drop_events 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
BASH
使用 pig 或者是 apt/yum/dnf 安装扩展:
安装
BASH
pig
BASH
dnf
BASH
apt
BASH
创建扩展:
SQL
用法
pg_drop_events: 记录 DROP TABLE、DROP COLUMN、DROP MATERIALIZED VIEW 语句的事务 ID
pg_drop_events 扩展使用事件触发器自动记录对表、列和物化视图的 DROP 操作详情。记录的信息可用于意外删除后的时间点恢复(PITR)。
跟踪的操作
DROP TABLEDROP COLUMN(通过ALTER TABLE)DROP MATERIALIZED VIEW
记录的信息
| 列 | 描述 |
|---|---|
pid | 进程标识符 |
usename | 执行命令的数据库用户 |
query | SQL 语句 |
xact_id | 事务标识符 |
wal_position | 预写日志位置 |
objid | 对象标识符 |
object_name | 被删除对象的完全限定名称 |
object_type | 对象分类(表、表列等) |
xact_time | 事务时间戳 |
示例
SQL
时间点恢复
记录的数据直接映射到 PostgreSQL 恢复参数:
| pg_drop_events 列 | 恢复参数 |
|---|---|
xact_id | recovery_target_xid |
xact_time | recovery_target_time |
wal_position | recovery_target_lsn |
在 postgresql.conf 或 recovery.conf 中使用这些值将数据库恢复到意外删除之前的时间点。