PostgreSQL高可用實戰( 簡體 字) | |
作者:胡輝 等 | 類別:1. -> 資料庫 -> PostgreSQL |
出版社:電子工業出版社 | ![]() 詢問書籍請說出此書號! 缺書 NT售價: 510 元 |
出版日:3/1/2022 | |
頁數:230 | |
光碟數:0 | |
站長推薦: ![]() ![]() ![]() ![]() ![]() | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121430381 | 【不接受訂購】 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1章 高可用概述 / 1
1.1 什么是高可用 / 1 1.1.1 概述 / 1 1.1.2 相關指標 / 2 1.2 高可用設計概述 / 3 1.2.1 容災冗余設計概述 / 3 1.2.2 高可用技術概覽 / 5 第2章 代理和連接池 / 7 2.1 代理和連接池架構 / 7 2.2 通過HAProxy實現代理 / 8 2.2.1 HAProxy概念 / 8 2.2.2 安裝HAProxy / 9 2.2.3 啟動HAProxy / 12 2.3 PgBouncer / 12 2.3.1 安裝PgBouncer / 13 2.3.2 PgBouncer基本配置 / 14 2.3.3 使用PgBouncer / 16 2.3.4 監控PgBouncer / 19 2.3.5 在線配置PgBouncer / 21 2.3.6 增強PgBouncer用戶訪問 / 21 2.4 Odyssey / 24 2.4.1 Odyssey的作用 / 24 2.4.2 安裝Odyssey / 25 2.4.3 配置Odyssey / 25 2.4.4 啟動Odyssey / 26 2.5 虛擬IP地址高可用 / 26 2.5.1 Keepalived實現原理 / 26 2.5.2 安裝Keepalived / 27 2.5.3 HAProxy與PgBouncer 部署 / 28 第3章 PostgreSQL流復制 / 33 3.1 流復制概念 / 33 3.2 PostgreSQL流復制歷程 / 33 3.3 流復制基礎——WAL / 35 3.3.1 WAL概念 / 35 3.3.2 WAL日志文件 / 35 3.3.3 WAL日志詳情舉例 / 37 3.4 物理流復制 / 39 3.4.1 物理流復制的原理 / 40 3.4.2 流復制同步級別控制 / 40 3.4.3 物理流復制的特點 / 41 3.4.4 物理流復制的搭建 / 43 3.4.5 物理流復制監控視圖 / 50 3.4.6 主從切換 / 52 3.5 邏輯復制 / 58 3.5.1 邏輯復制的原理 / 58 3.5.2 邏輯復制的特點 / 59 3.5.3 邏輯復制的關鍵步驟 / 60 3.5.4 邏輯復制的角色 / 62 3.5.5 搭建邏輯復制 / 63 3.5.6 邏輯復制監控視圖 / 68 第4章 備份恢復管理 / 72 4.1 備份恢復管理概述 / 72 4.2 原生備份恢復工具 / 72 4.2.1 邏輯備份和恢復 / 72 4.2.2 物理備份和恢復 / 78 4.2.3 增量備份和恢復 / 87 4.3 第三方備份恢復工具之 pg_probackup / 96 4.3.1 pg_probackup概述 / 96 4.3.2 pg_probackup的安裝和 配置 / 98 4.3.3 使用pg_probackup 備份 數據庫 / 99 4.3.4 使用pg_probackup 恢復 數據庫 / 102 4.4 第三方備份恢復工具之 pgBackRest / 107 4.4.1 pgBackRest概述 / 107 4.4.2 安裝和部署 / 108 4.4.3 使用和管理 / 109 4.5 第三方備份恢復工具之 pg_rman / 117 4.5.1 pg_rman概述 / 117 4.5.2 安裝和部署 / 118 4.5.3 使用和管理 / 118 第5章 使用repmgr實現高 可用性 / 124 5.1 repmgr介紹 / 124 5.1.1 全棧架構 / 124 5.1.2 repmgr兼容矩陣 / 127 5.1.3 概念介紹 / 127 5.1.4 推薦架構 / 128 5.2 安裝和部署 / 130 5.2.1 環境準備 / 130 5.2.2 yum源安裝 / 132 5.2.3 源代碼安裝 / 133 5.3 集群配置 / 134 5.3.1 配置主庫 / 134 5.3.2 配置克隆從庫 / 138 5.3.3 見證服務 / 140 5.4 服務管理 / 142 5.4.1 手動故障切換 / 142 5.4.2 自動故障轉移 / 146 5.4.3 IP自動漂移 / 149 5.4.4 管理命令說明 / 152 5.5 在線維護和升級 / 153 5.5.1 升級說明 / 153 5.5.2 升級主要版本 / 154 5.5.3 升級次要版本 / 157 第6章 使用Patroni實現高 可用性 / 158 6.1 Patroni概述 / 158 6.1.1 Patroni架構及功能 / 158 6.1.2 Patroni REST API / 160 6.1.3 Watchdog支持 / 165 6.1.4 Patroni的安全性 / 166 6.1.5 在Kubernetes下使用 Patroni / 167 6.2 相關組件介紹 / 167 6.2.1 Patroni與HAProxy / 167 6.2.2 Patroni與etcd / 168 6.3 安裝和配置 / 169 6.3.1 軟件版本 / 169 6.3.2 環境信息 / 169 6.3.3 安裝和配置etcd / 169 6.3.4 安裝和配置 PostgreSQL / 171 6.3.5 安裝和配置Patroni / 174 6.3.6 集群間的級聯復制 / 178 6.3.7 安裝和配置HAProxy / 179 6.4 在線維護和升級 / 181 6.4.1 將獨立版本轉換為 Patroni集群 / 181 6.4.2 PostgreSQL版本升級 / 181 6.5 日常操作 / 182 6.5.1 修改PostgreSQL參數 / 183 6.5.2 查看Patroni節點狀態 / 183 6.6 多主機URL客戶端訪問 配置 / 184 第7章 多主復制高可用 / 186 7.1 多主節點介紹 / 186 7.2 確定多主節點是否適合 當前需求 / 188 7.3 安裝BDR / 190 7.3.1 單BDR節點 / 192 7.3.2 創建一個額外的 BDR節點 / 193 7.3.3 在每個節點上測試 DDL復制 / 196 7.4 安全使用序列 / 199 7.4.1 使用序列 / 199 7.4.2 分配全局序列 / 201 7.5 為多主節點方法配置 HAProxy / 202 7.6 執行托管節點切換 / 205 7.7 提高故障切換速度 / 207 7.8 在線執行重大版本升級 / 209 本書以實踐為導向,主要講解在真實環境下如何使用PostgreSQL集群及repmgr、Patroni、BDR多主復制等PostgreSQL主流高可用技術,揭示PostgreSQL可靠性和高可用性的技術特點。同時介紹pg_probackup、pgBackReset、pg_rman、PgBouncer、Odyssey等備份和連接池工具的運用方法。本書秉承技術由實戰中來、到實戰中去的原則,以實戰為主線,將PostgreSQL各種主流的高可用技術貫穿起來,并輔以原理進行講解。 本書適合從事數據庫工作的技術管理者、架構師、數據庫管理工程師和技術愛好者閱讀。
推薦序一
隨著產業數字化、數字產業化的不斷深入和推進,作為數據存儲與處理核心組件的數據庫當前正處于快速變革期。面對新技術、新企業和新產品的不斷涌現,從業者需要密切關注各方動態,才能保證成為行業排頭兵。 PostgreSQL作為開源數據庫中的佼佼者,應用范圍和深度正在不斷擴大,圍繞PostgreSQL的生態正在快速完善。 盤古云課堂作為一家專注于PostgreSQL技術的培訓機構,致力于國內開源數據庫的人才培養,目前已經培養了百名優秀的PostgreSQL認證工程師。在專注于人才培養的同時,盤古云課堂依然秉承“傳道、授業、解惑”的原則,有效利用和整合自身平臺豐富的人才資源,為PostgreSQL生態發展貢獻了豐富的專業知識和實踐經驗。 最近得知,盤古云課堂的第一本書《PostgreSQL高可用實戰》即將完稿出版,深知本書編寫的艱辛與不易,整個創作過程需要作者具備強大的恒心和毅力,付出很多的辛勤與汗水,非常敬佩這樣的創作團隊。 初讀本書內容,贊嘆于作者團隊敏銳的視角,尤其針對目前PostgreSQL高可用解決方案,本書給出了清晰、細致的理論講解與實踐指導。讀者閱讀本書后,可以更加清晰地理解和掌握高可用的相關知識點,學以致用。 盤古云課堂作為數據庫產業中的重要力量,一直大力支持和協助我們工作,在此也深表感謝。 中國信通院大數據與區塊鏈部高級業務主管 馬鵬瑋 推薦序二 PostgreSQL是世界上領先的開源數據庫,起源于20世紀70年代美國加利福尼亞大學伯克利分校,創始人是榮獲圖靈獎的Michael Stonebraker。PostgreSQL遵循BSD開源協議,開發者可以無償獲得源代碼,并能根據自己的需要定制修改,自主選擇是否開放修改后的程序代碼。PostgreSQL全球開發小組所倡導的自由、民主、泛眾的開源精神,凝聚了世界各地的內核開發人才,促進了PostgreSQL功能的穩定迭代。截至目前,PostgreSQL已迭代到13版本,而且得到了國內外眾多企業用戶的認可和使用,其中不乏有對穩定性、功能性要求非常高的金融銀行系統。 目前,亞馬遜、微軟、華為和阿里巴巴等世界500強的大型企業都在使用PostgreSQL技術;企業用戶涵蓋金融、能源、零售、互聯網等各個行業。PostgreSQL是大型企業和互聯網“去Oracle”的優選方案,能夠幫助企業有效地管理數據和降低成本;也是大數據、云計算領域架構中關系數據庫存儲管理的最佳選擇。同時,在國內也有包括阿里巴巴、騰訊、華為和瀚高在內的許多企業基于PostgreSQL研發云產品及自主可控數據庫產品。 工信部中國開源軟件推進聯盟PostgreSQL分會是工信部下屬、國內唯一官方認可的PostgreSQL行業協會組織,承擔在國內發展和推廣PostgreSQL技術的職能。基于PostgreSQL在中國發展的良好態勢,中國PostgreSQL分會聯合權威認證機構、知名培訓機構共同打造了中國PostgreSQL培訓認證(簡稱“中國PG培訓認證”)體系。中國PG培訓認證體系旨在為PostgreSQL生態企業發展提供專業技術人才;為有志于從事相關工作的人員提供高效的培訓指導、權威的等級認證。中國PG培訓認證是目前國內唯一的PostgreSQL技術等級認證,填補了國內PostgreSQL技術領域相關空白,這對PostgreSQL培訓乃至技術的發展、推廣都會起到巨大的支持和推動作用。 盤古云課堂是中國PostgreSQL分會的主要合作培訓機構之一,其擁有多位在PostgreSQL應用領域具有豐富經驗的講師和專業的在線教育平臺。由專業講師力量基于中國PG分會認證體系課程組織編寫的PostgreSQL學習系列教材,為大家更有效地學習、提升PostgreSQL數據庫技能提供了更為豐富、全面的學習資源,將為培育更多數據庫領域人才提供更大的幫助。 本系列教材與中國PG培訓認證體系的初、中、高級技能認證保持一致,是中國PG培訓認證體系的有效補充內容,便于大家更系統、自主地學習開源PostgreSQL技術,適合從事數據庫相關工作的在職工程師和準備從事數據庫領域工作的人員閱讀。與數據庫相關的工作崗位有很多,如數據庫管理工程師(DBA)、數據庫應用開發工程師、數據庫內核開發工程師、數據分析師、數據架構師等,就業前景廣闊。專業的培訓認證能幫助從業者更有效地提升技能,勝任崗位。 本書主要圍繞數據庫的一個經典主題——高可用——組織內容,能夠指導大家為企業部署穩健的PostgreSQL高可用架構,從而保證業務的連續性。一本書的價值如何,主要在于幫讀者解答了多少困惑,如果你心存困惑,不妨讀一讀、練一練。相信盤古云課堂經驗豐富的講師們定會將他們的實戰經驗匯聚于書,為大家學習和部署PostgreSQL高可用架構鋪平道路。 PostgreSQL的核心價值是能夠幫助企業用低成本管理數據資產。最后,希望在大家的共同參與下,功能強大的開源PostgreSQL數據庫越來越好用,被越來越多的企業使用。 中國開源軟件推進聯盟PostgreSQL分會 推薦序三 2020年,全球數據庫市場規模約為665億美元,并且每年保持15%以上的增速。在排名前十的數據庫中,PostgreSQL是唯一的純社區、非商業開源數據庫,并且最近4年的增速排名第一。其中的原因是什么? 第一,數據庫行業依舊是朝陽產業,市場空間足夠大。隨著通信、互聯網、物聯網的發展,數據需要存儲、計算、互聯互通,數據庫是受益最大的產品之一。 第二,PostgreSQL擁有大師級別的頂層設計。社區產品頂層設計:誰有需求(目標客戶)→目標客戶如何回饋PostgreSQL社區(代碼);商業產品頂層設計:目標客戶→目標客戶如何回饋商業公司(付費)。 1.對于最終用戶 ? 公司不以售賣PostgreSQL產品為核心,主業務與PostgreSQL不相關,只是使用PostgreSQL。 ? 大客戶買商業數據庫比自己培養PostgreSQL代碼貢獻者成本高,而且被商業數據庫綁定很危險。 ? 以小博大,四兩撥千斤。如果全球有很多PostgreSQL大客戶都為PostgreSQL貢獻代碼,那么PostgreSQL的發展會遠遠比商業數據庫快。 ? 自己說了算,給PostgreSQL社區貢獻代碼,當然站在自己的角度,需要什么特性就貢獻什么特性。 ? 自己掌握核心科技。 ? 通過PostgreSQL代碼的架構更能證明這一點,PostgreSQL代碼的架構非常開放,可讀性非常好,擴展能力極強。因為最終用戶希望更多的企業參與貢獻,所以代碼可讀性、可擴展性和靈活性是首要的。 2.對于云數據庫服務商和數據庫廠商 ? 沒有DBA,沒有具備內核研發能力的數據庫使用者。 ? PostgreSQL的開源協議允許任何廠商包裝PostgreSQL代碼并拿出去售賣,無論是否將包裝后的代碼開源,都沒有法律風險。 ? 為什么選擇你?品牌影響力足夠大,比自建更省心。 ? 怎么體現影響力?有能力處理PostgreSQL內核,有客戶背書,貢獻度高。 3.對于技術支持服務商 ? 目標客戶是傳統客戶。 ? 這種客戶怎么選擇服務商呢? 商業數據庫有官方授權服務商,但是PostgreSQL這種純社區的開源數據庫沒有官方授權。 ? 商業數據庫技術支持的影響力,可以通過為PostgreSQL貢獻代碼來證明。 4.對于高校 ? 目的是培養數據庫人才,首選經久不衰的社區、中立型開源數據庫,PostgreSQL是很好的選擇。 ? 教學成果如何展示?學生能力如何體現?貢獻代碼。 PostgreSQL社區形成了良好的生態閉環,全球化開源研發協作已歷經23年,管理組織、規章制度非常完善。 進入數字化、信息化時代,數據是重要的生產資料,數據的存儲和計算都與數據庫有關。在城市化、數字化和信息化時代,數據庫屬于產業鏈上游的能力,同時也是國家競爭力的體現。然而,目前國內數據庫在市場占有率、核心技術和人才等方面都還有很大的提升空間。 2020年中央經濟工作會議指出了幾項重點任務。一是強化國家戰略科技力量。要充分發揮國家作為重大科技創新組織者的作用,堅持戰略性需求導向,確定科技創新方向和重點,著力解決制約國家發展和安全的重大難題。二是增強產業鏈供應鏈自主可控能力。產業鏈供應鏈安全穩定是構建新發展格局的基礎。要統籌推進補齊短板和鍛造長板,針對產業薄弱環節,實施好關鍵核心技術攻關工程,盡快解決一批“卡脖子”問題,在產業優勢領域精耕細作,做出更多獨門絕技。數據庫作為產業鏈上游的基礎功能,加大投入勢在必行。 PostgreSQL不受任何企業或國家的控制,開源協議友好,可以自由使用、分發、修改源碼。同時,基于PostgreSQL研發自有分支,擁有選擇開源或閉源的權利,這使得PostgreSQL成為最佳的商業數據庫基座之一。全球有眾多基于PostgreSQL的商業數據庫或開源數據庫,包括大數據分析、時序數據庫、圖數據庫、關系數據庫、兼容Oracle型等商業或開源數據庫產品。 在企業中使用PostgreSQL就是“藏富于民”的做法,只有將數據庫人才散落在企業中,這個行業才會生生不息,借助PostgreSQL的人才儲備,推動基于PostgreSQL的商業分支的發展,形成增長飛輪。 感謝盤古云課堂策劃的《PostgreSQL 高可用實戰》一書,感謝作者們的辛勤付出。本書的出版大大降低了PostgreSQL 用戶的管理門檻,推動了PostgreSQL技術的普及,期待上市大賣! PostgreSQL中文社區常委 周正中(德哥) |