PostgreSQL 操作指南
- 切换 WAL 段WAL 与 Checkpoint
- 手动执行 CHECKPOINTWAL 与 Checkpoint
- 显示 WAL 大小和当前 LSNWAL 与 Checkpoint
- 显示归档延迟(尚未归档的 WAL)WAL 与 Checkpoint
- 添加新表空间存储
- 将表移动到另一个表空间存储
- 将索引移动到另一个表空间存储
- 查询数据库和表的大小存储
- 估算表膨胀存储
- 对指定表执行 VACUUM ANALYZE维护
- 执行激进的 VACUUM FREEZE维护
- 不加锁重建索引(REINDEX CONCURRENTLY)维护
- 为特定表调整 autovacuum维护
- 提高列的统计信息目标维护
- 修改参数并重新加载(ALTER SYSTEM)参数
- 为会话修改参数(SET)参数
- 显示参数的当前值参数
- 构建物理副本(pg_basebackup)复制
- 将副本提升为主库复制
- 显示复制延迟复制
- 创建和删除复制槽复制
- 建立逻辑复制的发布和订阅复制
- 终止后端进程(pg_terminate_backend)会话
- 取消正在运行的查询(pg_cancel_backend)会话
- 显示活动查询和阻塞查询会话
- 添加扩展扩展
- 列出已安装的扩展扩展
- 显示 Patroni 集群状态、拓扑和历史Patroni
- 使用 Patroni 执行计划内主备切换Patroni
- 使用 Patroni 执行手动故障转移Patroni
- 使用 Patroni 重建损坏的副本(reinit)Patroni
- 在 Patroni 中修改集群范围参数(edit-config)并应用待处理的重启Patroni
- 将 Patroni 置于维护模式并恢复(pause/resume)Patroni
- 检查 Patroni DCS(etcd/Consul)和 REST API 健康状况Patroni
- 为 pgBackRest 配置 WAL 归档(archive-push/archive-get)备份与 PITR
- 创建 pgBackRest stanza 并验证归档(stanza-create/check)备份与 PITR
- 使用 pgBackRest 进行全量、差异和增量备份备份与 PITR
- 显示 pgBackRest 备份目录和 WAL 归档范围(info)备份与 PITR
- 使用 pgBackRest 还原最新备份备份与 PITR
- 使用 pgBackRest 还原到某个时间点(PITR,--type=time)备份与 PITR
- 使用 pgBackRest delta 还原快速重建备库备份与 PITR
- 配置 pgBackRest 保留策略并运行 expire备份与 PITR
- 手动配置备库(standby.signal + primary_conninfo)复制
- 在备库上监控 WAL 接收和回放延迟(pg_stat_wal_receiver)复制
- 故障转移后使用 pg_rewind 将旧主库重新加入为副本复制
- 配置基于 quorum(ANY)或优先级(FIRST)的同步复制复制
- 监控复制槽保留的 WAL 并安全删除被遗弃的复制槽复制
- 限制复制槽可保留的 WAL(max_slot_wal_keep_size)复制
- 将表添加到发布并刷新订阅(REFRESH PUBLICATION)逻辑复制
- 监控逻辑复制(pg_stat_subscription、应用错误、复制槽延迟)逻辑复制
- 解决逻辑复制冲突(disable_on_error、SKIP)逻辑复制
- 在逻辑复制中将序列值同步到订阅端逻辑复制
- 删除订阅并清理发布端的孤立逻辑复制槽逻辑复制
- 使用 pg_upgrade --link 进行大版本升级(端到端操作手册)升级
- 使用逻辑复制实现接近零停机的大版本升级升级
- 显示 PgBouncer 连接池、统计信息和连接(SHOW POOLS/STATS/CLIENTS/SERVERS)PgBouncer
- 维护期间用 PgBouncer 挂起连接(PAUSE/RESUME)并重新加载配置(RELOAD)PgBouncer
- PgBouncer pool_mode 选择和基本容量规划PgBouncer
- 查找开销最大的查询(pg_stat_statements:总时间和平均时间)性能
- 查找造成磁盘 I/O、临时文件和 WAL 的查询(pg_stat_statements)性能
- 重置 pg_stat_statements 统计信息(全部或单个查询)性能
- 使用 auto_explain 记录慢查询的执行计划性能
- 使用 EXPLAIN (ANALYZE, BUFFERS, SETTINGS, WAL) 深入阅读计划性能
- 按 queryid 捕获计划回归(pg_stat_statements 快照对比)性能
- 检查并行查询容量和当前 worker 使用情况性能
- 测量 JIT 编译对查询时间的影响性能
- 构建阻塞树(找出根阻塞者)会话
- 按对象和锁模式详细检查锁等待(pg_locks)会话
- 查找长时间运行和 'idle in transaction' 的事务会话
- 有控制地批量终止长时间 'idle in transaction' 的会话会话
- 按角色和数据库设置 statement_timeout / lock_timeout会话
- 使用 lock_timeout 和重试安全地执行 DDL(避免锁队列)会话
- 测量连接使用情况相对于 max_connections 的比例会话
- 监控正在运行的 autovacuum/VACUUM 操作进度维护
- 测量事务 ID 回卷风险(按数据库和表的 XID 年龄)维护
- 找出阻止 VACUUM 清除死元组的 xmin horizon 持有者维护
- 使用 pgstattuple 测量表和索引膨胀维护
- 在不长时间加锁的情况下重组膨胀的表(pg_repack)维护
- 查找并清理 INVALID 索引维护
- 为相关列创建扩展统计信息(CREATE STATISTICS)维护
- 查找统计信息过期的表(ANALYZE 策略)维护
- 检查 visibility map 覆盖率和 Index Only Scan 效率维护
- 创建按月 range 分区的表(在循环中生成分区)分区
- 以短暂的锁将准备好的表挂载为分区(ATTACH PARTITION)分区
- 在不阻塞在线流量的情况下卸载旧分区(DETACH CONCURRENTLY)分区
- 默认分区陷阱:新分区因 'would be violated by some row' 而失败分区
- 验证分区裁剪是否生效(规划时和运行时)分区
- 使用 pg_partman 自动化分区创建和保留分区
- 构建最小权限角色层次(GRANT + ALTER DEFAULT PRIVILEGES)安全
- 使用行级安全实现租户隔离安全
- 验证 pg_hba.conf 规则顺序并安全地重新加载安全
- 启用 SSL/TLS 并验证加密连接(pg_stat_ssl)安全
- 从 md5 密码迁移到 scram-sha-256安全
- 使用 pgaudit 保留角色级和对象级审计日志安全
- 检查内存设置(shared_buffers、work_mem、maintenance_work_mem)参数
- 显示待重启的参数和配置文件错误参数
- 检查 checkpoint 行为(PG17+ 为 pg_stat_checkpointer,PG16 及更早为 pg_stat_bgwriter)参数
- 列出按 heap / index / TOAST 细分的表大小以及最大的索引存储
- 查找有待更新的扩展并进行更新扩展
- 使用 pg_stat_io 分析 I/O 来源(后端类型、对象、上下文)扩展