Kenny's Blog

這是Kenny's technology blog,歡迎交流_(:3」∠)_

0%

今天這篇文章,是因應公司讀書會整理出來 Postgres 從 physical replication 到 logical replication 的相關概念。從歷史演化來看,並且理解 backup & recovery 概念後,再來理解何謂 physical replication,而 physical replication 本身功能已經發展多年,從 PG 10 開始發展 logical replication 並且到 PG 15 這之間做了不少 logical replication 的加強。

閱讀全文 »

延續上一篇講 pgcapture 的架構介紹與使用方式,接下來會開一系列文章講解 pgcapture 重要的實作細節。今天這篇文章先來講講 pgcapture 是如何做到 DDL 捕捉的。

閱讀全文 »

上次我們講到如何透過 pgoutput plugin 加上 pgx 來實作我們自己的 CDC 功能,但是其缺點是無法複製 DDL 且直到 pg 14 才支援 pgoutput 有 binary format 的功能。

因此今天來介紹我前同事開發的 pgcapture 是如何去解決以上提到的兩個缺點的,且如何使用。

閱讀全文 »

上一篇文章我們知道 logical decoding 的概念,這次我們來示範如何用 golang + pgx 來實現 CDC 的效果。我們知道從 Postgres 10 開始支援用 pub & sub 這種 logical replication 的方式,因此也提供 pgoutput 的 plugin 來實現 logical decoding。

因此這邊文章是使用 pgoutput + golang client 實現 logical replication 進而實現捕捉 CDC Event 的效果。

閱讀全文 »

在之前的文章有介紹過 logical replication 的概念,但其實 logical 這個概念是從 Postgres 9.4 開始提供 logical decoding 功能而來的,也是因為在 9.4 提供這個功能後,開始能夠利用這個特性實現自己的 logical replication。因此今天來介紹一下,什麼是 logical decoding,它的運作原理是什麼以及示範一下用法。

閱讀全文 »

延續上次 Postgres Stream Replication 的筆記,這次來講講 pgpool-ll,這個東西可以想成是 postgres 的 proxy,並且可以做到 load balance 的效果。

在升級 Postgres 的版本之前,如果你的 Postgres 前面有掛 pgpool-ll,那麼升級後,就必須去更改 pgpool-ll 的設定,因此這邊決定會先來幾篇文章講講 pgpool-ll 的相關設定。

閱讀全文 »

今年是 2023 年,想說來回顧一下,去年 2022 年的寫筆記到現在的回顧。

閱讀全文 »

上次提到 pg_upgrade 可以快速 upgrade 單台的 Postgres Server,最後結尾有提到要如何針對 PG Cluster 做升級。這篇先不講,先來記錄一下如何快速在 PG 建立起 cluster 並且採用 physical replication。

這樣下篇文章才可以來講講如何快速針對 PG Cluster 做升級。

閱讀全文 »

最近在研究如何快速對 Postgres 進行升版,之前有聽過透過 Logical Replication 的方式來進行升版,但後來發現 Postgres 官方有推出 pg_upgrade 工具可以 in place 的快速升級 Postgres,並且保證盡可能向下相容,且支援跨主版本的升級。

因此這篇文章就來講講 pg_upgrade 這個工具怎麼使用。

閱讀全文 »

在今年 2022 Google I/O 上, Google 宣佈了新的 AlloyDB For Postgres 新產品,AlloyDB 是與 Postgres 完全相容的 database,是拿 Postgres 的 Source Code 加以改良性能,使得可以應付 enterprise-grade transactional and analytical workloads

該篇文章的筆記是來自於閱讀 AlloyDB intelligent, database-aware storageAlloyDB Columnar engine 兩篇文章的。

閱讀全文 »