原创 使用repmgrd實現postgresql failover和auto failover

前面的文章介紹了postgresql基於repmgr的高可用及切換方案,這篇文章主要聊聊通過repmgrd實現failover及auto failover。 前提是部署好postgresql主從,同時部署好repmgr。 [pos

原创 全面講解分佈式數據庫架構設計特點

行業背景 隨着全球經濟下行壓力增大,中美貿易摩擦愈演愈烈,美國一系列的經濟制裁和技術封鎖使得我們有種被扼住咽喉的感覺,數據庫作爲基礎軟件中的重要一環有着很深的技術含量,在這樣的大背景下國產數據庫廠商開始發力,這其中分佈式數據庫如雨

原创 華爲GaussDB數據庫相比PostgreSQL做了哪些內核優化

行業背景 隨着全球經貿摩擦與中美貿易戰愈演愈烈,國家基礎軟件自主可控被提上議程。數據庫作爲基礎設施中重要的一環,承擔着不可忽視的作用。近幾年國產數據庫得到了飛速的發展,特別是雲數據庫、分佈式數據庫產品也越來越多。這其中華爲公司也已

原创 基於repmgr的postgresql主備高可用方案

本文比較基礎,主要介紹postgresql開源高可用工具repmgr的部署和使用,初學者可以根據本文步驟一步一步做下去,廢話不多說,直接進入主題,本文以兩臺機器爲例。 1.兩臺機器分別編譯安裝postgresql,步驟略。 2.主

原创 PostgreSQL數據庫xlog文件命名

我們會在postgresql數據庫的數據目錄下pg_xlog(新版本已經變爲pg_wal)目錄下看到下面這些文件: 如果第一次看到這些文件名可能覺得命名很奇怪,這麼一串數字有什麼含義呢,爲什麼要這樣命名,這就要從lsn說起。 我

原创 PostgreSQL的幾種分佈式架構對比

Postgresql由於強大的功能和良好的擴展性,基於postgresql來做的分佈式架構也比較多,大部分用於分析類場景,下面比較幾種常見的架構特點。 Citus Citus以插件的方式擴展到postgresql中,獨立於post

原创 爲什麼要慎用replication slot

複製槽概念 複製槽(replication slot)在postgresql9.4版本中被引入,引入之初是爲了防止備庫需要的xlog日誌在主庫被刪除,主庫會會根據備庫返回的信息確認哪些xlog已不再需要,,才能進行清理。同時主庫不

原创 pg_rewind到底能做什麼?

我們知道postgresql的主從切換有點麻煩,或者說操作步驟要求很嚴格。可能我們經常遇到這種情況,在沒有將主庫殺死的情況下將備庫提升爲主,這時主備庫可能由於某種原因都在提供寫入操作,這時發生腦裂,如果不考慮數據丟失因素,這時我們

原创 PostgreSQL的元組、頁面結構及索引查找原理

我們知道postgresql數據庫通過數據多版本實現mvcc,pg又沒有undo段,老版本的數據元組直接存放在數據頁面中,這樣帶來的問題就是舊元組需要不斷地進行清理以釋放空間,這也是數據庫膨脹的根本原因。本文簡單介紹一下postg

原创 PostgreSQL堆內元組、動態剪枝技術介紹

上一篇文章《PostgreSQL的元組、頁面結構及索引查找原理》中介紹了postgresql數據庫數據結構和索引查找過程,本文接着繼續介紹下堆內元組和動態剪枝技術,這兩個技術其實是相輔相成的。我們知道在數據庫元組插入更新時,索引也

原创 MHA vs MGR誰更合適用在生產系統

MySQL爲什麼如此流行的原因是因爲它很早就有了非常成熟的高可用方案,這個方案就是mha,很多互聯網公司都是基於mha做的高可用,所有受衆面非常廣。其實還有個小原因就是我們從上大學學習數據庫原理這門課的時候老師就是拿mysql數據

原创 使用pg_repack實現在線vacuum

Postgresql通過數據多版本實現mvcc,刪除數據並不會真正刪除數據,而是修改標識,更新是通過刪除+插入的方式進行,所以在頻繁更新的系統,數據膨脹是個頭疼的問題,如果不進行處理,數據膨脹倍數可能達到十幾倍。 爲了處理膨脹問題

原创 硬核-深度剖析PostgreSQL數據庫“凍結炸彈”原理機制

凍結(FREEZE),相信熟悉pg的人都對這個詞不陌生,因爲凍結過程對數據庫的資源消耗極大,影響業務的正常運行,所以也被稱爲“凍結炸彈”。網上關於凍結的文章也比較多,本文就系統性的介紹一下凍結過程的原理以及如何預防。 事務號回捲問

原创 PostgreSQL主從流複製原理及搭建

Postgresql9開始支持流複製(stream replication),作爲pg原生的複製技術,有着很好的性能。本文從幾個方面全面介紹pg的流複製技術。 主從部署 Postgresql主從部署比較簡單,首先你需要安裝好主從兩

原创 PostgreSQL中的幾種索引類型

索引是增強數據庫性能的利器,在檢索某些特定行的時候效率會有很大提升,postgresql中索引類型豐富,每種索引有着不同的應用場景,下面簡單介紹一下。 索引類型與場景 BTree   • =, >, >=, <, <=、排序 Ha