概述
今天主要介紹一些PostgreSQL的工具,大體上可以分為以下幾類:
- 備份恢復工具
- 監控工具
- 邏輯和基于觸發器的復制工具
- 多主復制工具
- 高可用和故障轉移工具
- 連接池工具
- 表分區工具
- 遷移工具
一、備份恢復工具
1、Barman
Barman (Backup and Recovery Manager-備份恢復管理器) 是一個用Python語言實現的PostgreSQL災難恢復管理工具,它由第二象限公司(2ndQuadrant)開源并維護。它允許我們在關鍵業務環境中執行遠程備份,為數據庫管理員在恢復階段提供有效的數據保證。Barman最優秀的功能包括備份元數據、增量備份、保留策略、遠程回復、WAL文件歸檔壓縮和備份。
Barman (Backup and Recovery Manager) is an open-source administration tool for managing backup and disaster recovery of PostgreSQL servers. It allows your organization to perform remote backups of multiple servers in business critical environments and helps DBAs during the recovery phase.
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數據庫提供開箱即用的監控功能。因為它已經集成到了容器里,所以我們不必擔心各種依賴和復雜的安裝步驟,幾分鐘即可將監控搭建完畢,所有的東西都已經提前配置好。我們只需要將數據庫連接配置到監控中即可運行正常監控操作。
三、邏輯和基于觸發器的復制工具
1、pgLogical
pglogical是采用PostgreSQL擴展插件的形式實現的邏輯復制工具。集成完善,不使用任何觸發器和外部程序。該插件作為物理復制的替代者,在有選擇性的復制時采用發布/訂閱模型,是復制數據的有效方式。
2、Slony-I
Slony-I是PostgreSQL一主多從復制體系的實現,支持級聯復制。開發Slony-I的主要目的是為了實現主從復制,該復制體系包含大型數據庫系統中對合理配置從系統所要求的所有特征和能力。
Slony-I主要為數據中心和備份站點場景設計,這種場景下通常要求所有節點都是可用的。
3、Bucardo
Bucardo是一個PostgreSQL異步復制系統,允許配置多主多從操作。它是Backcountry.com公司的Jon Jensen和Greg Sabino開發的。
四、多主復制工具
1、BDR
Postgres-BDR(Bi-Directional Replication for PostgreSQL)是世界上第一個開源PostgreSQL多主復制系統,目的是強化生產環境。由第二象限(2ndQuadrant)公司開源并維護,BDR為地理分布集群環境特別設計,使用搞笑的異步邏輯復制方式,支持從2個到48個以上節點在不同地域之間分布。
五、高可用和故障轉移工具
1、Repmgr
repmgr是一款開源的、用于PostgreSQL服務器集群復制管理和故障轉移的工具。它擴展了PostgreSQL內建的hot-standby能力,可以設置熱備份服務器、監控復制、執行管理任務(故障轉移、手工切換等)。repmgr是第二象限( 2ndQuadrant)公司開發的。
repmgr is an open-source tool suite for managing replication and failover in a cluster of PostgreSQL servers. It enhances PostgreSQL\’s built-in hot-standby capabilities with tools to set up standby servers, monitor replication, and perform administrative tasks such as failover or manual switchover operations.
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數據庫操作比其自身所能提供的最大連接數更大的客戶端訪問。它本質上只追蹤每一個客戶端連接,然后基于配置信息,創建一些客戶端連接并基于先進先服務的原則服務于客戶端訪問。
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可以給大型數據庫不停機分區,加速分區表查詢,動態管理和增加分區,為分區增加外部表,操作聯合分區等。
八、遷移工具
1、Ora2pg
Ora2Pg是一個用于將Oracle或MySQL數據庫遷移到PostgreSQL的免費工具。它能連接到Oracle數據庫,然后自動掃描和導出源端的表結構或者數據,轉化為PostgreSQL數據庫SQL腳本。Ora2Pg可以當作Oracle數據庫的反向引擎,用于大型企業級數據庫遷移或者Oracle數據復制到PostgreSQL數據庫等場景。它易于使用,不需要任何Oracle數據庫背景,你所需要做的僅僅是建立與Oracle數據庫的連接而已。
Ora2Pg is a free tool used to migrate an Oracle database to a PostgreSQL compatible schema. It connects your Oracle database, scan it automaticaly and extracts its structure or data, it then generates SQL scripts that you can load into PostgreSQL.
后面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~
如果你覺得這篇文章對你有幫助, 請小小打賞下.
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。