pg_readonly
将集群设置为只读
仓库
pierreforstmann/pg_readonly
https://github.com/pierreforstmann/pg_readonly
源码
pg_readonly-1.0.5.tar.gz
pg_readonly-1.0.5.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pg_readonly | 1.0.6 | ADMIN | PostgreSQL | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 5120 | pg_readonly | 否 | 是 | 是 | 是 | 否 | 否 | - |
Latest PGDG RPM/catalog version is 1.0.6; PIGSTY DEB and source remain on 1.0.5.
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | MIXED | 1.0.6 | 1817161514 | pg_readonly | - |
| RPM | PGDG | 1.0.6 | 1817161514 | pg_readonly_$v | - |
| DEB | PIGSTY | 1.0.5 | 1817161514 | postgresql-$v-pg-readonly | - |
构建
您可以使用 pig build 命令构建 pg_readonly 扩展的 DEB 包:
BASH
安装
您可以直接安装 pg_readonly 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
BASH
使用 pig 或者是 apt/yum/dnf 安装扩展:
安装
BASH
pig
BASH
dnf
BASH
apt
BASH
预加载配置:
BASH
创建扩展:
SQL
用法
pg_readonly 在 SQL 层面将 PostgreSQL 集群中的所有数据库设置为只读模式。必须通过 shared_preload_libraries 加载。只读状态在共享内存中通过全局标志管理(重启后不保留)。
检查只读状态
SQL
设置集群为只读
SQL
在只读模式下,SELECT 语句被允许(除非调用了写入函数),但 DML(INSERT、UPDATE、DELETE)、DDL(包括 TRUNCATE)和 DCL(GRANT、REVOKE)被阻止:
SQL
注意:set_cluster_readonly() 会终止所有打开的事务。
设置集群为可读写
SQL
注意:后台进程(checkpointer、bgwriter、walwriter、autovacuum)在只读模式下继续运行——限制仅在 SQL 语句层面。