pg_crash

向数据库进程随机发送信号模拟故障

概览

扩展包名版本分类许可证语言
pg_crash1.0ADMINBSD 3-ClauseC
ID扩展名BinLibLoadCreateTrustReloc模式
5210pg_crash-
相关扩展pg_snakeoil pg_cheat_funcs pg_savior pg_dirtyread pg_surgery pg_repack pg_rewrite pg_squeeze

版本

类型仓库版本PG 大版本包名依赖
EXTPIGSTY1.01817161514pg_crash-
RPMPIGSTY1.01817161514pg_crash_$v-
DEBPIGSTY1.01817161514postgresql-$v-pg-crash-
OS / PGPG18PG17PG16PG15PG14
el8.x86_64
el8.aarch64
el9.x86_64
el9.aarch64
el10.x86_64
el10.aarch64
d12.x86_64
PGDG 0.3
d12.aarch64
PGDG 0.3
d13.x86_64
PGDG 0.3
PGDG 0.3
PGDG 0.3
PGDG 0.3
PGDG 0.3
d13.aarch64
PGDG 0.3
PGDG 0.3
PGDG 0.3
PGDG 0.3
PGDG 0.3
u22.x86_64
PGDG 0.3
u22.aarch64
PGDG 0.3
u24.x86_64
PGDG 0.3
u24.aarch64
PGDG 0.3

构建

您可以使用 pig build 命令构建 pg_crash 扩展的 RPM / DEB 包:

pig build pkg pg_crash         # 构建 RPM / DEB 包

安装

您可以直接安装 pg_crash 扩展包的预置二进制包,首先确保 PGDGPIGSTY 仓库已经添加并启用:

pig repo add pgsql -u          # 添加仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

pig install pg_crash;          # 当前活跃 PG 版本安装
pig ext install -y pg_crash -v 18  # PG 18
pig ext install -y pg_crash -v 17  # PG 17
pig ext install -y pg_crash -v 16  # PG 16
pig ext install -y pg_crash -v 15  # PG 15
pig ext install -y pg_crash -v 14  # PG 14
dnf install -y pg_crash_18       # PG 18
dnf install -y pg_crash_17       # PG 17
dnf install -y pg_crash_16       # PG 16
dnf install -y pg_crash_15       # PG 15
dnf install -y pg_crash_14       # PG 14
apt install -y postgresql-18-pg-crash   # PG 18
apt install -y postgresql-17-pg-crash   # PG 17
apt install -y postgresql-16-pg-crash   # PG 16
apt install -y postgresql-15-pg-crash   # PG 15
apt install -y postgresql-14-pg-crash   # PG 14

预加载配置

shared_preload_libraries = 'pg_crash';

用法

pg_crash: 向随机进程发送随机信号

pg_crash 是一个混沌工程扩展,定期向 PostgreSQL 后端进程发送 kill 信号,适用于高可用和故障转移测试。必须添加到 shared_preload_libraries 中。

配置

添加到 postgresql.conf

shared_preload_libraries = 'pg_crash'

# 要发送的 POSIX 信号(空格分隔)
crash.signals = '1 2 3'

# 发送信号之间的延迟秒数
crash.delay = 30

信号参考

常用 POSIX 信号:1(SIGHUP)、2(SIGINT)、3(SIGQUIT)、9(SIGKILL)、15(SIGTERM)。

配置后重启服务器。后台工作进程将按照指定的间隔定期向随机后端进程发送配置的信号。


最后修改 2026-03-14: update extension metadata (953cbd0)