Skip to content

Commit 2a19385

Browse files
committed
routine update
1 parent 8017288 commit 2a19385

File tree

110 files changed

+703
-1152
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

110 files changed

+703
-1152
lines changed

Diff for: README.md

+81-106
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
### [**行业认知**](post/industry/)
2222
- [认识互联网](post/industry/understand-the-internet.md)
2323
- [互联网之殇](post/industry/obstacle-of-internet.md)
24-
- [互联网之冬](post/industry/winter-of-the-internet.md)
2524

2625

2726
### **技术文章**
@@ -39,60 +38,39 @@
3938

4039
--------------------
4140

42-
43-
4441
## Application / 应用开发
4542

4643
### **应用案例**
4744

4845
- [KNN问题极致优化:以找出最近餐馆为例](app/knn-optimize.md)
49-
- [PostGIS高效解决行政区划归属查询问题](app/adcode-geodecode.md)
50-
- [5分钟用PgSQL实现推荐系统](app/pg-recsys.md)
46+
- [PostGIS高效解决行政区划归属查询问题](app/adcode.md)
47+
- [5分钟用PgSQL实现推荐系统](app/recsys-itemcf.md)
5148
- [新冠疫情数据大盘](http://demo.pigsty.cc/d/covid-overview)
5249
- [基于Pigsty呈现NOAA ISD数据集](http://demo.pigsty.cc/d/isd-overview)
53-
- 个人博客网站数据库设计
54-
- 使用PG监控PG:元数据库设计
55-
- 标签管理系统元数据库设计
56-
- 实时用户画s像系统数据库设计
57-
- PostGraphQL:使用自动生成的API解放生产力
5850

5951
### **功能实现**
6052

6153
- [IP归属地查询的高效实现](app/geoip.md)
6254
- [PostgreSQL高级模糊查询](app/fuzzymatch.md)
6355
- [UUID:性质、原理、与应用](app/uuid.md)
64-
- [PostgreSQL CDC: 变更数据捕获](post/pg-cdc.md)
65-
- [使用审计触发器自动记录数据变更](app/audit-change.md)
66-
- [实现基于通知触发器的逻辑复制](app/notify-trigger-based-repl.md)
67-
- 使用三维/四维点存储时空轨迹
68-
- 连接池:连接数背后的问题
69-
- QPS/TPS:一个容易误解的指标
70-
- 自动化后端:PostGraphQL, PgRest, PostgRest横向对比
71-
- postgres_fdw应用:管理远程数据库
56+
- [PostgreSQL CDC: 变更数据捕获](app/cdc.md)
57+
- [使用审计触发器自动记录数据变更](app/trigger-audit.md)
58+
- [实现基于通知触发器的逻辑复制](app/trigger-notify.md)
7259

7360

7461
### **SQL特性**
7562

7663
- [并发异常那些事](post/concurrent-control.md)
77-
- [PostgreSQL中的锁](app/pg-lock.md)
78-
- [PostgreSQL中的触发器](app/pg-trigger.md)
79-
- [PostgreSQL中的LOCALE](app/pg-locale.md)
64+
- [PostgreSQL中的锁](app/sql-lock.md)
65+
- [PostgreSQL中的触发器](app/sql-trigger.md)
66+
- [PostgreSQL中的序列号](app/sql-sequence.md)
67+
- [PostgreSQL中的LOCALE](app/sql-locale.md)
68+
- [PostgreSQL复制标识详解](app/sql-replica-identity.md)
8069
- [PostgreSQL特色:Excluded约束](app/sql-exclude.md)
8170
- [PostgreSQL特色:Distinct On语法](app/sql-distinct-on.md)
8271
- [PostgreSQL函数易变性分类](app/sql-func-volatility.md)
83-
- [PostgreSQL 12新特性:JSON Path](app/jsonpath.md)
72+
- [PostgreSQL 12新特性:JSON Path](app/sql-jsonpath.md)
8473
- [PostGIS:DE9IM 空间相交模型](app/gis-de9im.md)
85-
- PostgreSQL中的时间与时区
86-
- Sequence的方方面面
87-
- 常见索引类型及其应用场景
88-
- PostgreSQL中的JOIN
89-
- 子查询还是CTE?
90-
- LATERAL JOIN
91-
- DISTINCT ON子句与除重
92-
- 递归查询
93-
- Advanced SQL
94-
- Pl/PgSQL快速上手
95-
- 函数的权限管理
9674

9775

9876
### **语言驱动**
@@ -106,20 +84,6 @@
10684
- PostgreSQL Node.JS驱动介绍:node-postgres
10785

10886

109-
### **工具组件**
110-
111-
- [使用Wireshark抓包分析PostgreSQL协议](tool/wireshark-capture.md)
112-
- [psqlrc使用基础](admin/psql.md)
113-
- [批量配置SSH免密登录](admin/ssh-add-key.md)
114-
- [组合使用psql与bash](admin/psql-and-bash.md)
115-
- [sysbench](tool/sysbench.md)
116-
- [pgbouncer安装](tool/pgbouncer-install.md)
117-
- [pgbouncer配置文件](tool/pgbouncer-config.md)
118-
- [pgbouncer使用方法](tool/pgbouncer-usage.md)
119-
- pgpool的应用方式
120-
- 查看硬盘信息——smartctl
121-
- 查看网卡信息——ethtool
122-
12387
----------------
12488

12589

@@ -128,13 +92,19 @@
12892
### **规约习惯**
12993

13094
- [PostgreSQL开发规约](post/pg-convention.md)
131-
- PostgreSQL集群扩缩容规约
132-
- PostgreSQL数据库模式变更规约
95+
- [PostgreSQL集群扩缩容规约](admin/rule-scaling.md)
13396
- [数据库集群管理概念与实体命名规范](admin/entity-and-naming.md)
13497

98+
99+
### **日常操作**
100+
101+
- [修改PostgreSQL配置](admin/alter-config.md)
102+
- [PostgreSQL 权限管理](admin/privilege.md)
103+
104+
135105
### **监控系统**
136106
- [Pigsty监控系统架构](mon/pigsty-overview.md)
137-
- [Pigsty监控系统使用说明](mon/pigsty-introduction.md)
107+
- [Pigsty监控系统使用说明](https://pigsty.cc/#/zh-cn/c-arch)
138108
- [PostgreSQL的KPI](mon/pg-load.md)
139109
- [监控PG中表的大小](mon/size.md)
140110
- [监控WAL生成速率](mon/wal-rate.md)
@@ -145,42 +115,18 @@
145115
- [监控索引:空间,膨胀,重复,闲置](mon/index-bloat.md)
146116
- [确保表没有访问](mon/table-have-access.md)
147117

148-
149-
### **架构设计**
150-
151-
- [PostgreSQL安装部署](admin/install.md)
152-
- [PostgreSQL日志配置](admin/logging.md)
153-
- [PostgreSQL复制方案](admin/replication-plan.md)
154-
- [PostgreSQL备份方案](admin/backup-plan.md)
155-
- [PostgreSQL报警系统](admin/alert-overview.md)
156-
- [PostgreSQL变更管理方案](admin/mange-change.md)
157-
- [PostgreSQL目录设计](admin/directory-design.md)
158-
- [PostgreSQL配置修改方式](admin/config.md)
159-
- [PostgreSQL客户端认证](admin/hba-auth.md)
160-
- [PostgreSQL角色权限](admin/privilege.md)
161-
- [PostgreSQL监控系统]((mon/overview.md))
162-
163-
### **安装部署**
164-
165-
- [安装TimescaleDB](admin/install-timescale.md)
166-
- [安装PipelineDB](admin/install-pipelinedb.md)
167-
- [安装Citus]()
168-
- [PgAdmin Server 安装](tool/pgadmin-install.md)
169-
- [PgBackRest 中文文档](admin/pgbackrest.md)
170-
- [PgBackRest2中文文档](tool/pgbackrest.md)
171-
- QGIS安装与简单使用
172-
173118
### **升级迁移**
174119
- PostgreSQL逻辑复制不停机迁移方案
175120
- PostgreSQL原地大版本升级流程
176-
- [飞行中换引擎:PostgreSQL不停机数据迁移](admin/migration-without-downtime.md)
177121
- PostgreSQL 10.0 与先前版本的不兼容性统计
178122
- 垂直拆分,分库分表:指导原则
179123
- 水平拆分与分片:减数分裂方法
124+
- [业务层逻辑复制实现不停机切换(Before 10)](admin/migration-without-downtime.md)
180125

181126
### **备份恢复**
182127
- [PostgreSQL备份与恢复概览](admin/backup-overview.md)
183128
- [PostgreSQL复制延迟问题](admin/replication-delay.md)
129+
- [Postgres逻辑复制详解](admin/logical-replication.md)
184130
- 日志传输副本:WAL段复制
185131
- 备份:机制、流程、问题、方法
186132
- 复制拓扑设计:同步、异步、法定人数
@@ -196,15 +142,15 @@
196142
- 重建索引:细节与注意事项
197143
- ErrorTracking系统设计概览
198144

199-
### [**故障档案**](admin/pit/)
200-
- [故障档案:移走负载导致的性能恶化故障](admin/pit/download-failure.md)
201-
- [pg_dump导致的血案](admin/pit/search_path.md)
202-
- [PostgreSQL数据页损坏修复](admin/pit/page-corruption.md)
203-
- [故障档案:事务ID回卷故障](admin/pit/xid-wrap-around.md)
204-
- [故障档案:pg_repack导致的故障](admin/pit/pg_repack.md)
205-
- [故障档案:从删库到跑路](admin/pit/drop-database.md)
206-
- [Template0的清理与修复](admin/pit/vacuum-template0.md)
207-
- [内存错误导致操作系统丢弃页面缓存](admin/pit/drop-cache.md)
145+
### [**故障档案**](pit/)
146+
- [故障档案:移走负载导致的性能恶化故障](pit/download-failure.md)
147+
- [pg_dump导致的血案](pit/search_path.md)
148+
- [PostgreSQL数据页损坏修复](pit/page-corruption.md)
149+
- [故障档案:事务ID回卷故障](pit/xid-wrap-around.md)
150+
- [故障档案:pg_repack导致的故障](pit/pg_repack.md)
151+
- [故障档案:从删库到跑路](pit/drop-database.md)
152+
- [Template0的清理与修复](pit/vacuum-template0.md)
153+
- [内存错误导致操作系统丢弃页面缓存](pit/drop-cache.md)
208154
- 磁盘写满故障
209155
- 救火:杀查询的正确姿势
210156
- 存疑事务:提交日志损坏问题分析与修复
@@ -213,17 +159,19 @@
213159
- 硬件故障导致的机器重启
214160
- Docker同一数据目录启动两个实例导致数据损坏
215161
- 级联复制的配置问题
162+
- NOFILE配置导致文件描述符不够用
163+
- NTP时间漂移导致的故障
216164

217165

218166
--------------------
219167

220168
## Architecture / 内核架构
221169

222170
### **源码细节**
223-
- [PostgresSQL变更数据捕获](src/logical-decoding.md)
224-
- [PostgreSQL前后端协议概述](src/wire-protocol.md)
225-
- [PostgreSQL的逻辑结构与物理结构](src/logical-arch.md)
226-
- [PostgreSQL的事务隔离等级](src/isolation-level.md)
171+
- [PostgresSQL变更数据捕获](arch/logical-decoding.md)
172+
- [PostgreSQL前后端协议概述](arch/wire-protocol.md)
173+
- [PostgreSQL的逻辑结构与物理结构](arch/logical-arch.md)
174+
- [PostgreSQL的事务隔离等级](arch/isolation-level.md)
227175
- 并发创建索引的实现方式(CREATE INDEX CONCURRENTLY)
228176
- GIN索引的实现原理
229177
- B树索引的原理与实现细节
@@ -237,20 +185,22 @@
237185
- PostgreSQL数据页结构
238186
- FDW的结构与编写
239187
- SSD Internal
240-
- [GIN索引关键词匹配的时间复杂度为什么是O(n2)](ker/gin.md)
241-
242-
### **架构设计**
188+
- [GIN索引关键词匹配的时间复杂度为什么是O(n2)](arch/gin.md)
243189

244-
### **扩展插件**
245190

246191
### **FDW**
247-
- [FileFDW妙用无穷——从数据库读取系统信息](tool/file_fdw-intro.md)
248-
- [RedisFDW Installation](tool/redis_fdw-install.md)
249-
- [MongoFDW Installation](tool/mongo_fdw-install.md)
250-
- IMPORT FOREIGN SCHEMA与远程元数据管理
251-
- MongoFDW设计与实现
252-
- HBase FDW设计与实现
253-
- 基于Multicorn编写FDW
192+
193+
- [FileFDW妙用无穷——从数据库读取系统信息](arch/file_fdw-intro.md)
194+
- [RedisFDW Installation](arch/install-redis-fdw.md)
195+
- [MongoFDW Installation](arch/install-mongo-fdw.md)
196+
197+
198+
199+
[MongoFDW安装](install-mongo-fdw.md)
200+
201+
[](install-pipelinedb.md)
202+
[](install-postgis.md)
203+
[](install-redis-fdw.md)
254204

255205

256206
--------------------
@@ -259,11 +209,34 @@
259209

260210
> 用于解决某些特定问题的代码速查片段,临时笔记
261211
262-
### **工具速查**
263-
- [查看系统任务 —— top](tool/unix-top.md)
264-
- [查看内存使用 —— free](tool/unix-free.md)
265-
- [查看虚拟内存使用 —— vmstat](tool/unix-vmstat.md)
266-
- [查看IO —— iostat](tool/unix-iostat.md)
212+
### **PGSQL工具**
213+
214+
- [`psql`命令速查]
215+
- [`pg_dump`命令速查]
216+
- [`pg_basebackup`命令速查]
217+
- psqlrc 配置基础
218+
- 性能压测:`pgbench`
219+
- [性能压测:`sysbench`]()
220+
- [组合使用psql与bash](gist/psql-and-bash.md)
221+
- [pgbouncer安装](tool/pgbouncer-install.md)
222+
- [pgbouncer配置文件](tool/pgbouncer-config.md)
223+
- [pgbouncer使用方法](tool/pgbouncer-usage.md)
224+
- [PgAdmin安装](gist/install-pgadmin.md)
225+
226+
### **操作系统工具**
227+
228+
- [查看系统任务 —— top](gist/os-top.md)
229+
- [查看内存使用 —— free](gist/os-free.md)
230+
- [查看虚拟内存使用 —— vmstat](gist/os-vmstat.md)
231+
- [查看IO —— iostat](gist/os-iostat.md)
232+
- [测试磁盘性能 —— `fio`](gist/os-fio.md)
233+
- [批量配置SSH免密登录](gist/os-ssh-key.md)
234+
- 查看硬盘信息 —— `smartctl`
235+
- 查看网卡信息 —— `ethtool`
236+
- 查看NUMA信息 —— `numactl`
237+
- 查看时间信息 —— `timedatectl`
238+
- 调整优化方案 —— `tuned-adm`
239+
267240

268241

269242
### **临时笔记**
@@ -274,9 +247,11 @@
274247
- [找出并清除表中重复的记录](http://blog.theodo.fr/2018/01/search-destroy-duplicate-rows-postgresql/)
275248
- 为分区表添加索引
276249
- 利用统计信息分批实现大表全表更新
250+
- [如何在LB后面获取客户端真实IP](gist/toa-get-client-ip-behind-lb.md)
277251

252+
### **工具组件**
278253

279-
254+
- [使用Wireshark抓包分析PostgreSQL协议](tool/wireshark-capture.md)
280255

281256
--------------------
282257

File renamed without changes.

Diff for: admin/migration-without-downtime.md renamed to admin/app-level-replication.md

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ description: >
88
通常涉及到数据迁移,常规操作都是停服务更新。不停机迁移数据是相对比较高级的操作。
99
---
1010

11+
# 应用层逻辑复制迁移表
1112

1213

1314
通常涉及到数据迁移,常规操作都是停服务更新。不停机迁移数据是相对比较高级的操作。

Diff for: admin/backup-overview.md

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ description: >
88
---
99

1010

11+
# PgSQL备份恢复概览
12+
1113
备份是DBA的安身立命之本,有备份,就不用慌。
1214

1315
备份有三种形式:SQL转储,文件系统备份,连续归档

Diff for: admin/entity-and-naming.md

+3-9
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ description: >
1111

1212
# 数据库集群管理概念与实体命名规范
1313

14-
> 2020-06-03
14+
> 2020-06-03 [微信公众号原文](https://mp.weixin.qq.com/s/_C6cxh1e-pxqB_6viJPa8w)
1515
1616
> 名之则可言也,言之则可行也。
1717
@@ -21,7 +21,7 @@ description: >
2121

2222
## TL;DR
2323

24-
![entity-naming.png](/img/blog/entity-naming.png)
24+
![entity-naming.png](../img/entity-naming.png)
2525

2626
* **集群(Cluster)**是基本自治单元,由用户指定唯一标识,表达业务含义,作为顶层命名空间。
2727
* 集群在硬件层面上包含一系列的**节点(Node)**,即物理机,虚机(或Pod),可以通过IP唯一标识。
@@ -201,10 +201,4 @@ Node的名称会在集群资源分配阶段确定下来,每个节点都会分
201201
命名属于相当经验性的知识,很少有地方会专门会讲这件事。这种“细节”其实往往能体现出命名者的一些经验水平来。
202202

203203
标识对象不仅仅可以通过ID和名称,还可以通过标签(Label)和选择器(Selector)。实际上这一种做法会更具有通用性和灵活性,本系列下一篇文章(也许)将会介绍数据库对象的标签设计与管理。
204-
205-
206-
207-
208-
209-
210-
> [微信公众号原文](https://mp.weixin.qq.com/s/_C6cxh1e-pxqB_6viJPa8w)
204+

Diff for: tmp/admin/ha.md renamed to admin/ha.md

File renamed without changes.

Diff for: admin/logical-replication.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ description: >
66
本文介绍PostgreSQL 13中逻辑复制的相关原理,以及最佳实践。
77
---
88

9-
9+
# Postgres逻辑复制详解
1010

1111
## 逻辑复制
1212

Diff for: admin/pgbouncer-usage.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ description: >
77
Pgbouncer是一个轻量级的数据库连接池,这里简单介绍Pgbouncer的配置、管理与使用。
88
---
99

10-
10+
# Pgbouncer快速上手
1111

1212
Pgbouncer是一个轻量级的数据库连接池。
1313

Diff for: tmp/admin/privilege.md renamed to admin/privilege.md

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ tags: ["PostgreSQL","Bash"]
66
type: "post"
77
---
88

9+
PostgreSQL权限管理
910

1011

1112

0 commit comments

Comments
 (0)