pglogical_ticker
pglogical复制延迟以秒计的精确视图
仓库
enova/pglogical_ticker
https://github.com/enova/pglogical_ticker
源码
pglogical_ticker-1.4.1.tar.gz
pglogical_ticker-1.4.1.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pglogical_ticker | 1.4.1 | ETL | PostgreSQL | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 9510 | pglogical_ticker | 否 | 是 | 是 | 是 | 否 | 否 | pglogical_ticker |
| 相关扩展 | pglogical pglogical_origin pgl_ddl_deploy pg_failover_slots pgactive wal2json decoderbufs repmgr decoder_raw |
|---|
require a patch on el, pg18 break on el
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PGDG | 1.4.1 | 1817161514 | pglogical_ticker | pglogical |
| RPM | PIGSTY | 1.4.1 | 1817161514 | pglogical_ticker_$v | pglogical_$v |
| DEB | PGDG | 1.4.1 | 1817161514 | postgresql-$v-pglogical-ticker | postgresql-$v-pglogical |
构建
您可以使用 pig build 命令构建 pglogical_ticker 扩展的 RPM / DEB 包:
pig build pkg pglogical_ticker # 构建 RPM / DEB 包
安装
您可以直接安装 pglogical_ticker 扩展包的预置二进制包,首先确保 PGDG 仓库已经添加并启用:
pig repo add pgdg -u # 添加 PGDG 仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install pglogical_ticker; # 当前活跃 PG 版本安装
pig ext install -y pglogical_ticker -v 18 # PG 18
pig ext install -y pglogical_ticker -v 17 # PG 17
pig ext install -y pglogical_ticker -v 16 # PG 16
pig ext install -y pglogical_ticker -v 15 # PG 15
pig ext install -y pglogical_ticker -v 14 # PG 14
dnf install -y pglogical_ticker_18 # PG 18
dnf install -y pglogical_ticker_17 # PG 17
dnf install -y pglogical_ticker_16 # PG 16
dnf install -y pglogical_ticker_15 # PG 15
dnf install -y pglogical_ticker_14 # PG 14
apt install -y postgresql-18-pglogical-ticker # PG 18
apt install -y postgresql-17-pglogical-ticker # PG 17
apt install -y postgresql-16-pglogical-ticker # PG 16
apt install -y postgresql-15-pglogical-ticker # PG 15
apt install -y postgresql-14-pglogical-ticker # PG 14
预加载配置:
shared_preload_libraries = 'pglogical, pglogical_ticker';
创建扩展:
CREATE EXTENSION pglogical_ticker CASCADE; -- 依赖: pglogical
用法
一个后台工作进程,定期更新 ticker 表以从提供者角度测量 pglogical 复制延迟。
启用
添加到 postgresql.conf:
shared_preload_libraries = 'pglogical,pglogical_ticker'
pglogical_ticker.database = 'mydb'
pglogical_ticker.naptime = 10 -- tick 间隔(秒,默认 10)
在提供者和所有订阅者上安装:
CREATE EXTENSION pglogical_ticker;
部署 Ticker 表
仅在提供者上运行(通过 pglogical 传播到订阅者):
-- 部署 ticker 表(每个复制集一个)
SELECT pglogical_ticker.deploy_ticker_tables();
-- 将 ticker 表添加到复制
SELECT pglogical_ticker.add_ticker_tables_to_replication();
用于级联复制:
SELECT pglogical_ticker.deploy_ticker_tables('my_cascaded_set_name');
SELECT pglogical_ticker.add_ticker_tables_to_replication('my_cascaded_set_name');
手动 Tick
SELECT pglogical_ticker.tick();
启动 Ticker
如果在 shared_preload_libraries 中配置,ticker 在服务器启动时自动启动。否则:
SELECT pglogical_ticker.launch();
-- 或者,仅在复制集表存在时启动
SELECT pglogical_ticker.launch_if_repset_tables();
查看复制延迟
在提供者上:
SELECT * FROM pglogical_ticker.all_repset_tickers();
在订阅者上:
SELECT * FROM pglogical_ticker.all_subscription_tickers();
配置
pglogical_ticker.database- 运行 ticker 的数据库pglogical_ticker.naptime- tick 间隔(秒,默认 10)pglogical_ticker.restart_time- 自动重启前等待秒数(默认 10,-1 禁用)