<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>概念 on Pigsty v5.0</title>
    <link>https://pgsty.pro/zh/categories/%E6%A6%82%E5%BF%B5/</link>
    <description>Recent content in 概念 on Pigsty v5.0</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    
    
    
      <lastBuildDate>Sat, 11 Jan 2025 00:00:00 +0000</lastBuildDate>
    
    
      <atom:link href="https://pgsty.pro/zh/categories/%E6%A6%82%E5%BF%B5/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
        <title>被动故障切换</title>
        <link>https://pgsty.pro/zh/docs/concept/ha/failure/passive/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/ha/failure/passive/</guid>
        <description>&lt;pre class=&#34;td-infographic-source&#34;&gt;&lt;code class=&#34;language-infographic&#34;&gt;infographic list-row-simple-horizontal-arrow&#xA;data&#xA;  title 租约过期故障切换流程&#xA;  desc 当整个节点宕机，Patroni 无法主动释放租约，只能等待 TTL 过期&#xA;  items&#xA;    - label 租约过期&#xA;      desc Patroni 失联，被动等待主库租约 TTL 过期&#xA;      icon mingcute/close-circle-fill&#xA;    - label 从库检测&#xA;      desc 从库从循环中醒来后发现租约过期，开始竞选&#xA;      icon mingcute/key-2-fill&#xA;    - label 抢锁提拔&#xA;      desc 从库相互比较并抢锁，胜利者提升自己的PG&#xA;      icon mingcute/radar-fill&#xA;    - label 健康检查&#xA;      desc HAPROXY 健康检查发现新主上线，分配流量&#xA;      icon mingcute/arrow-up-circle-fill&#xA;theme light&#xA;  palette antv&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;rto-时序图&#34;&gt;RTO 时序图&#xA;&lt;/h2&gt;&#xA;&lt;script&gt;&#xA;window.OinkEchartsFunctions = window.OinkEchartsFunctions || {};&#xA;(function (registry) {&#xA;var fmt = function(params) { if (!params || !params.length || params[0].name === &#39;&#39;) return &#39;&#39;; return &#39;&lt;b&gt;&#39; + params[0].name + &#39;&lt;/b&gt;&lt;br/&gt;&#39; + params.filter(p =&gt; p.value !== &#39;-&#39; &amp;&amp; p.value != null).map(p =&gt; p.marker + &#39; &#39; + p.seriesName + &#39;: &#39; + p.value + &#39;s&#39;).join(&#39;&lt;br/&gt;&#39;); };&#xA;registry[&#34;fmt&#34;] = fmt;&#xA;})(window.OinkEchartsFunctions);&#xA;&lt;/script&gt;&#xA;&lt;pre class=&#34;td-echarts-source&#34;&gt;&lt;code class=&#34;language-echarts&#34;&gt;tooltip: { trigger: axis, axisPointer: { type: shadow }, formatter: $fn:fmt }&#xA;legend: { top: 0, itemGap: 12, data: [租约过期, 从库检测, 抢锁提拔, 健康检查] }&#xA;grid: { left: 64, right: 24, bottom: 32, top: 40 }&#xA;xAxis: { type: value, name: 秒, nameLocation: end, max: 160, axisLine: { show: true }, axisTick: { show: true }, splitLine: { show: true, lineStyle: { type: dashed, opacity: 0.5 } }, minorTick: { show: true, splitNumber: 5 }, minorSplitLine: { show: true, lineStyle: { type: dotted, opacity: 0.2 } } }&#xA;yAxis: { type: category, axisLine: { show: true }, axisTick: { show: true }, splitLine: { show: false }, axisLabel: { fontSize: 10, fontFamily: monospace }, data: [wide-max, wide-avg, wide-min, &amp;#34;&amp;#34;, safe-max, safe-avg, safe-min, &amp;#34;&amp;#34;, norm-max, norm-avg, norm-min, &amp;#34;&amp;#34;, fast-max, fast-avg, fast-min] }&#xA;series:&#xA;  - { name: 租约过期, type: bar, stack: main, barWidth: 20, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#e15759&amp;#34; }, data: [120, 110, 100, &amp;#34;-&amp;#34;, 60, 55, 50, &amp;#34;-&amp;#34;, 30, 27, 25, &amp;#34;-&amp;#34;, 20, 17, 15] }&#xA;  - { name: 从库检测, type: bar, stack: main, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#edc949&amp;#34; }, data: [20, 10, 0, &amp;#34;-&amp;#34;, 10, 5, 0, &amp;#34;-&amp;#34;, 5, 3, 0, &amp;#34;-&amp;#34;, 5, 3, 0] }&#xA;  - { name: 抢锁提拔, type: bar, stack: main, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#59a14f&amp;#34; }, data: [2, 1, 0, &amp;#34;-&amp;#34;, 2, 1, 0, &amp;#34;-&amp;#34;, 2, 1, 0, &amp;#34;-&amp;#34;, 2, 1, 0] }&#xA;  - { name: 健康检查, type: bar, stack: main, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#4e79a7&amp;#34; }, data: [8, 6, 4, &amp;#34;-&amp;#34;, 6, 5, 3, &amp;#34;-&amp;#34;, 4, 3, 2, &amp;#34;-&amp;#34;, 2, 2, 1] }&#xA;  - { name: RTO总计, type: bar, barGap: &amp;#34;-100%&amp;#34;, barWidth: 20, z: 1, itemStyle: { color: &amp;#34;#888&amp;#34;, opacity: 0 }, emphasis: { itemStyle: { opacity: 0 } }, data: [150, 127, 104, &amp;#34;-&amp;#34;, 78, 66, 53, &amp;#34;-&amp;#34;, 41, 34, 27, &amp;#34;-&amp;#34;, 29, 23, 16] }&#xA;  - { name: RTO预算, type: bar, barGap: &amp;#34;-100%&amp;#34;, barWidth: 20, z: 0, itemStyle: { color: &amp;#34;rgba(0,0,0,0.08)&amp;#34; }, emphasis: { itemStyle: { color: &amp;#34;rgba(0,0,0,0.12)&amp;#34; } }, data: [150, 150, 150, &amp;#34;-&amp;#34;, 90, 90, 90, &amp;#34;-&amp;#34;, 45, 45, 45, &amp;#34;-&amp;#34;, 30, 30, 30] }&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;故障模型&#34;&gt;故障模型&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--full td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;full-width&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;项目&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;最好&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;最坏&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;平均&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;说明&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;租约过期&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;ttl - loop&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;ttl&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;ttl - loop/2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：即将刷新时宕机&lt;br/&gt;最坏：刚刷新完就宕机&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;从库检测&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;loop&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;loop / 2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：恰好在检测点&lt;br/&gt;最坏：刚错过检测点&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;抢锁提拔&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：直接抢锁提升&lt;br/&gt;最坏：API 超时+Promote&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;健康检查&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;(rise-1) × fastinter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;(rise-1) × fastinter + inter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;(rise-1) × fastinter + inter/2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：检查前状态变化&lt;br/&gt;最坏：检查后瞬间状态变化&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;被动故障与主动故障的核心区别&lt;/strong&gt;：&lt;/p&gt;</description>
      </item>
    <item>
        <title>主动故障检测</title>
        <link>https://pgsty.pro/zh/docs/concept/ha/failure/active/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/ha/failure/active/</guid>
        <description>&lt;pre class=&#34;td-infographic-source&#34;&gt;&lt;code class=&#34;language-infographic&#34;&gt;infographic list-row-simple-horizontal-arrow&#xA;data&#xA;  title 崩溃故障切换流程&#xA;  desc 当 Patroni 健康，但 PostgreSQL 因故崩溃时的故障切换流程&#xA;  items&#xA;    - label 故障检测&#xA;      desc Patroni 在循环中检测到 PG 崩溃&#xA;      icon mingcute/close-circle-fill&#xA;    - label 重启超时&#xA;      desc Patroni 尝试重启 PG，超时后释放租约&#xA;      icon mingcute/refresh-2-fill&#xA;    - label 从库检测&#xA;      desc 从库从循环中醒来发现租约释放，开始竞选&#xA;      icon mingcute/key-2-fill&#xA;    - label 抢锁提拔&#xA;      desc 从库相互比较并抢锁，胜利者提升自己的 PG&#xA;      icon mingcute/radar-fill&#xA;    - label 健康检查&#xA;      desc HAProxy 健康检查发现新主上线，分配流量&#xA;      icon mingcute/arrow-up-circle-fill&#xA;theme light&#xA;  palette antv&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;rto-时序图&#34;&gt;RTO 时序图&#xA;&lt;/h2&gt;&#xA;&lt;script&gt;&#xA;window.OinkEchartsFunctions = window.OinkEchartsFunctions || {};&#xA;(function (registry) {&#xA;var fmt = function(params) { if (!params || !params.length || params[0].name === &#39;&#39;) return &#39;&#39;; return &#39;&lt;b&gt;&#39; + params[0].name + &#39;&lt;/b&gt;&lt;br/&gt;&#39; + params.filter(p =&gt; p.value !== &#39;-&#39; &amp;&amp; p.value != null).map(p =&gt; p.marker + &#39; &#39; + p.seriesName + &#39;: &#39; + p.value + &#39;s&#39;).join(&#39;&lt;br/&gt;&#39;); };&#xA;registry[&#34;fmt&#34;] = fmt;&#xA;})(window.OinkEchartsFunctions);&#xA;&lt;/script&gt;&#xA;&lt;pre class=&#34;td-echarts-source&#34;&gt;&lt;code class=&#34;language-echarts&#34;&gt;tooltip: { trigger: axis, axisPointer: { type: shadow }, formatter: $fn:fmt }&#xA;legend: { top: 0, itemGap: 12, data: [故障检测, 重启超时, 从库检测, 抢锁提拔, 健康检查] }&#xA;grid: { left: 64, right: 24, bottom: 32, top: 40 }&#xA;xAxis: { type: value, name: 秒, nameLocation: end, max: 160, axisLine: { show: true }, axisTick: { show: true }, splitLine: { show: true, lineStyle: { type: dashed, opacity: 0.5 } }, minorTick: { show: true, splitNumber: 5 }, minorSplitLine: { show: true, lineStyle: { type: dotted, opacity: 0.2 } } }&#xA;yAxis: { type: category, axisLine: { show: true }, axisTick: { show: true }, splitLine: { show: false }, axisLabel: { fontSize: 10, fontFamily: monospace }, data: [wide-max, wide-avg, wide-min, &amp;#34;&amp;#34;, safe-max, safe-avg, safe-min, &amp;#34;&amp;#34;, norm-max, norm-avg, norm-min, &amp;#34;&amp;#34;, fast-max, fast-avg, fast-min] }&#xA;series:&#xA;  - { name: 故障检测, type: bar, stack: main, barWidth: 20, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#b07aa1&amp;#34; }, data: [20, 10, 0, &amp;#34;-&amp;#34;, 10, 5, 0, &amp;#34;-&amp;#34;, 5, 3, 0, &amp;#34;-&amp;#34;, 5, 3, 0] }&#xA;  - { name: 重启超时, type: bar, stack: main, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#f28e2c&amp;#34; }, data: [95, 95, 0, &amp;#34;-&amp;#34;, 45, 45, 0, &amp;#34;-&amp;#34;, 25, 25, 0, &amp;#34;-&amp;#34;, 15, 15, 0] }&#xA;  - { name: 从库检测, type: bar, stack: main, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#edc949&amp;#34; }, data: [20, 10, 0, &amp;#34;-&amp;#34;, 10, 5, 0, &amp;#34;-&amp;#34;, 5, 3, 0, &amp;#34;-&amp;#34;, 5, 3, 0] }&#xA;  - { name: 抢锁提拔, type: bar, stack: main, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#59a14f&amp;#34; }, data: [2, 1, 0, &amp;#34;-&amp;#34;, 2, 1, 0, &amp;#34;-&amp;#34;, 2, 1, 0, &amp;#34;-&amp;#34;, 2, 1, 0] }&#xA;  - { name: 健康检查, type: bar, stack: main, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#4e79a7&amp;#34; }, data: [8, 6, 4, &amp;#34;-&amp;#34;, 6, 5, 3, &amp;#34;-&amp;#34;, 4, 3, 2, &amp;#34;-&amp;#34;, 2, 2, 1] }&#xA;  - { name: RTO总计, type: bar, barGap: &amp;#34;-100%&amp;#34;, barWidth: 20, z: 1, itemStyle: { color: &amp;#34;#888&amp;#34;, opacity: 0 }, emphasis: { itemStyle: { opacity: 0 } }, data: [145, 122, 4, &amp;#34;-&amp;#34;, 73, 61, 3, &amp;#34;-&amp;#34;, 41, 35, 2, &amp;#34;-&amp;#34;, 29, 24, 1] }&#xA;  - { name: RTO预算, type: bar, barGap: &amp;#34;-100%&amp;#34;, barWidth: 20, z: 0, itemStyle: { color: &amp;#34;rgba(0,0,0,0.08)&amp;#34; }, emphasis: { itemStyle: { color: &amp;#34;rgba(0,0,0,0.12)&amp;#34; } }, data: [150, 150, 150, &amp;#34;-&amp;#34;, 90, 90, 90, &amp;#34;-&amp;#34;, 45, 45, 45, &amp;#34;-&amp;#34;, 30, 30, 30] }&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;故障模型&#34;&gt;故障模型&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--full td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;full-width&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;项目&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;最好&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;最坏&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;平均&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;说明&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;故障检测&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;loop&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;loop/2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：PG 恰好在检测前崩溃&lt;br/&gt;最坏：PG 刚检测完就崩溃&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;重启超时&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;start&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;start&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：PG 瞬间自愈&lt;br/&gt;最坏：等满 start 超时才释放租约&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;从库检测&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;loop&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;loop/2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：恰好在检测点&lt;br/&gt;最坏：刚错过检测点&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;抢锁提拔&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：直接抢锁提升&lt;br/&gt;最坏：API 超时 + Promote&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;健康检查&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;(rise-1) × fastinter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;(rise-1) × fastinter + inter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;(rise-1) × fastinter + inter/2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：检查前状态变化&lt;br/&gt;最坏：检查后瞬间状态变化&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;主动故障与被动故障的核心区别&lt;/strong&gt;：&lt;/p&gt;</description>
      </item>
    <item>
        <title>网络分区</title>
        <link>https://pgsty.pro/zh/docs/concept/ha/failure/partition/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/ha/failure/partition/</guid>
        <description>&lt;pre class=&#34;td-infographic-source&#34;&gt;&lt;code class=&#34;language-infographic&#34;&gt;infographic list-row-simple-horizontal-arrow&#xA;data&#xA;  title 网络分区故障切换流程&#xA;  desc 主库与 DCS 网络分区，Patroni 主动降级防止脑裂，等待 TTL 过期后切换&#xA;  items&#xA;    - label 主库降级&#xA;      desc Patroni 重试超时后主动降级 PG&#xA;      icon mingcute/shield-fill&#xA;    - label 租约过期&#xA;      desc Leader Key TTL 过期&#xA;      icon mingcute/close-circle-fill&#xA;    - label 从库检测&#xA;      desc 从库发现租约过期，开始竞选&#xA;      icon mingcute/key-2-fill&#xA;    - label 抢锁提拔&#xA;      desc 从库抢锁并提升为新主库&#xA;      icon mingcute/radar-fill&#xA;    - label 健康检查&#xA;      desc HAProxy 检测新主上线&#xA;      icon mingcute/arrow-up-circle-fill&#xA;theme light&#xA;  palette antv&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;rto-时序图&#34;&gt;RTO 时序图&#xA;&lt;/h2&gt;&#xA;&lt;script&gt;&#xA;window.OinkEchartsFunctions = window.OinkEchartsFunctions || {};&#xA;(function (registry) {&#xA;var fmt = function(params) { if (!params || !params.length || params[0].name === &#39;&#39;) return &#39;&#39;; return &#39;&lt;b&gt;&#39; + params[0].name + &#39;&lt;/b&gt;&lt;br/&gt;&#39; + params.filter(p =&gt; p.value !== &#39;-&#39; &amp;&amp; p.value != null).map(p =&gt; p.marker + &#39; &#39; + p.seriesName + &#39;: &#39; + p.value + &#39;s&#39;).join(&#39;&lt;br/&gt;&#39;); };&#xA;registry[&#34;fmt&#34;] = fmt;&#xA;})(window.OinkEchartsFunctions);&#xA;&lt;/script&gt;&#xA;&lt;pre class=&#34;td-echarts-source&#34;&gt;&lt;code class=&#34;language-echarts&#34;&gt;tooltip: { trigger: axis, axisPointer: { type: shadow }, formatter: $fn:fmt }&#xA;legend: { top: 0, itemGap: 12, data: [主库降级, 租约过期, 从库检测, 抢锁提拔, 健康检查] }&#xA;grid: { left: 64, right: 24, bottom: 32, top: 40 }&#xA;xAxis: { type: value, name: 秒, nameLocation: end, max: 160, axisLine: { show: true }, axisTick: { show: true }, splitLine: { show: true, lineStyle: { type: dashed, opacity: 0.5 } }, minorTick: { show: true, splitNumber: 5 }, minorSplitLine: { show: true, lineStyle: { type: dotted, opacity: 0.2 } } }&#xA;yAxis: { type: category, axisLine: { show: true }, axisTick: { show: true }, splitLine: { show: false }, axisLabel: { fontSize: 10, fontFamily: monospace }, data: [wide-max, wide-avg, wide-min, &amp;#34;&amp;#34;, safe-max, safe-avg, safe-min, &amp;#34;&amp;#34;, norm-max, norm-avg, norm-min, &amp;#34;&amp;#34;, fast-max, fast-avg, fast-min] }&#xA;series:&#xA;  - { name: 主库降级, type: bar, stack: main, barWidth: 20, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#76b7b2&amp;#34; }, data: [50, 40, 30, &amp;#34;-&amp;#34;, 30, 25, 20, &amp;#34;-&amp;#34;, 15, 13, 10, &amp;#34;-&amp;#34;, 10, 8, 5] }&#xA;  - { name: 租约过期, type: bar, stack: main, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#e15759&amp;#34; }, data: [70, 70, 70, &amp;#34;-&amp;#34;, 30, 30, 30, &amp;#34;-&amp;#34;, 15, 15, 15, &amp;#34;-&amp;#34;, 10, 10, 10] }&#xA;  - { name: 从库检测, type: bar, stack: main, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#edc949&amp;#34; }, data: [20, 10, 0, &amp;#34;-&amp;#34;, 10, 5, 0, &amp;#34;-&amp;#34;, 5, 3, 0, &amp;#34;-&amp;#34;, 5, 3, 0] }&#xA;  - { name: 抢锁提拔, type: bar, stack: main, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#59a14f&amp;#34; }, data: [2, 1, 0, &amp;#34;-&amp;#34;, 2, 1, 0, &amp;#34;-&amp;#34;, 2, 1, 0, &amp;#34;-&amp;#34;, 2, 1, 0] }&#xA;  - { name: 健康检查, type: bar, stack: main, z: 2, emphasis: { focus: series }, itemStyle: { color: &amp;#34;#4e79a7&amp;#34; }, data: [8, 6, 4, &amp;#34;-&amp;#34;, 6, 5, 3, &amp;#34;-&amp;#34;, 4, 3, 2, &amp;#34;-&amp;#34;, 2, 2, 1] }&#xA;  - { name: RTO总计, type: bar, barGap: &amp;#34;-100%&amp;#34;, barWidth: 20, z: 1, itemStyle: { color: &amp;#34;#888&amp;#34;, opacity: 0 }, emphasis: { itemStyle: { opacity: 0 } }, data: [150, 127, 104, &amp;#34;-&amp;#34;, 78, 66, 53, &amp;#34;-&amp;#34;, 41, 34, 27, &amp;#34;-&amp;#34;, 29, 23, 16] }&#xA;  - { name: RTO预算, type: bar, barGap: &amp;#34;-100%&amp;#34;, barWidth: 20, z: 0, itemStyle: { color: &amp;#34;rgba(0,0,0,0.08)&amp;#34; }, emphasis: { itemStyle: { color: &amp;#34;rgba(0,0,0,0.12)&amp;#34; } }, data: [150, 150, 150, &amp;#34;-&amp;#34;, 90, 90, 90, &amp;#34;-&amp;#34;, 45, 45, 45, &amp;#34;-&amp;#34;, 30, 30, 30] }&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;故障模型&#34;&gt;故障模型&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--full td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;full-width&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;项目&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;最好&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;最坏&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;平均&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;说明&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;主库降级&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;retry&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;loop + retry&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;loop/2 + retry&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Patroni 检测分区后重试，超时后主动降级&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;租约过期&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;ttl - loop - retry&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;ttl - loop - retry&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;ttl - loop - retry&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;降级后剩余的 TTL 时间（近似常数）&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;从库检测&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;loop&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;loop/2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：恰好在检测点&lt;br/&gt;最坏：刚错过检测点&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;抢锁提拔&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：直接抢锁提升&lt;br/&gt;最坏：API 超时+Promote&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;strong&gt;健康检查&lt;/strong&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;(rise-1) × fastinter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;(rise-1) × fastinter + inter&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;(rise-1) × fastinter + inter/2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;最好：检查前状态变化&lt;br/&gt;最坏：检查后瞬间状态变化&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;网络分区与节点宕机的核心区别&lt;/strong&gt;：&lt;/p&gt;</description>
      </item>
    <item>
        <title>积木式架构</title>
        <link>https://pgsty.pro/zh/docs/concept/arch/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/arch/</guid>
        <description>&lt;p&gt;Pigsty 使用 &lt;strong&gt;模块化架构&lt;/strong&gt; 与 &lt;strong&gt;声明式接口&lt;/strong&gt;，您可以像 &lt;a href=&#34;https://pgsty.pro/zh/docs/deploy/planning/#%e5%b8%b8%e8%a7%81%e6%96%b9%e6%a1%88&#34;&gt;&lt;strong&gt;搭积木一样自由按需组合模块&lt;/strong&gt;&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pigsty 采用 &lt;a href=&#34;https://pgsty.pro/zh/docs/deploy/planning/&#34;&gt;&lt;strong&gt;模块化设计&lt;/strong&gt;&lt;/a&gt;，可自由组合，按需使用（Use one or all），以适应不同场景的需求。&lt;/li&gt;&#xA;&lt;li&gt;Pigsty 使用 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/iac/inventory/&#34;&gt;&lt;strong&gt;配置清单&lt;/strong&gt;&lt;/a&gt; 和 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/iac/parameter/&#34;&gt;&lt;strong&gt;配置参数&lt;/strong&gt;&lt;/a&gt; 描述整套部署环境，并通过 &lt;a href=&#34;https://pgsty.pro/zh/docs/setup/playbook/&#34;&gt;&lt;strong&gt;Ansible 剧本&lt;/strong&gt;&lt;/a&gt; 实现部署与调整。&lt;/li&gt;&#xA;&lt;li&gt;Pigsty 在可以在任意 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/arch/node/&#34;&gt;&lt;strong&gt;节点&lt;/strong&gt;&lt;/a&gt; 上运行，无论是物理裸机还是虚拟机，只要运行 &lt;a href=&#34;https://pgsty.pro/zh/docs/ref/linux/&#34;&gt;&lt;strong&gt;兼容的操作系统&lt;/strong&gt;&lt;/a&gt; 即可。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;模块&#34;&gt;模块&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty 采用模块化设计，有六个主要的默认模块：&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/&#34;&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/a&gt;、&lt;a href=&#34;https://pgsty.pro/zh/docs/infra/&#34;&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/a&gt;、&lt;a href=&#34;https://pgsty.pro/zh/docs/node/&#34;&gt;&lt;code&gt;NODE&lt;/code&gt;&lt;/a&gt;、&lt;a href=&#34;https://pgsty.pro/zh/docs/etcd/&#34;&gt;&lt;code&gt;ETCD&lt;/code&gt;&lt;/a&gt;、&lt;a href=&#34;https://pgsty.pro/zh/docs/redis/&#34;&gt;&lt;code&gt;REDIS&lt;/code&gt;&lt;/a&gt; 和 &lt;a href=&#34;https://pgsty.pro/zh/docs/minio/&#34;&gt;&lt;code&gt;MINIO&lt;/code&gt;&lt;/a&gt;。&lt;/p&gt;</description>
      </item>
    <item>
        <title>节点</title>
        <link>https://pgsty.pro/zh/docs/concept/arch/node/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/arch/node/</guid>
        <description>&lt;p&gt;&lt;strong&gt;节点（node）&lt;/strong&gt; 是对硬件资源/操作系统的抽象，可以是物理机，裸金属、虚拟机、或者容器与 pods。&lt;/p&gt;&#xA;&lt;p&gt;只要装着 &lt;a href=&#34;https://pgsty.pro/zh/docs/ref/linux/&#34;&gt;&lt;strong&gt;Linux 操作系统&lt;/strong&gt;&lt;/a&gt;（以及 systemd 守护进程），能使用 CPU/内存/磁盘/网络 等标准资源，即可视作节点。&lt;/p&gt;</description>
      </item>
    <item>
        <title>集群模型图</title>
        <link>https://pgsty.pro/zh/docs/concept/model/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/model/</guid>
        <description>&lt;p&gt;在 Pigsty 中最大的实体概念叫做 &lt;strong&gt;部署（Deployment）&lt;/strong&gt;，一套部署中的主要实体与关系（E-R 图）如下所示：&lt;/p&gt;&#xA;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/pigsty/er-full.svg&#34; alt=&#34;Pigsty 数据模型 ER 图&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;p&gt;一套部署也可以理解为一个 &lt;strong&gt;环境（Environment）&lt;/strong&gt;。例如，生产环境（Prod），用户测试环境（UTA），预发环境（Staging），测试环境（Testing），开发环境（Devbox），等等。&#xA;每个环境中，都对应着一份 Pigsty &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/iac/inventory/&#34;&gt;&lt;strong&gt;配置清单&lt;/strong&gt;&lt;/a&gt;，描述了环境中的所有实体与属性。&lt;/p&gt;</description>
      </item>
    <item>
        <title>声明式配置 —— 基础设施即代码（IaC）</title>
        <link>https://pgsty.pro/zh/docs/concept/iac/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/iac/</guid>
        <description>&lt;p&gt;Pigsty 遵循 IaC 与 GitOPS 的理念：使用声明式的 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/iac/inventory/&#34;&gt;&lt;strong&gt;配置清单&lt;/strong&gt;&lt;/a&gt; 描述整个环境，并通过 &lt;a href=&#34;https://pgsty.pro/zh/docs/setup/playbook/&#34;&gt;&lt;strong&gt;幂等剧本&lt;/strong&gt;&lt;/a&gt; 来实现。&lt;/p&gt;&#xA;&lt;p&gt;用户用声明的方式通过 &lt;a href=&#34;https://pgsty.pro/zh/docs/ref/param/&#34;&gt;&lt;strong&gt;参数&lt;/strong&gt;&lt;/a&gt; 来描述自己期望的状态，而剧本则以幂等的方式调整目标节点以达到这个状态。&#xA;这类似于 Kubernetes 的 CRD &amp;amp; Operator，然而 Pigsty 在裸机和虚拟机上，通过 Ansible 实现了这样的功能。&lt;/p&gt;</description>
      </item>
    <item>
        <title>PG 高可用</title>
        <link>https://pgsty.pro/zh/docs/concept/ha/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/ha/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;概览&#34;&gt;概览&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty 的 PostgreSQL 集群带有开箱即用的高可用方案，由 &lt;a href=&#34;https://pigsty.cc/docs/patroni&#34;&gt;&lt;strong&gt;Patroni&lt;/strong&gt;&lt;/a&gt;、&lt;a href=&#34;https://etcd.io/&#34;&gt;&lt;strong&gt;Etcd&lt;/strong&gt;&lt;/a&gt; 和 &lt;a href=&#34;http://www.haproxy.org/&#34;&gt;&lt;strong&gt;HAProxy&lt;/strong&gt;&lt;/a&gt; 提供核心能力。&lt;/p&gt;&#xA;&lt;p&gt;当您的 PostgreSQL 集群含有两个或更多实例时，您无需任何配置即拥有了硬件故障自愈的数据库高可用能力 —— 只要集群中有任意实例存活，集群就可以对外提供完整的服务，而客户端只要连接至集群中的任意节点，即可获得完整的服务，而无需关心主从拓扑变化。&lt;/p&gt;</description>
      </item>
    <item>
        <title>RPO 利弊权衡</title>
        <link>https://pgsty.pro/zh/docs/concept/ha/rpo/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/ha/rpo/</guid>
        <description>&lt;p&gt;&lt;strong&gt;RPO&lt;/strong&gt;（Recovery Point Objective，恢复点目标）定义了在主库发生故障时，&lt;strong&gt;允许丢失的最大数据量&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;对于金融交易这类数据完整性至关重要的场景，通常要求 RPO = 0，即不允许任何数据丢失；&lt;/p&gt;</description>
      </item>
    <item>
        <title>INFRA 架构</title>
        <link>https://pgsty.pro/zh/docs/concept/arch/infra/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/arch/infra/</guid>
        <description>&lt;p&gt;运行生产级别高可用 PostgreSQL 集群，通常需要一套完善的基础设施服务（底座）来支撑，例如监控告警、日志收集、时间同步、DNS 解析，本地软件仓库等。&#xA;Pigsty 提供了 &lt;a href=&#34;https://pgsty.pro/zh/docs/infra/&#34;&gt;&lt;strong&gt;INFRA 模块&lt;/strong&gt;&lt;/a&gt; 来解决这个问题 —— 这是一个 &lt;strong&gt;可选模块&lt;/strong&gt;，但我们强烈推荐启用它。&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL 架构</title>
        <link>https://pgsty.pro/zh/docs/concept/arch/pgsql/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/arch/pgsql/</guid>
        <description>&lt;p&gt;PGSQL 模块在生产环境中以 &lt;strong&gt;集群&lt;/strong&gt; 的形式组织，这些 &lt;strong&gt;集群&lt;/strong&gt; 是由一组通过 &lt;strong&gt;主-备&lt;/strong&gt; 关联的数据库 &lt;strong&gt;实例&lt;/strong&gt; 组成的 &lt;strong&gt;逻辑实体&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;概览&#34;&gt;概览&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/&#34;&gt;&lt;strong&gt;PGSQL 模块&lt;/strong&gt;&lt;/a&gt; 包含下列组件，协同提供生产级 PostgreSQL 高可用集群服务：&lt;/p&gt;</description>
      </item>
    <item>
        <title>RTO 利弊权衡</title>
        <link>https://pgsty.pro/zh/docs/concept/ha/rto/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/ha/rto/</guid>
        <description>&lt;p&gt;&lt;strong&gt;RTO&lt;/strong&gt;（Recovery Time Objective，恢复时间目标）定义了在主库发生故障时，&lt;strong&gt;系统恢复写入能力所需的最长时间&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;对于核心交易系统这类可用性至关重要的场景，通常要求 RTO 尽可能短，例如一分钟内。&lt;/p&gt;</description>
      </item>
    <item>
        <title>故障切换模型</title>
        <link>https://pgsty.pro/zh/docs/concept/ha/failure/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/ha/failure/</guid>
        <description>&lt;p&gt;Patroni 故障按故障对象分类可以分为以下 10 类，按照检测路径不同，可以进一步归纳为五类，在本节内详细展开。&lt;/p&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--full td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;full-width&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;#&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;故障场景&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;描述&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;最终走哪条路径&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;1&lt;/td&gt;&#xA;      &lt;td&gt;PG 进程崩溃&lt;/td&gt;&#xA;      &lt;td&gt;crash、OOM killed&lt;/td&gt;&#xA;      &lt;td&gt;&lt;strong&gt;主动检测&lt;/strong&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;2&lt;/td&gt;&#xA;      &lt;td&gt;PG 拒绝连接&lt;/td&gt;&#xA;      &lt;td&gt;max_connections&lt;/td&gt;&#xA;      &lt;td&gt;&lt;strong&gt;主动检测&lt;/strong&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;3&lt;/td&gt;&#xA;      &lt;td&gt;PG 假活&lt;/td&gt;&#xA;      &lt;td&gt;进程在但无响应&lt;/td&gt;&#xA;      &lt;td&gt;&lt;strong&gt;主动检测&lt;/strong&gt; (检测超时)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;4&lt;/td&gt;&#xA;      &lt;td&gt;Patroni 进程崩溃&lt;/td&gt;&#xA;      &lt;td&gt;kill -9、OOM&lt;/td&gt;&#xA;      &lt;td&gt;&lt;strong&gt;被动检测&lt;/strong&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;5&lt;/td&gt;&#xA;      &lt;td&gt;Patroni 假活&lt;/td&gt;&#xA;      &lt;td&gt;进程在但卡住&lt;/td&gt;&#xA;      &lt;td&gt;&lt;strong&gt;Watchdog&lt;/strong&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;6&lt;/td&gt;&#xA;      &lt;td&gt;节点宕机&lt;/td&gt;&#xA;      &lt;td&gt;断电、硬件故障&lt;/td&gt;&#xA;      &lt;td&gt;&lt;strong&gt;被动检测&lt;/strong&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;7&lt;/td&gt;&#xA;      &lt;td&gt;节点假活&lt;/td&gt;&#xA;      &lt;td&gt;IO hang、CPU 饥饿&lt;/td&gt;&#xA;      &lt;td&gt;&lt;strong&gt;Watchdog&lt;/strong&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;8&lt;/td&gt;&#xA;      &lt;td&gt;主库 ↔ DCS 网络中断&lt;/td&gt;&#xA;      &lt;td&gt;防火墙、交换机故障&lt;/td&gt;&#xA;      &lt;td&gt;&lt;strong&gt;网络分区&lt;/strong&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;9&lt;/td&gt;&#xA;      &lt;td&gt;存储故障&lt;/td&gt;&#xA;      &lt;td&gt;磁盘坏、磁盘满、挂载失败&lt;/td&gt;&#xA;      &lt;td&gt;&lt;strong&gt;主动检测&lt;/strong&gt; 或 &lt;strong&gt;Watchdog&lt;/strong&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td&gt;10&lt;/td&gt;&#xA;      &lt;td&gt;手动切换&lt;/td&gt;&#xA;      &lt;td&gt;Switchover/Failover&lt;/td&gt;&#xA;      &lt;td&gt;&lt;strong&gt;手动触发&lt;/strong&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;但是在 RTO 计算上，最终所有故障都会收敛到两条路径上，本节深入探讨了这两种情况下的 RTO 上下限与均值。&lt;/p&gt;</description>
      </item>
    <item>
        <title>时间点恢复 —— 数据库的时间机器（PITR）</title>
        <link>https://pgsty.pro/zh/docs/concept/pitr/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/pitr/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;当您不小心删除了数据、表、甚至整个数据库时，时间点恢复（Point-in-Time Recovery，PITR）让您可以回到过去。&lt;/p&gt;&#xA;&lt;p&gt;—— 这个曾经只有资深 DBA 才能施展的『魔法』，在 Pigsty 的标准配置中零配置开箱即用。&lt;/p&gt;</description>
      </item>
    <item>
        <title>时间点恢复的工作原理</title>
        <link>https://pgsty.pro/zh/docs/concept/pitr/mechanism/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/pitr/mechanism/</guid>
        <description>&lt;p&gt;如果把数据库看作一台状态机，那么 &lt;strong&gt;WAL&lt;/strong&gt;（Write-Ahead Log，预写式日志）就是它的完整变更历史 ——&#xA;PostgreSQL 的每一次写入，都会先以日志记录的形式落盘，然后才应用到数据文件上。&#xA;这个为崩溃恢复而生的机制带来了一个副产品：只要把某个时刻的数据文件快照保存下来，&#xA;再持续保留此后产生的 WAL，就可以把数据库 &lt;strong&gt;重放&lt;/strong&gt; 到这段历史所覆盖的任意时间点。&lt;/p&gt;</description>
      </item>
    <item>
        <title>时间点恢复的实现架构</title>
        <link>https://pgsty.pro/zh/docs/concept/pitr/arch/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/pitr/arch/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/pitr/mechanism/&#34;&gt;&lt;strong&gt;原理&lt;/strong&gt;&lt;/a&gt; 一页就能讲完，工程却没有那么简单：&#xA;归档不能拖垮主库的写入性能，备份放到对象存储上要加密，主从切换之后备份不能中断，&#xA;多套集群共用一个仓库时要相互隔离，海量小文件会拖垮备份吞吐……&lt;/p&gt;</description>
      </item>
    <item>
        <title>配置向导</title>
        <link>https://pgsty.pro/zh/docs/concept/iac/configure/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/iac/configure/</guid>
        <description>&lt;p&gt;Pigsty 提供了一个 &lt;strong&gt;&lt;code&gt;configure&lt;/code&gt;&lt;/strong&gt; 脚本作为 &lt;strong&gt;配置向导&lt;/strong&gt;，它能根据当前环境，自动生成合适的 &lt;code&gt;pigsty.yml&lt;/code&gt; 配置文件。&lt;/p&gt;&#xA;&lt;p&gt;这是一个 &lt;strong&gt;可选&lt;/strong&gt; 的脚本：如果您已经了解了如何配置 Pigsty，大可以直接编辑 &lt;code&gt;pigsty.yml&lt;/code&gt; 配置文件，跳过向导。&lt;/p&gt;</description>
      </item>
    <item>
        <title>配置参数</title>
        <link>https://pgsty.pro/zh/docs/concept/iac/parameter/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/iac/parameter/</guid>
        <description>&lt;p&gt;在 &lt;strong&gt;配置清单&lt;/strong&gt; 中，您可以使用各种参数对 Pigsty 进行精细化定制。这些参数涵盖了从基础设施设置到数据库配置的各个方面。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;参数列表&#34;&gt;参数列表&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;按照当前源码与参数参考页对账，Pigsty 的 10 个正式模块共有 &lt;strong&gt;373&lt;/strong&gt; 个公开参数，用于精细控制系统的各个方面；完整列表见 &lt;a href=&#34;https://pgsty.pro/zh/docs/ref/param/&#34;&gt;&lt;strong&gt;参考-参数列表&lt;/strong&gt;&lt;/a&gt;。原生 MySQL 8.4 试点模块的 13 个公开参数单列，不计入该合计。&lt;/p&gt;</description>
      </item>
    <item>
        <title>时间点恢复的策略权衡</title>
        <link>https://pgsty.pro/zh/docs/concept/pitr/tradeoff/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/pitr/tradeoff/</guid>
        <description>&lt;p&gt;备份本质上是一份保险：&lt;strong&gt;保费&lt;/strong&gt; 是存储空间、网络带宽与管理成本，&lt;strong&gt;保额&lt;/strong&gt; 是灾难来临时能挽回多少数据、多快恢复服务。&#xA;和所有保险一样，这里没有免费的午餐 —— 更长的恢复窗口意味着更多的空间，更快的恢复意味着更频繁的备份。&lt;/p&gt;</description>
      </item>
    <item>
        <title>声明式恢复</title>
        <link>https://pgsty.pro/zh/docs/concept/pitr/restore/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/pitr/restore/</guid>
        <description>&lt;p&gt;备份系统的全部价值，都在恢复的那一刻兑现。而恢复几乎总是发生在最糟糕的时刻 ——&#xA;生产事故、深夜告警、每一分钟都在损失。传统的 PITR 手工流程在这种时刻是残酷的：&#xA;停 HA、停库、写恢复配置、执行还原、盯日志、验证位点、重建元数据、拉起集群……十几个步骤环环相扣，任何一步出错都可能雪上加霜。&lt;/p&gt;</description>
      </item>
    <item>
        <title>时间点恢复的典型场景</title>
        <link>https://pgsty.pro/zh/docs/concept/pitr/scenarios/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/pitr/scenarios/</guid>
        <description>&lt;p&gt;事故发生时，最贵的不是恢复本身，而是 &lt;strong&gt;决策时间&lt;/strong&gt;。&#xA;恢复的机械步骤已经被 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/pitr/restore/&#34;&gt;&lt;strong&gt;工具编排&lt;/strong&gt;&lt;/a&gt; 好了，真正需要人来回答的只有三个问题：&#xA;&lt;strong&gt;恢复到哪一刻？原地恢复还是克隆恢复？如何验证数据是对的？&lt;/strong&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>配置模板</title>
        <link>https://pgsty.pro/zh/docs/concept/iac/template/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/iac/template/</guid>
        <description>&lt;p&gt;在 Pigsty 中，部署的蓝图细节由 &lt;a href=&#34;https://pgsty.pro/zh/docs/setup/config/&#34;&gt;&lt;strong&gt;配置清单&lt;/strong&gt;&lt;/a&gt; 所定义，也就是 &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/pigsty.yml&#34;&gt;&lt;strong&gt;&lt;code&gt;pigsty.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; 配置文件，您可以通过声明式配置进行定制。&lt;/p&gt;&#xA;&lt;p&gt;然而，直接编写配置文件可能会让新用户望而生畏。为此，我们提供了一些开箱即用的配置模板，涵盖了常见的使用场景。&lt;/p&gt;</description>
      </item>
    <item>
        <title>元数据库</title>
        <link>https://pgsty.pro/zh/docs/concept/iac/cmdb/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/iac/cmdb/</guid>
        <description>&lt;p&gt;Pigsty 允许您使用 PostgreSQL &lt;strong&gt;元数据库&lt;/strong&gt; 作为动态配置源，取代静态的 YAML 配置文件，实现更强大的配置管理能力。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;概览&#34;&gt;概览&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;CMDB&lt;/strong&gt;（Configuration Management Database，配置管理数据库）是一种将配置信息存储在数据库中进行管理的方式。&lt;/p&gt;</description>
      </item>
    <item>
        <title>监控系统</title>
        <link>https://pgsty.pro/zh/docs/concept/monitor/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/monitor/</guid>
        <description>&lt;p&gt;Pigsty 监控系统由指标、日志与告警三部分组成，默认随部署开箱可用；其中日志与告警也是 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/sec/data/#%e5%ae%a1%e8%ae%a1%e4%b8%8e%e8%bf%bd%e6%ba%af&#34;&gt;&lt;strong&gt;审计与追溯&lt;/strong&gt;&lt;/a&gt; 的重要输入。&#xA;它既可以监控由 Pigsty 托管的数据库集群，也可以监控已有 PostgreSQL 集群与外部 RDS 服务。&lt;/p&gt;</description>
      </item>
    <item>
        <title>安全合规</title>
        <link>https://pgsty.pro/zh/docs/concept/sec/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/sec/</guid>
        <description>&lt;p&gt;数据库通常是信息系统中最敏感的组件：它保存着最有价值的数据，也因此是攻击与故障后果最严重的地方。&#xA;数据库安全并不是某个可以一键开启的功能，而是一系列问题的答案之和：谁能连进来？连进来能做什么？流量会不会被窃听？操作有没有留痕？数据坏了、丢了、被删了，还能不能恢复？&lt;/p&gt;</description>
      </item>
    <item>
        <title>安全模型</title>
        <link>https://pgsty.pro/zh/docs/concept/sec/level/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/sec/level/</guid>
        <description>&lt;p&gt;在讨论具体的安全特性之前，值得先回答两个更基本的问题：&lt;strong&gt;信任的根在哪里&lt;/strong&gt;，以及 &lt;strong&gt;防线有几道&lt;/strong&gt;。&#xA;前者决定了你应该重点保护什么，后者决定了当某一道防线失守时，你还剩下什么。&lt;/p&gt;</description>
      </item>
    <item>
        <title>身份认证</title>
        <link>https://pgsty.pro/zh/docs/concept/sec/auth/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/sec/auth/</guid>
        <description>&lt;p&gt;PostgreSQL 使用 &lt;code&gt;pg_hba.conf&lt;/code&gt; 进行 &lt;strong&gt;基于主机的认证&lt;/strong&gt;（Host-Based Authentication）：谁（用户）、从哪里（来源地址）、访问什么（数据库）、需要以何种方式证明身份（认证方法）。&lt;/p&gt;</description>
      </item>
    <item>
        <title>访问控制</title>
        <link>https://pgsty.pro/zh/docs/concept/sec/ac/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/sec/ac/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/sec/auth/&#34;&gt;&lt;strong&gt;认证&lt;/strong&gt;&lt;/a&gt; 回答“你是谁”，授权回答“你能做什么”。&lt;/p&gt;&#xA;&lt;p&gt;权限失控很少是因为缺少机制 —— PostgreSQL 的 &lt;code&gt;GRANT&lt;/code&gt; 与 &lt;code&gt;REVOKE&lt;/code&gt; 足够精细。问题在于缺少一套被默认执行的约定：&#xA;业务上线时直接把账号设为属主；临时排障授予超级用户后没有及时回收；新表创建后遗漏授权，最终在生产环境触发权限错误。&lt;/p&gt;</description>
      </item>
    <item>
        <title>加密通信</title>
        <link>https://pgsty.pro/zh/docs/concept/sec/ca/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/sec/ca/</guid>
        <description>&lt;p&gt;TLS 可以提供三类保护：&lt;strong&gt;传输加密&lt;/strong&gt;、&lt;strong&gt;服务端身份验证&lt;/strong&gt; 与 &lt;strong&gt;客户端身份验证&lt;/strong&gt;。这三项能力需要分别配置：启用服务端 TLS 并不等于客户端已经验证了服务端身份，也不等于服务端要求客户端证书。&lt;/p&gt;</description>
      </item>
    <item>
        <title>数据安全</title>
        <link>https://pgsty.pro/zh/docs/concept/sec/data/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/sec/data/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/sec/level/#%e7%bd%91%e7%bb%9c%e8%be%b9%e7%95%8c&#34;&gt;&lt;strong&gt;网络边界&lt;/strong&gt;&lt;/a&gt;、&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/sec/auth/&#34;&gt;&lt;strong&gt;身份认证&lt;/strong&gt;&lt;/a&gt; 和 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/sec/ac/&#34;&gt;&lt;strong&gt;权限控制&lt;/strong&gt;&lt;/a&gt; 用于降低事件发生的概率；当硬件损坏、口令泄露或误操作已经发生时，还需要依靠数据层机制控制影响并完成恢复。&lt;/p&gt;&#xA;&lt;p&gt;数据安全要回答四个问题：数据是 &lt;strong&gt;完整&lt;/strong&gt; 的吗？丢了能 &lt;strong&gt;恢复&lt;/strong&gt; 吗？被拿走了会 &lt;strong&gt;泄密&lt;/strong&gt; 吗？发生了什么能 &lt;strong&gt;查清&lt;/strong&gt; 吗？&lt;/p&gt;</description>
      </item>
    <item>
        <title>合规实践</title>
        <link>https://pgsty.pro/zh/docs/concept/sec/compliance/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/sec/compliance/</guid>
        <description>&lt;p&gt;合规不是一个可以购买的产品，而是一种需要持续证明的状态。它由三部分组成：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;配置&lt;/strong&gt;：安全能力是否启用 —— 这部分由 Pigsty 直接提供；&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;流程&lt;/strong&gt;：权限审批、变更管理、恢复演练等制度 —— 需要组织自行建立；&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;证据&lt;/strong&gt;：能证明前两者持续有效的记录 —— Pigsty 的 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/iac/inventory/&#34;&gt;&lt;strong&gt;配置清单&lt;/strong&gt;&lt;/a&gt;、运行日志和 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/monitor/&#34;&gt;&lt;strong&gt;监控系统&lt;/strong&gt;&lt;/a&gt; 可以提供其中一部分。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;本页从上线前的加固清单开始，给出 Pigsty 安全能力与常见合规框架的映射关系。&#xA;这些映射用于方案设计和差距分析，不构成等保测评结论、SOC 2 审计意见或法律建议。&lt;/p&gt;</description>
      </item>
    <item>
        <title>概念</title>
        <link>https://pgsty.pro/zh/docs/concept/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/</guid>
        <description>&lt;p&gt;Pigsty 是一个可移植、可扩展的开源 PostgreSQL 发行版，用于在本地环境中构建生产级数据库服务，方便进行声明式配置和自动化。它拥有庞大的生态系统，提供了一整套工具、脚本和最佳实践，让 PostgreSQL 真正达到企业级 RDS 的服务水准。&lt;/p&gt;</description>
      </item>
    <item>
        <title>PostgreSQL Mongo 模式</title>
        <link>https://pgsty.pro/zh/docs/conf/mongo/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/conf/mongo/</guid>
        <description>&lt;p&gt;&lt;code&gt;mongo&lt;/code&gt; 配置模板是一个 &lt;strong&gt;PostgreSQL 部署模式&lt;/strong&gt;，而不是独立的 Pigsty 模块。它由以下组件组成：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;由标准 &lt;code&gt;PGSQL&lt;/code&gt; 模块管理的 PostgreSQL 18&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;documentdb&lt;/code&gt; 扩展及其预加载库&lt;/li&gt;&#xA;&lt;li&gt;通过 Pigsty Docker APP 工作流部署的无状态 FerretDB 代理&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;所有数据、高可用、备份、监控与生命周期管理仍由 PostgreSQL 负责；FerretDB 只提供 MongoDB 线协议兼容端点。&lt;/p&gt;</description>
      </item>
    <item>
        <title>PGSQL 集群模型</title>
        <link>https://pgsty.pro/zh/docs/concept/model/pgsql/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/model/pgsql/</guid>
        <description>&lt;p&gt;PGSQL 模块在生产环境中以 &lt;strong&gt;集群&lt;/strong&gt; 的形式组织，这些 &lt;strong&gt;集群&lt;/strong&gt; 是由一组由 &lt;strong&gt;主-备&lt;/strong&gt; 关联的数据库 &lt;strong&gt;实例&lt;/strong&gt; 组成的 &lt;strong&gt;逻辑实体&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;每个集群都是一个 &lt;strong&gt;自治&lt;/strong&gt; 的业务单元，由至少一个 &lt;strong&gt;主库实例&lt;/strong&gt; 组成，并通过服务向外暴露能力。&lt;/p&gt;</description>
      </item>
    <item>
        <title>ETCD 集群模型</title>
        <link>https://pgsty.pro/zh/docs/concept/model/etcd/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/model/etcd/</guid>
        <description>&lt;p&gt;ETCD 模块在生产环境中以 &lt;strong&gt;集群&lt;/strong&gt; 的形式组织，这些 &lt;strong&gt;集群&lt;/strong&gt; 是由一组通过 &lt;strong&gt;Raft&lt;/strong&gt; 共识协议关联的 ETCD &lt;strong&gt;实例&lt;/strong&gt; 组成的 &lt;strong&gt;逻辑实体&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;每个集群都是一个 &lt;strong&gt;自治&lt;/strong&gt; 的分布式键值存储单元，由至少一个 &lt;strong&gt;ETCD 实例&lt;/strong&gt; 组成，通过客户端端口向外暴露服务能力。&lt;/p&gt;</description>
      </item>
    <item>
        <title>MINIO 集群模型</title>
        <link>https://pgsty.pro/zh/docs/concept/model/minio/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/model/minio/</guid>
        <description>&lt;p&gt;MINIO 是 Pigsty 的对象存储兼容模块名。v4.5.0 当前源码通过 &lt;a href=&#34;https://pgsty.pro/zh/docs/minio/param/#minio_type&#34;&gt;&lt;code&gt;minio_type: silo&lt;/code&gt;&lt;/a&gt; 部署 Silo，并以 &lt;strong&gt;集群&lt;/strong&gt; 组织一组对象存储 &lt;strong&gt;实例&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;每个集群都是一个 &lt;strong&gt;自治&lt;/strong&gt; 的 S3 兼容对象存储单元，由至少一个实例组成，通过 S3 API 端口对外提供服务。&lt;/p&gt;</description>
      </item>
    <item>
        <title>REDIS 集群模型</title>
        <link>https://pgsty.pro/zh/docs/concept/model/redis/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/model/redis/</guid>
        <description>&lt;p&gt;Redis 模块在生产环境中以 &lt;strong&gt;集群&lt;/strong&gt; 的形式组织，这些 &lt;strong&gt;集群&lt;/strong&gt; 是由一组 Redis &lt;strong&gt;实例&lt;/strong&gt; 组成的 &lt;strong&gt;逻辑实体&lt;/strong&gt;，部署在一个或多个 &lt;strong&gt;节点&lt;/strong&gt; 上。&lt;/p&gt;&#xA;&lt;p&gt;每个集群都是一个 &lt;strong&gt;自治&lt;/strong&gt; 的高性能缓存/存储单元，由至少一个 &lt;strong&gt;Redis 实例&lt;/strong&gt; 组成，通过端口向外暴露服务能力。&lt;/p&gt;</description>
      </item>
    <item>
        <title>INFRA 集群模型</title>
        <link>https://pgsty.pro/zh/docs/concept/model/infra/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/model/infra/</guid>
        <description>&lt;p&gt;INFRA 模块在 Pigsty 中承担着特殊的角色：它不是传统意义上的&amp;quot;集群&amp;quot;，而是由一组 &lt;strong&gt;基础设施节点&lt;/strong&gt; 构成的管理中枢，为整个 Pigsty 部署提供核心服务。&#xA;每个 INFRA 节点都是一个 &lt;strong&gt;自治&lt;/strong&gt; 的基础设施服务单元，运行着 Nginx、Grafana、VictoriaMetrics 等核心组件，共同为纳管的数据库集群提供可观测性与管理能力。&lt;/p&gt;</description>
      </item>
    <item>
        <title>3坏2应急处理</title>
        <link>https://pgsty.pro/zh/docs/pgsql/tutorial/drill/</link>
        <pubDate>Sat, 11 Jan 2025 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/tutorial/drill/</guid>
        <description>&lt;p&gt;如果经典3节点高可用部署同时出现两台（多数主体）故障，系统通常无法自动完成故障切换，需要人工介入：&lt;/p&gt;&#xA;&lt;p&gt;首先判断另外两台服务器的情况，如果短时间内可以拉起，优先选择拉起另外两台服务。否则进入 &lt;strong&gt;紧急止血流程&lt;/strong&gt;&lt;/p&gt;</description>
      </item>
    <item>
        <title>PostgreSQL</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/postgres/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/postgres/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://www.postgresql.org/&#34;&gt;PostgreSQL&lt;/a&gt; 是世界上最先进和最受欢迎的开源数据库。&lt;/p&gt;&#xA;&lt;p&gt;默认安装 PostgreSQL 18，支持 PostgreSQL 14 ~ 18，并提供 575 个 PG 扩展。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;快速开始&#34;&gt;快速开始&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;使用 &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/pgsql.yml&#34;&gt;&lt;code&gt;pgsql&lt;/code&gt;&lt;/a&gt; 配置模板 &lt;a href=&#34;https://pgsty.pro/zh/docs/setup/install/&#34;&gt;&lt;strong&gt;安装&lt;/strong&gt;&lt;/a&gt; Pigsty。&lt;/p&gt;</description>
      </item>
    <item>
        <title>Supabase</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/supabase/</link>
        <pubDate>Sun, 23 Jun 2024 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/supabase/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://supabase.com/&#34;&gt;Supabase&lt;/a&gt; —— Build in a weekend, Scale to millions&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Supabase 是一个开源的 Firebase 替代，对 PostgreSQL 进行了封装，并提供了认证，开箱即用的 API，边缘函数，实时订阅，对象存储，向量嵌入能力。&#xA;这是一个低代码的一站式后端平台，能让你几乎告别大部分后端开发的工作，只需要懂数据库设计与前端即可快速出活！&lt;/p&gt;</description>
      </item>
    <item>
        <title>Citus</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/citus/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/citus/</guid>
        <description>&lt;p&gt;Pigsty 原生支持 Citus。这是一个基于原生 PostgreSQL 内核的分布式水平扩展插件。&lt;/p&gt;&#xA;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/pigsty/citus.jpg&#34; alt=&#34;Citus&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;安装&#34;&gt;安装&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Citus 是一个 PostgreSQL &lt;a href=&#34;https://pgsty.pro/zh/docs/pgsql/ext/&#34;&gt;扩展插件&lt;/a&gt;，可以按照标准插件安装的流程，在原生 PostgreSQL 集群上加装启用。&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-8fcc0cd5-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;1&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-8fcc0cd5-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./pgsql.yml -t pg_extension -e &lt;span class=&#34;s1&#34;&gt;&amp;#39;{&amp;#34;pg_extensions&amp;#34;:[&amp;#34;citus&amp;#34;]}&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;配置&#34;&gt;配置&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;要定义一个 citus 集群，您需要指定以下参数：&lt;/p&gt;</description>
      </item>
    <item>
        <title>Babelfish</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/babelfish/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/babelfish/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://babelfishpg.org/&#34;&gt;Babelfish&lt;/a&gt; 是一个提供 MS SQL Server 线缆协议兼容性的内核分支 + 扩展，由 AWS 开源。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;概览&#34;&gt;概览&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty 允许您使用 &lt;code&gt;mssql&lt;/code&gt; 模式部署 Babelfish 内核，在 PostgreSQL 上提供：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;SQL Server 线缆协议兼容（TDS 协议，&lt;code&gt;1433&lt;/code&gt; 端口）&lt;/li&gt;&#xA;&lt;li&gt;T-SQL 语法兼容&lt;/li&gt;&#xA;&lt;li&gt;与 Pigsty 现有能力（高可用、备份、监控、IaC）统一集成&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;在 Pigsty v4 中，Babelfish 支持 &lt;strong&gt;PostgreSQL 17/18&lt;/strong&gt;，默认模板使用 &lt;code&gt;pg_version: 17&lt;/code&gt;，并已经纳入 Pigsty 标准交付链路。支持所有 Linux 平台。&lt;/p&gt;</description>
      </item>
    <item>
        <title>IvorySQL</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/ivorysql/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/ivorysql/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://www.ivorysql.org/&#34;&gt;IvorySQL&lt;/a&gt; 是一个开源的，旨在基于 PG 提供 “Oracle 兼容性” 的 PostgreSQL 内核分支。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;概览&#34;&gt;概览&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty PGSQL 仓库直接提供 IvorySQL 5.4 软件包，兼容 PostgreSQL 18.4，并覆盖当前支持的 EL、Debian、Ubuntu 与双架构平台。&#xA;在线安装使用 Pigsty 的 &lt;code&gt;pgsql&lt;/code&gt; 仓库；商业版同时提供对应平台的离线交付方案。&lt;/p&gt;</description>
      </item>
    <item>
        <title>PolarDB PG</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/polardb/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/polardb/</guid>
        <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;概览&#34;&gt;概览&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty 允许使用 PolarDB 创建带有 “国产化信创资质” 的 PostgreSQL 集群！&lt;/p&gt;&#xA;&lt;p&gt;PolarDB for PostgreSQL 当前以 PostgreSQL 17 为基线，Pigsty 中的 &lt;code&gt;polar&lt;/code&gt; 模板、默认路径与扩展说明也已经同步到 PG17。任何兼容 PostgreSQL 线缆协议的客户端工具都可以访问 PolarDB 集群。&lt;/p&gt;</description>
      </item>
    <item>
        <title>PolarDB Oracle</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/polardb-o/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/polardb-o/</guid>
        <description>&lt;p&gt;Pigsty 允许使用 PolarDB 创建带有 “国产化信创资质” 的 PolarDB for Oracle 集群！&lt;/p&gt;&#xA;&lt;p&gt;根据 【&lt;a href=&#34;http://www.itsec.gov.cn/aqkkcp/cpgg/202312/t20231226_162074.html&#34;&gt;安全可靠测评结果公告（2023年第1号）&lt;/a&gt;】，附表三、集中式数据库。PolarDB v2.0 属于自主可控，安全可靠的国产信创数据库。&lt;/p&gt;&#xA;&lt;p&gt;PolarDB for Oracle 是基于 PolarDB for PostgreSQL 进行二次开发的 Oracle 兼容版本，两者共用同一套内核，通过 &lt;code&gt;--compatibility-mode&lt;/code&gt; 参数进行区分。&lt;/p&gt;</description>
      </item>
    <item>
        <title>Percona</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/percona/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/percona/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://www.percona.com/postgresql/software/postgresql-distribution&#34;&gt;Percona Postgres&lt;/a&gt; 是一个带有 &lt;a href=&#34;https://docs.percona.com/pg-tde/index.html&#34;&gt;&lt;code&gt;pg_tde&lt;/code&gt;&lt;/a&gt;（透明数据加密）扩展的补丁 Postgres 内核。&lt;/p&gt;&#xA;&lt;p&gt;Pigsty 从 v4.4.0 起将 Percona PostgreSQL 打包到私有前缀 &lt;code&gt;/usr/pgtde-$v&lt;/code&gt;，v4.5.0 延续这一布局&#xA;（PostgreSQL 18 对应 &lt;code&gt;/usr/pgtde-18&lt;/code&gt;）。&lt;code&gt;pgtde&lt;/code&gt; 包别名会同时安装内核包&#xA;与 contrib 包，其中包含 &lt;code&gt;pg_tde&lt;/code&gt;、PostGIS、pgvector、wal2json、pg_repack、&#xA;pgaudit、pg_stat_monitor 等常用组件。&lt;/p&gt;</description>
      </item>
    <item>
        <title>openHalo</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/openhalo/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/openhalo/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://www.openhalo.org/&#34;&gt;OpenHalo&lt;/a&gt; 是一个开源的 PostgreSQL 内核，提供 MySQL 线协议兼容性。&lt;/p&gt;&#xA;&lt;p&gt;openHalo 基于 PostgreSQL 14.18 内核版本，提供与 MySQL 5.7.32-log / 8.0 版本的线协议兼容性。Pigsty 通过 &lt;code&gt;pg_mode: mysql&lt;/code&gt; 与 &lt;code&gt;openhalo&lt;/code&gt; 包别名交付。&lt;/p&gt;&#xA;&lt;p&gt;Pigsty 在所有支持的 Linux 平台上为 OpenHalo 提供部署支持。&lt;/p&gt;</description>
      </item>
    <item>
        <title>Greenplum</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/greenplum/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/greenplum/</guid>
        <description>&lt;p&gt;Pigsty 支持部署 Greenplum 集群，及其衍生发行版 YMatrixDB，并提供了将现有 Greenplum 部署纳入 Pigsty 监控的能力。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;概览&#34;&gt;概览&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Greenplum / YMatrix 集群部署能力仅在专业版本/企业版本中提供，目前不对外开源。&lt;/p&gt;</description>
      </item>
    <item>
        <title>OrioleDB</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/orioledb/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/orioledb/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://orioledb.com/&#34;&gt;OrioleDB&lt;/a&gt; 是一个 PostgreSQL 存储引擎扩展，声称能够提供 4 倍 OLTP 性能，没有 xid 环绕和表膨胀问题，并具有&amp;quot;云原生&amp;quot;（数据存储在 S3）能力。&lt;/p&gt;&#xA;&lt;p&gt;OrioleDB 当前在 Pigsty 中支持 PostgreSQL 16、17、18 三个兼容系，当前基线版本为 OrioleDB 1.8 beta16。&lt;/p&gt;</description>
      </item>
    <item>
        <title>Cloudberry</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/cloudberry/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/cloudberry/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://cloudberry.apache.org/&#34;&gt;Cloudberry&lt;/a&gt; 是一个源自 Greenplum 社区的开源 MPP 数据仓库内核，适合大规模并行分析场景。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;概览&#34;&gt;概览&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;在 Pigsty 中，Cloudberry 沿用 &lt;code&gt;gpsql&lt;/code&gt; 模式接入，与 Greenplum / MatrixDB 共享一套身份模型、监控逻辑与目录约定。&lt;/p&gt;</description>
      </item>
    <item>
        <title>Neon</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/neon/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/neon/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://github.com/neondatabase/neon&#34;&gt;&lt;strong&gt;Neon&lt;/strong&gt;&lt;/a&gt; 采用了存储与计算分离架构，提供了丝滑的自动扩缩容，Scale to Zero，以及数据库版本分叉等独家能力。&lt;/p&gt;&#xA;&lt;p&gt;Neon 官网：https://neon.tech/&lt;/p&gt;</description>
      </item>
    <item>
        <title>AgensGraph</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/agensgraph/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/agensgraph/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://github.com/skaiworldwide-oss/agensgraph&#34;&gt;AgensGraph&lt;/a&gt; 是基于 PostgreSQL 的属性图数据库内核，支持 openCypher 查询，并允许 Cypher 与 SQL 混合使用。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;概览&#34;&gt;概览&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty 通过 &lt;code&gt;pg_mode: agens&lt;/code&gt; 接入 AgensGraph，并保留标准 PostgreSQL 集群的大部分运维体验。&lt;/p&gt;</description>
      </item>
    <item>
        <title>pgEdge</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/pgedge/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/pgedge/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://www.pgedge.com/&#34;&gt;&lt;strong&gt;pgEdge&lt;/strong&gt;&lt;/a&gt; 是面向边缘场景的分布式 PostgreSQL 发行版，核心能力建立在 &lt;a href=&#34;https://docs.pgedge.com/spock-v5&#34;&gt;&lt;strong&gt;Spock&lt;/strong&gt;&lt;/a&gt; 多主逻辑复制之上。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;概览&#34;&gt;概览&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty 通过 &lt;code&gt;pg_mode: pgedge&lt;/code&gt; 接入 pgEdge，并用标准 PG 集群编排流程交付其核心组件：&lt;/p&gt;</description>
      </item>
    <item>
        <title>DocumentDB</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/documentdb/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/documentdb/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://pigsty.cc/ext/e/documentdb&#34;&gt;&lt;strong&gt;DocumentDB&lt;/strong&gt;&lt;/a&gt; 是微软开源维护的 PostgreSQL 文档数据库扩展，&lt;a href=&#34;https://github.com/FerretDB/FerretDB&#34;&gt;&lt;strong&gt;FerretDB&lt;/strong&gt;&lt;/a&gt; 是构建在其上的无状态协议转换代理。&#xA;两者组合，让标准 PostgreSQL 内核对外提供 MongoDB 线协议兼容端点——使用 MongoDB 驱动的应用程序可以直接对接，请求被转换为对 PostgreSQL 的操作。&lt;/p&gt;</description>
      </item>
    <item>
        <title>内核分支</title>
        <link>https://pgsty.pro/zh/docs/pgsql/kernel/</link>
        <pubDate>Sun, 23 Jun 2024 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/pgsql/kernel/</guid>
        <description>&lt;p&gt;在 Pigsty 中，您可以使用不同 &amp;ldquo;&lt;strong&gt;风味&lt;/strong&gt;&amp;rdquo; 的 PostgreSQL 分支替换 &amp;ldquo;原生 PG 内核&amp;rdquo;，实现特殊的功能与效果。&lt;/p&gt;&#xA;&lt;p&gt;Pigsty 支持多种 PostgreSQL 内核和兼容分支，让您能够在同一套运维体系中获得兼容性、多主复制、图查询、MPP 数仓、透明加密等不同能力。&lt;/p&gt;</description>
      </item>
    <item>
        <title>服务接入</title>
        <link>https://pgsty.pro/zh/docs/concept/ha/svc/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/zh/docs/concept/ha/svc/</guid>
        <description>&lt;blockquote&gt;&#xA;&lt;p&gt;分离读写操作，正确路由流量，稳定可靠地交付 PostgreSQL 集群提供的能力。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/ha/svc/#%e6%9c%8d%e5%8a%a1%e6%a6%82%e8%bf%b0&#34;&gt;服务&lt;/a&gt; 是一种抽象：它是数据库集群对外提供能力的形式，并封装了底层集群的细节。&lt;/p&gt;&#xA;&lt;p&gt;服务对于生产环境中的 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/ha/svc/#%e6%8e%a5%e5%85%a5%e6%9c%8d%e5%8a%a1&#34;&gt;稳定接入&lt;/a&gt; 至关重要，在 &lt;a href=&#34;https://pgsty.pro/zh/docs/concept/ha/&#34;&gt;高可用&lt;/a&gt; 集群自动故障时方显其价值，&lt;a href=&#34;https://pgsty.pro/zh/docs/concept/ha/svc/#%e5%8d%95%e6%9c%ba%e7%94%a8%e6%88%b7&#34;&gt;单机用户&lt;/a&gt; 通常不需要操心这个概念。&lt;/p&gt;</description>
      </item>
    
  </channel>
</rss>
