PG
Postgres is good —— Vonng
关于PostgreSQL应用开发,监控管理 与 内核架构 的 文章与 笔记.
Github Repo | Github Pages | Pigsty | 官方站点 | 测试沙箱 | 关于作者
Post / 文章
PostgreSQL
行业认知
技术文章
概念辨析
Application / 应用开发
应用案例
功能实现
SQL特性
- 并发异常那些事
- PostgreSQL中的锁
- PostgreSQL中的触发器
- PostgreSQL中的序列号
- PostgreSQL中的LOCALE
- PostgreSQL复制标识详解
- PostgreSQL特色:Excluded约束
- PostgreSQL特色:Distinct On语法
- PostgreSQL函数易变性分类
- PostgreSQL 12新特性:JSON Path
- PostGIS:DE9IM 空间相交模型
语言驱动
- Go & PG:数据库使用教程
- PostgreSQL驱动横向评测:Go语言
- PostgreSQL Golang驱动介绍:pgx
- PostgreSQL Golang驱动介绍:go-pg
- PostgreSQL Python驱动介绍:psycopg2
- psycopg2的进阶包装,让Python访问Pg更敏捷。
- PostgreSQL Node.JS驱动介绍:node-postgres
Administration / 监控管理
规约习惯
日常操作
监控系统
- Pigsty监控系统架构
- Pigsty监控系统使用说明
- PostgreSQL的KPI
- 监控PG中表的大小
- 监控WAL生成速率
- 关系膨胀:监控与处理
- PG中表占用磁盘空间
- 使用pg_repack整理表与索引
- 监控表:空间,膨胀,年龄,IO
- 监控索引:空间,膨胀,重复,闲置
- 确保表没有访问
升级迁移
- PostgreSQL逻辑复制不停机迁移方案
- PostgreSQL原地大版本升级流程
- PostgreSQL 10.0 与先前版本的不兼容性统计
- 垂直拆分,分库分表:指导原则
- 水平拆分与分片:减数分裂方法
- 业务层逻辑复制实现不停机切换(Before 10)
备份恢复
- PostgreSQL备份与恢复概览
- PostgreSQL复制延迟问题
- Postgres逻辑复制详解
- 日志传输副本:WAL段复制
- 备份:机制、流程、问题、方法
- 复制拓扑设计:同步、异步、法定人数
- 逻辑备份:pg_dump
- PITR生产实践
运维调优
- PostgreSQL内存相关参数调谐
- PostgreSQL检查点相关参数调谐
- PostgreSQL自动清理相关参数调谐
- 操作系统内核参数调优
- 维护表:VACUUM配置、问题、原理与实践。
- 重建索引:细节与注意事项
- ErrorTracking系统设计概览
故障档案
- 故障档案:移走负载导致的性能恶化故障
- pg_dump导致的血案
- PostgreSQL数据页损坏修复
- 故障档案:事务ID回卷故障
- 故障档案:pg_repack导致的故障
- 故障档案:从删库到跑路
- Template0的清理与修复
- 内存错误导致操作系统丢弃页面缓存
- 查询参数溢出BIGINT范围导致的雪崩
- 磁盘写满故障
- 救火:杀查询的正确姿势
- 存疑事务:提交日志损坏问题分析与修复
- 客户端大量无超时查询堆积导致故障
- 慢查询堆积导致的雪崩,定位与排查
- 硬件故障导致的机器重启
- Docker同一数据目录启动两个实例导致数据损坏
- 级联复制的配置问题
- NOFILE配置导致文件描述符不够用
- NTP时间漂移导致的故障
Architecture / 内核架构
源码细节
- PostgresSQL变更数据捕获
- PostgreSQL前后端协议概述
- PostgreSQL的逻辑结构与物理结构
- PostgreSQL的事务隔离等级
- 并发创建索引的实现方式(CREATE INDEX CONCURRENTLY)
- GIN索引的实现原理
- B树索引的原理与实现细节
- 查询处理原理
- JOIN类型及其内部实现
- VACUUM原理
- WAL:PostgreSQL WAL与检查点
- 流复制原理与实现细节
- 二阶段提交:原理与实践
- R树原理与实现细节
- PostgreSQL数据页结构
- FDW的结构与编写
- SSD Internal
- GIN索引关键词匹配的时间复杂度为什么是O(n2)
FDW
Gist / 笔记
用于解决某些特定问题的代码速查片段,临时笔记
PGSQL工具
- [
psql
命令速查] - [
pg_dump
命令速查] - [
pg_basebackup
命令速查] - psqlrc 配置基础
- 性能压测:
pgbench
- 性能压测:
sysbench
- 组合使用psql与bash
- pgbouncer安装
- pgbouncer配置文件
- pgbouncer使用方法
- PgAdmin安装
操作系统工具
- 查看系统任务 —— top
- 查看内存使用 —— free
- 查看虚拟内存使用 —— vmstat
- 查看IO —— iostat
- 测试磁盘性能 ——
fio
- 批量配置SSH免密登录
- 查看硬盘信息 ——
smartctl
- 查看网卡信息 ——
ethtool
- 查看NUMA信息 ——
numactl
- 查看时间信息 ——
timedatectl
- 调整优化方案 ——
tuned-adm
临时笔记
- 逻辑复制常用命令速查
- 使用Githook实现远程网站部署
- 自动申请Let's Encrypt SSL证书
- 找出并清除表中重复的记录
- 为分区表添加索引
- 利用统计信息分批实现大表全表更新
- 如何在LB后面获取客户端真实IP
- PostgreSQL 14 Release Note