詳細的PostgreSQL工具總結:備份恢復、監控、復制、高可用等


轉載自:

https://database.51cto.com/art/201908/601020.htm

詳細的PostgreSQL工具總結:備份恢復、監控、復制、高可用等

今天主要介紹一些PostgreSQL的工具,大體上可以分為以下幾類,下面,我們一起來看。

作者:波波說運維來源: 今日頭條|2019-08-09 08:33

概述

今天主要介紹一些PostgreSQL的工具,大體上可以分為以下幾類:

  • 備份恢復工具
  • 監控工具
  • 邏輯和基於觸發器的復制工具
  • 多主復制工具
  • 高可用和故障轉移工具
  • 連接池工具
  • 表分區工具
  • 遷移工具

一、備份恢復工具

1. Barman

Barman (Backup and Recovery Manager-備份恢復管理器) 是一個用Python語言實現的PostgreSQL災難恢復管理工具,它由第二象限公司(2ndQuadrant)開源並維護。它允許我們在關鍵業務環境中執行遠程備份,為數據庫管理員在恢復階段提供有效的數據保證。Barman最優秀的功能包括備份元數據、增量備份、保留策略、遠程回復、WAL文件歸檔壓縮和備份。

2. EDB BART

EDB BART(Backup and Recovery Tool -備份恢復工具)是企業級PostgreSQL數據管理策略的關鍵組件。BART為大規模部署的PostgreSQL服務提供保留策略和基於時間點恢復的實現。BART 2.0版本提供塊級別的增量備份。

3. PgBackRest

pgBackRest工具的主要目的是做一款簡單可靠的備份恢復工具,以能夠無縫的接入到大規模數據庫和工作負載中。pgBackRest放棄了其他傳統備份工具依賴tar和rsync的套路,它的備份功能都是從軟件內部實現的,並采用客戶端協議與遠程服務器交互。移除了對tar和rsync的依賴,使它能夠更好的應對針對特定數據庫的備份挑戰。客戶端遠程協議更加靈活,協議可以按照要求限制連接類型以保證備份過程更安全。

二、監控工具

1. PoWA

PoWA(PostgreSQL Workload Analyzer)是PostgreSQL的工作負載分析工具,它收集性能數據並提供實時的圖標和圖片展示,以幫助我們監控和調優PostgreSQL服務器。它和Oracle AWR或者SQL Server MDW很像。

2. PgCluu

pgCluu是一個PostgreSQL的性能監控和審計工具。它以視圖的形式展示您從PostgreSQL數據庫集群收集的所有統計信息。它能展示一份完成的數據庫集群信息和系統使用率信息。

3. Pgwatch2

Pgwatch2是監控PostgreSQL數據庫工具中最易用的一個。它基於Grafana並為PostgreSQL數據庫提供開箱即用的監控功能。因為它已經集成到了容器里,所以我們不必擔心各種依賴和復雜的安裝步驟,幾分鍾即可將監控搭建完畢,所有的東西都已經提前配置好。我們只需要將數據庫連接配置到監控中即可運行正常監控操作。

超詳細的PostgreSQL工具總結--備份恢復、監控、復制、高可用等

三、邏輯和基於觸發器的復制工具

1. pgLogical

pglogical是采用PostgreSQL擴展插件的形式實現的邏輯復制工具。集成完善,不使用任何觸發器和外部程序。該插件作為物理復制的替代者,在有選擇性的復制時采用發布/訂閱模型,是復制數據的有效方式。

2. Slony-I

Slony-I是PostgreSQL一主多從復制體系的實現,支持級聯復制。開發Slony-I的主要目的是為了實現主從復制,該復制體系包含大型數據庫系統中對合理配置從系統所要求的所有特征和能力。

Slony-I主要為數據中心和備份站點場景設計,這種場景下通常要求所有節點都是可用的。

3. Bucardo

Bucardo是一個PostgreSQL異步復制系統,允許配置多主多從操作。它是Backcountry.com公司的Jon Jensen和Greg Sabino開發的。

四、多主復制工具

BDR

Postgres-BDR(Bi-Directional Replication for PostgreSQL)是世界上第一個開源PostgreSQL多主復制系統,目的是強化生產環境。由第二象限(2ndQuadrant)公司開源並維護,BDR為地理分布集群環境特別設計,使用搞笑的異步邏輯復制方式,支持從2個到48個以上節點在不同地域之間分布。

五、高可用和故障轉移工具

1. Repmgr

repmgr是一款開源的、用於PostgreSQL服務器集群復制管理和故障轉移的工具。它擴展了PostgreSQL內建的hot-standby能力,可以設置熱備份服務器、監控復制、執行管理任務(故障轉移、手工切換等)。repmgr是第二象限( 2ndQuadrant)公司開發的。

超詳細的PostgreSQL工具總結--備份恢復、監控、復制、高可用等

2. PAF

PAF(PostgreSQL Automatic Failover-自動故障轉工具)是OCF資源代理貢獻給PostgreSQL的,它的初始目的是在Pacemaker管理和PostgreSQL划清規則,讓事情變得簡單、文檔化和有效。如果您的PostgreSQL集群啟用了內部流復制,PAF暴露給Pacemaker當前每一個PostgreSQL實例節點的狀態:哪個是主,哪個是從,哪個已停止,哪個正在追復制狀態等等。如果主節點失敗了,Pacemaker默認首先恢復失敗的主節點。如果失敗不可恢復,PAF會在從節點中選取一個最好的(與已失敗主節點數據最為接近)提升為新的主節點。

3. Patroni

Patroni是一個模板,它使用Python為你提供一個自己訂制的,高可用的解決方案,為最大程度的可用性,它的配置信息存儲在像ZooKeeper, etcd或者Consul中。如果DBAs,DevOps工程師或者SRE正在尋找一個在數據中心中快速部署高可用PostgreSQL方案,或者其他的用途,Patroni 能提供幫助。

4. Stolon

Stolon是一個cloud native的PostgreSQL高可用管理工具。它之所以是cloud native的是因為它可以在為容器內部的PostgreSQL提供高可用(Kubernetes 集成),而且還支持其他種類的基礎設施(比如:cloud IaaS,舊風格的基礎設施等)

六、Connection Pooling Tools

1. PgBouncer

PgBouncer是Skype的研發人員於2007年開發的連接池工具。在那以后的很多年里,該項目已經由很多開發者參與改進,但是無論怎么變,其降低PostgreSQL連接代價的角色一直未曾改變。PgBouncer允許PostgreSQL數據庫操作比其自身所能提供的最大連接數更大的客戶端訪問。它本質上只追蹤每一個客戶端連接,然后基於配置信息,創建一些客戶端連接並基於先進先服務的原則服務於客戶端訪問。

超詳細的PostgreSQL工具總結--備份恢復、監控、復制、高可用等

2. PgPool-II

pgpool-II也是連接池,我們通常也習慣稱它為pgpool。它是另一個流行的連接代理,它早於PgBouncer一年左右的時間發布(2006年下半年發布)。pgpool的使用范圍非常關,所能提供的功能包括:基於查詢的復制,連接池功能,負載均衡,並行查詢等等,pgpool的一個重要特定就是連接池。如果我們有兩台PostgreSQL服務器,我們想使用虛擬IP,這樣客戶端就不會感受到主數據庫切換的影響。有時候,為了在服務器之間移動IP地址,首先需要從主數據庫服務器上把IP移除,然后在另外一台上重建,這就回中斷活動鏈接,導致短暫的服務不可用。使用pgpool可以緩存服務器直到另一台服務器提升上來,pgpool會從內部處理故障轉移,在應用和客戶端的角度,數據庫似乎從來沒有下過線。

七、表分區工具

1. Pg_Partman

pg_partman是PostgreSQL的一個擴展插件,用於創建和管理基於時間或者基於序列的表分區。也支持多級子分區。子表和觸發器都由擴展插件自身管理。已經有數據的表也能很容易的添加細粒度的分區。可選的保留策略能夠自動刪除不再需要的分區。后台工作進程(BGW)能夠自動運行分區維護定時執行任務,而不需要依賴於linux cron等程序從外部進行維護。

2. pg_Pathman

pg_pathman是PostgreSQL Pro公司開源的擴展插件,可以為大型分布式數據庫提供優化的分區解決方案。使用pg_pathman可以給大型數據庫不停機分區,加速分區表查詢,動態管理和增加分區,為分區增加外部表,操作聯合分區等。

八、遷移工具

Ora2pg

Ora2Pg是一個用於將Oracle或MySQL數據庫遷移到PostgreSQL的免費工具。它能連接到Oracle數據庫,然后自動掃描和導出源端的表結構或者數據,轉化為PostgreSQL數據庫SQL腳本。Ora2Pg可以當作Oracle數據庫的反向引擎,用於大型企業級數據庫遷移或者Oracle數據復制到PostgreSQL數據庫等場景。它易於使用,不需要任何Oracle數據庫背景,你所需要做的僅僅是建立與Oracle數據庫的連接而已。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM