<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Postgresql on 张同的博客</title><link>https://www.zhangblogs.cn/tags/postgresql/</link><description>Recent content in Postgresql on 张同的博客</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Fri, 09 May 2025 11:25:43 +0800</lastBuildDate><atom:link href="https://www.zhangblogs.cn/tags/postgresql/index.xml" rel="self" type="application/rss+xml"/><item><title>Postgresql应急手册-膨胀</title><link>https://www.zhangblogs.cn/archives/postgresqlying-ji-shou-ce-peng-zhang/</link><pubDate>Fri, 09 May 2025 11:25:43 +0800</pubDate><guid>https://www.zhangblogs.cn/archives/postgresqlying-ji-shou-ce-peng-zhang/</guid><description>&lt;p&gt;&lt;strong&gt;Postgresql应急手册结构性内容来自xiongcc的pg应急一图&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id="postgresql-膨胀问题技术指南"&gt;&lt;span fontsize="" color=""&gt;&lt;strong&gt;PostgreSQL 膨胀问题技术指南&lt;/strong&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span fontsize="" color=""&gt;&lt;strong&gt;摘要：&lt;/strong&gt; PostgreSQL 数据库在长时间运行、频繁更新的情况下，容易出现“膨胀（Bloat）”问题。膨胀指的是表、索引、WAL 日志或系统目录占用了不必要的大量空间，可能导致性能下降。本文将分别讨论 &lt;strong&gt;表膨胀&lt;/strong&gt;、&lt;strong&gt;索引膨胀&lt;/strong&gt;、&lt;strong&gt;WAL 日志膨胀&lt;/strong&gt; 和 &lt;strong&gt;系统表膨胀&lt;/strong&gt;，分析成因、检测方法，并提供解决方案和示例脚本。通过合理的监控和维护，可有效控制膨胀现象，提高数据库性能和稳定性。&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Postgresql应急手册-事务ID回卷</title><link>https://www.zhangblogs.cn/archives/postgresqlying-ji-shou-ce-shi-wu-idhui-juan/</link><pubDate>Fri, 09 May 2025 11:23:10 +0800</pubDate><guid>https://www.zhangblogs.cn/archives/postgresqlying-ji-shou-ce-shi-wu-idhui-juan/</guid><description>&lt;p&gt;postgresql应急手册骨干内容源自xiongcc的应急脑图，结合GPT深入研究得出结果。本人校核。&lt;/p&gt;
&lt;img src="https://www.zhangblogs.cn/upload/postgresql应急流程-emgl.jpg" style="display: inline-block;width:100.0%;height:100.0%" /&gt;
&lt;hr&gt;
&lt;h1 id="postgresql-事务id回卷异常及处理方案"&gt;&lt;span fontsize="" color=""&gt;&lt;strong&gt;PostgreSQL 事务ID回卷异常及处理方案&lt;/strong&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;h2 id="1-事务id回卷异常的表现"&gt;&lt;span fontsize="" color=""&gt;&lt;strong&gt;1. 事务ID回卷异常的表现&lt;/strong&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span fontsize="" color=""&gt;&lt;strong&gt;概念说明：&lt;/strong&gt; PostgreSQL使用32位事务ID（Transaction ID, XID）标识事务，每个新事务都会消耗一个XID (&lt;/span&gt;&lt;a href="https://www.postgresql.fastware.com/blog/how-to-fix-transaction-wraparound-in-postgresql#:~:text=The%20issue%20with%20transaction%20wraparound,32%7D"&gt;&lt;span fontsize="" color=""&gt;How to fix transaction wraparound in PostgreSQL?&lt;/span&gt;&lt;/a&gt;&lt;span fontsize="" color=""&gt; possible Txids))。由于32位整数最大约为42亿，XID会在约21亿（2^31）时触发“回卷”（wraparound）机制，从0重新计数。为了防止旧事务的数据可见性错误，PostgreSQL要求在接近XID耗尽时冻结（freeze）老事务ID。如果未及时冻结，数据库将采取保护措施，包括强制只读甚至停止服务，以避免数据丢失 (&lt;/span&gt;&lt;a href="https://www.percona.com/blog/overcoming-vacuum-wraparound/#:~:text=,ONLY%20mode"&gt;&lt;span fontsize="" color=""&gt;Overcoming VACUUM WRAPAROUND&lt;/span&gt;&lt;/a&gt;&lt;span fontsize="" color=""&gt;)。&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Postgresql IO</title><link>https://www.zhangblogs.cn/archives/1733887299274/</link><pubDate>Wed, 11 Dec 2024 11:30:00 +0800</pubDate><guid>https://www.zhangblogs.cn/archives/1733887299274/</guid><description>&lt;h1 id="io-patterns"&gt;&lt;strong&gt;I/O Patterns&lt;/strong&gt;&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Dinesh &amp;amp; Rakesh&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;March 1, 2024&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="演讲人介绍"&gt;&lt;strong&gt;演讲人介绍&lt;/strong&gt;&lt;/h2&gt;
&lt;h3 id="dinesh-kumar"&gt;&lt;strong&gt;Dinesh Kumar&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Principal Architect @ Tessell&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Active contributor to Opensource tools around PostgreSQL&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Author of two PostgreSQL books&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="rakesh"&gt;&lt;strong&gt;Rakesh&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Solutions Architect @ Tessell&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Extensively built products &amp;amp; platforms with PostgreSQL&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="what-is-io"&gt;&lt;strong&gt;What is I/O?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;从高层次来看，I/O 操作是请求从磁盘读取数据（“输入”）或向磁盘写入数据（“输出”)的操作，通常以&lt;strong&gt;每秒操作数&lt;/strong&gt;来衡量。&lt;/p&gt;
&lt;img src="https://www.zhangblogs.cn/upload/image-ktws.png" style="display: inline-block" /&gt;
&lt;p&gt;这张图是关于 PostgreSQL 数据库中的 I/O（输入/输出）流程的高级视图。下面是每个部分的分析：&lt;/p&gt;</description></item><item><title>postgresql HA框架对比</title><link>https://www.zhangblogs.cn/archives/1717063008323/</link><pubDate>Thu, 30 May 2024 17:57:00 +0800</pubDate><guid>https://www.zhangblogs.cn/archives/1717063008323/</guid><description>&lt;p&gt;&lt;span fontsize="" color=""&gt;文章内容来自&lt;/span&gt;&lt;a href="https://scalegrid.io/blog/managing-high-availability-in-postgresql-part-3/" target="_blank" rel="noopener noreferrer nofollow"&gt;&lt;span data-fontsize="" color=""&gt;Managing High Availability in PostgreSQL® – Part III: Patroni&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span fontsize="" color=""&gt;Patroni 对于 PostgreSQL 数据库管理员（DBA）来说是一个宝贵的工具，因为它执行 PostgreSQL 集群的端到端设置和监控。选择分布式一致性服务（DCS）和备用创建的灵活性对最终用户来说是一个优势，因为他们可以选择自己熟悉的方法。&lt;/span&gt;&lt;/p&gt;</description></item></channel></rss>