Chuyển đến nội dung chính

PostgreSQL 透過 Patroni 和 etcd 實現高可用性

了解如何使用 Patroni 和 etcd 部署 PostgreSQL 高可用性叢集。從A到Z的實作課程:安裝、設定、自動故障轉移、監控和生產作業。 29 節課程 + 詳細的實驗。

___HTMLTAG_0__HTMLTAG_1___第 1 課:PostgreSQL 高可用性概述___HTMLTAG_2__HTMLTAG_3__HTMLTAG_4__HTMLTAG_5___為什麼採用 HA? ___HTMLTAG_6__HTMLTAG_7___PostgreSQL 的 HA 方法___HTMLTAG_8__HTMLTAG_9___比較:Patroni、RepmgrML 與 Pacemaker___HTMLTAG_10__HTMLTAG_11___系統概述架構___HTMLTAG_12__HTMLTAG_13__HTMLUsU​​P.P12__HTMLTAG13__14213122__HT中的流式複製___HTMLTAG_16__HTMLTAG_17__HTMLTAG_18__HTMLTAG_19___流式複製機制___HTMLTAG_20__HTMLTAG_21___WAL(預寫日誌記錄)___HTMLTAG_22__HTMLTAG_23___同步驟與非同步複製____HTMLTAG_24__HTMLTAG_25___複製槽___HTMLTAG_26__HTMLTAG_27___實驗室:簡單複製設定(主備)_HTMLTAG_28__HTMLTAG_29__HTMLTAG_30__HTMLTAG_31___第3 課:Patroni 簡介和etcd___HTMLTAG_32__HTMLTAG_33__HTMLTAG_34__HTMLTAG_35___Patroni 是什麼?它是如何運作的___HTMLTAG_36__HTMLTAG_37___DCS(分散式設定儲存)-etcd/Consul/ZooKeeper___HTMLTAG_38__HTMLTAG_39 _共識演算法(Raft)__HTMLTAG_40__HTMLTAG_41___領導者選舉與領導者選舉故障轉移機制____HTMLTAG_42__HTMLTAG_43____腦裂問題及解決方法 ___HTMLTAG_44__HTMLTAG_45__HTMLTAG_46__HTMLTAG_47___第4課:準備基礎架構____HTMLTAG_48__HTMLTAG_49__HTMLTA G_50__HTMLTAG_51___部分硬性需求與要求軟體___HTMLTAG_52__HTMLTAG_53___網路與防火牆設定___HTMLTAG_54__HTMLTAG_55___設定3 台虛擬機器/伺服器(VirtualBox/VMware/Cloud)__HTMLTAG_56__HTMLTAG_57___基於 SSH 金鑰的驗證___HTMLTAG_58__HTMLTAG_59___時間同步(NTP/chrony)HTMLTAG_60__HTMLTAG_612HTMLGMLTAG__6121U4U4UU4U4U4U4:CU4UU4U4PTAG_612 月PostgreSQL____HTMLTAG_64__HTMLTAG_65__HTMLTAG_66__HTMLTAG_67___從軟體包儲存庫安裝 PostgreSQL___HTMLTAG_68__HTMLTAG_69___從來源安裝(選用)HTMLTAG_70__HTMLTAG_71___MLTAG_71 pg_hba.conf____HTMLTAG_74__HTMLTAG_75___實驗室:在 3 個節點上安裝 PostgreSQL___HTMLTAG_76__HTMLTAG_77__HTMLTAG_78__HTMLTAG_79___第 6 課:安裝與設定 etcd cluster____HTMLTAG_80__HTMLTAG_81__HTMLTAG_82__HTMLTAG_83___下載並安裝etcd____HTMLTAG_84__HTMLTAG_85___設定etcd叢集3個節點 HTMLTAG_86__HTMLTAG_87___建立systemd服務___HTMLTAG_88__HTMLTAG_89___檢查etcd叢集的運作狀況____HTMLTAG_90__HTMLTAG_91___etcdctl basic指令____HTMLTAG_92__HTMLTAG_93___實驗室:完全設定etcd叢集編輯___HTMLTAG_94__HTMLTAG_95__HTMLTAG_96__HTMLTAG_97___第7課:安裝Patr oni___HTMLTAG_98__HTMLTAG_99______HTMLTAG_100__HTMLTAG_101___安裝Python相依性____HTMLTAG_102__HTMLTAG_103___透過安裝Patroni pip____HTMLTAG_104__HTMLTAG_105___Patroni.yml 檔案結構___HTMLTAG_106__HTMLTAG_107___為 Patroni 建立 systemd 服務____HTMLTAG_108__HTMLTAG_109___實驗:在 3 個節點上安裝Patroni___HTMLTAG_110__HTMLTAG_111__HTMLTAG_112__HTMLTAG_113___第 8課程:設定Patroni詳細介紹___HTMLTAG_114__HTMLTAG_115__HTMLTAG_116__HTMLTAG_117___分析patroni.yml檔案各部分___HTMLTAG_118__HTMLTAG_119___Bo otstrap設定___HTMLTAG_120__HTMLTAG_121___PostgreSQL參數調優___HTMLTAG_122__HTMLTAG_123___驗證設定____HTMLTAG_124__HTMLTAG_125___Tags 與約束____HTMLTAG_126__HTMLTAG_127__HTMLTAG_128__HTMLTAG_129___第 9 課:引導 PostgreSQL 132__HTMLTAG_130__HTMLTAG_131__HTMLTAG_132__HTMLTAGroni33_____次頭___HTMLTAG_134__HTMLTAG_135___自動引導process___HTMLTAG_136__HTMLTAG_137___使用papatictl檢查叢集狀態____HTMLTAG_138__HTMLTAG_139___常見問題故障排除____HTMLTAG_140__HTMLTAG_141___實驗室:將叢集引導至公共___HTMLTAG_142__HTMLTAG_143__HTMLTAG_144__HTMLTAG_145___第10課:複製管理___HTMLTAG_146__HT MLTAG_147__HTMLTAG_148__HTMLTAG_149___同步與非同步副本___HTMLTAG_150__HTMLTAG_151___設定同步_模式___HTMLTAG_152__HTMLTAG_153___同步_節點_計數___HTMLT AG_154__HTMLTAG_155___監視複製lag____HTMLTAG_156__HTMLTAG_157___實驗室:同步設定複製____HTMLTAG_158__HTMLTAG_159__HTMLTAG_160__HTMLTAG_161___第11課程:回呼腳本與掛鉤____HTMLTAG_162__HTMLTAG_163__HTMLTAG_164__HTMLTAG_165___on_start、on_stop、on_role_change回呼___HTMLTAG_166__HTMLTAG_167___通知的自訂腳本通知HTMLTAG_168__HTMLTAG_169___与监控系统集成___HTMLTAG_170__HTMLTAG_171___实验室:编写脚本以在故障转移时发送警报___HTMLTAG_172__HTMLTAG_173__HTMLTAG_174__HTMLTAG_175___第12 課:REST API 與patronictl____HTMLTAG_176__HTMLTAG_177__HTMLTAG_178__HTMLTAG_179___Patroni REST API 端點___HTMLTAG_180__HTMLTAG_181_____42_tl 指令使用實現自動化___HTMLTAG_184__HTMLTAG_185___實驗室:透過 CLI 和API___HTMLTAG_186__HTMLTAG_187__HTMLTAG_188__HTMLTAG_189___模組4:故障轉移與復原復原(4課)HTMLTAG_191__HTMLTAG_192__HTMLTAG_193___第13課:自動故障轉移 HTMLTAG_194__HTMLTAG_195__HTMLTAG_196__HTMLTAG_197___偵測機制錯誤___HTMLTAG_198__HTMLTAG_199___領導者選舉流程___HTMLTAG_200__HTMLTAG_201___故障轉移時間軸___HTMLTAG_202__HTMLTAG_203___測試自動故障轉移____HTMLTAG_204__HTMLTAG_205___實驗室:模擬主節點故障轉移___MLTAG_2060UMLTAG_205___實驗室:模擬主節點故障___MLTAG_20602GMLGML 14 課:使用主節點進行切換計畫___HTMLTAG_210__HTMLTAG_211__HTMLTAG_212__HTMLTAG_213___何時需要切換? HTMLTAG_214__HTMLTAG_215___計劃切換與故障轉移___HTMLTAG_216__HTMLTAG_217___零停機維護___HTMLTAG_218__HTMLTAG_219___實驗室:實作切換____HTMLTAG_220HTMLHTMLTAG_22119___ML課:恢復失敗的節點____HTMLTAG_224__HTMLTAG_225__HTMLTAG_226__HTMLTAG_227___重新加入失敗的主節點___HTMLTAG_228__HTMLTAG_229___pg_rewind機制___HTML TAG_230__HTMLTAG_231___從備份重建副本___HTMLTAG_232__HTMLTAG_233___實驗室:恢復場景___HTMLTAG_234__HTMLTAG_235__HTMLTAG_236__HTMLTAG_237___第16課:備份和時間點恢復____HTMLTAG_238__HTMLTAG_239__HTMLTAG_240__HTMLTAG_241___pg_basebackup___HTMLTAG_242__HTMLTAG_243___WAL歸檔____HTMLTAG_244__422G_244__連續設定歸檔___HTMLTAG_246__HTMLTAG_247___PITR(時間點復原)HTMLTAG_248__HTMLTAG_249___實驗室:從備份還原資料庫___HTMLTAG_250__HTMLTAG_251__HTMLTAG_252__HTMLTAG_253 17 課:監控 Patroni 群集___HTMLTAG_254__HTMLTAG_255__HTMLTAG_256__HTMLTAG_257___要追蹤的指標___HTMLTAG_258__HTMLTAG_259___Prometheus 整合 + Grafana___HTMLTAG_260__HTMLTAG_261___postgres_exporter___HTMLTAG_262__HTMLTAG_263___警报规则___HTMLTAG_264__HTMLTAG_265___实验室:设置监控堆栈___HTMLTAG_266__HTMLTAG_267__HTMLTAG_268__HTMLTAG_269___第 18 课:性能调优___HTMLTAG_270__HTMLTAG_271__HTMLTAG_272__HTMLTAG_273___PostgreSQL 配置调优___HTMLTAG_274__HTMLTAG_275___连接池 (PgBouncer)___HTMLTAG_276__HTMLTAG_277___负载平衡 (HAProxy/pgpool)_HTMLTAG_278__HTMLTAG_279___读取副本扩展___HTMLTAG_280__HTMLTAG_281___实验室:优化集群性能___HTMLTAG_282__HTMLTAG_283__HTMLTAG_284__HTMLTAG_285___第 19 课:日志记录和故障排除___HTMLTAG_286__HTMLTAG_287__HTMLTAG_288__HTMLTAG_289___PostgreSQL 日志___HTMLTAG_290__HTMLTAG_291___Patroni 日志___HTMLTAG_292__HTMLTAG_293___etcd 日志___HTMLTAG_294__HTMLTAG_295___常见问题以及如何解决修复____HTMLTAG_296__HTMLTAG_297___调试技术___HTMLTAG_298__HTMLTAG_299__HTMLTAG_300__HTMLTAG_301___第 20課:安全最佳實務___HTMLTAG_302__HTMLTAG_303__HTMLTAG_304__HTMLTAG_305___SSL/TLS 配置___HTMLTAG_306__HTMLTAG_307___身份验证方法___HTMLTAG_308__HTMLTAG_309___网络安全___HTMLTAG_310__HTMLTAG_311___静态加密___HTMLTAG_312 HTMLTAG_313___审核日志记录___HTMLTAG_314__HTMLTAG_315___实验室:强化集群安全性___HTMLTAG_316__HTMLTAG_317__HTMLTAG_318__HTMLTAG_319___第21 課:多重資料中心設定___HTMLTAG_320__HTMLTAG_321__HTMLTAG_322__HTMLTAG_323___跨 DC複製策略___HTMLTAG_324__HTMLTAG_325___異步級聯複製____HTMLTAG_326__HTMLTAG_327___災難復原規劃___HTMLTAG_328__HTMLTAG_329___地理負載平衡___HTMLTAG_3301HTMLTAG_33112323123121UU​​PTA2312312323112__課:Patroni Kubernetes____HTMLTAG_334__HTMLTAG_335__HTMLTAG_336__HTMLTAG_337___Patroni 运算符___HTMLTAG_338__HTMLTAG_339___StatefulSets____HTMLTAG_340__HTMLTAG_341___持久卷____HTMLTAG_342__HTMLTAG_343___Helm 图表___HTMLTAG_344__HTMLTAG_345___实验室:在 K8s上部署____HTMLTAG_346__HTMLTAG_347__HTMLTAG_348__HTMLTAG_349___第 23 課:Patroni 配置管理___HTMLTAG_350__HTMLTAG_351__HTMLTAG_352__HTMLTAG_350__HTMLTAG_351__HTMLTAG_352__HTMLTAG_353_____HTMLTA453_____HT DCS配置____HTMLTAG_356__HTMLTAG_357___patronictl edit-config____HTMLTAG_358__HTMLTAG_359___配置验证___HTMLTAG_360__HTMLTAG_361___实验室:无需停机即可更新配置____HTMLTAG_362__HTMLTAG_363__HTMLTAG_364__HTMLTAG_365___第 24課:升級策略___HTMLTAG_366__HTMLTAG_367__HTMLTAG_368__HTMLTAG_369___PostgreSQL主要版本升級___HTMLTAG_370__HTMLTAG_371___Patron i版本升级___HTMLTAG_372__HTMLTAG_373___零停机升级技巧___HTMLTAG_374__HTMLTAG_375___回滚程序___HTMLTAG_376__HTMLTAG_377___实验室:将集群从PG 14 升級到 15___HTMLTAG_378__HTMLTAG_379__HTMLTAG_380__HTMLTAG_381___第 25 课:真实案例研究____HTMLTAG_382__HTMLTAG_383__HTMLTAG_384__HTMLTAG_385___生产架构示例___HTMLTAG_386__HTMLTAG_387___扩展策略____HTMLTAG_388__HTMLTAG_389____成本最佳化___HTMLTAG_390__HTMLTAG_391___經驗教訓___HTMLTAG_392__HTMLTAG_393__HTMLTAG_394__HTMLTAG_395___第 26 課:使用 Ansible實現自動化____HTMLTAG_396__HTMLTAG_397__HTMLTAG_398__HTMLTAG_399___Ansible手冊部署____HTMLTAG_400__HTMLTAG_401____設定管理____HTMLTAG_402__HTMLTAG_403___自動化測試___HTMLTAG_404__HTMLTAG_405 CI/CD整合___HTMLTAG_406__HTMLTAG_407___實驗室:自動化部署___HTMLTAG_408__HTMLTAG_409__HTMLTAG_410__HTMLTAG_411___第27 課:災難復原演習____HTMLTAG_412__HTMLTAG_413__HTMLTAG_414__HTMLTAG_415___DR規劃____HTMLTAG_416__HTMLTAG_417___測試程序____HTMLTAG_418__HTMLTAG_419___事件回應___HTMLTAG_420__HTMLTAG_421___事後分析 HTMLTAG_422__HTMLTAG_423___實驗室:完整的災難復原模擬___HTMLTAG_424__HTMLTAG_425__HTMLTAG_426__HTMLTAG_427___第28課:架構設計HA HTMLTAG_428__HTMLTAG_429__HTMLTAG_430__HTMLTAG_431___需求收集___HTMLTAG_432__HTMLTAG_433___架構設計文件___HTMLTAG_434 _HTMLTAG_435___容量規劃___HTMLTAG_436__HTMLTAG_437___成本估計___HTMLTAG_438__HTMLTAG_439__HTMLTAG_440__HTMLTAG_441___第 29課程:部署生產就緒叢集___HTMLTAG_442__HTMLTAG_443__HTMLTAG_444__HTMLTAG_445___完成部署草稿___HTMLTAG_446__HTMLTAG_447___ML_HTMLTAG_448__HTMLTAG_ML449_447___ML1450___________1TAG_ML449_______________識轉移___HTMLTAG_452__HTMLTAG_453___最終評估___HTMLTAG_454__HTMLTAG_455__HTMLTAG_456__HTMLTAG_457__HTMLTAG_458___先決條件:____HTMLTAG_459__MLTAGMLTAG_458___先決條件:____HTMLTAG_459__14GML_459__164版本___HTMLTAG_463__HTMLTAG_464___PostgreSQL 基礎知識___HTMLTAG_465__HTMLTAG_466___網路基礎___HTMLTAG_467__HTMLTAG_468___Shell腳本____HTMLTAG_469__HTMLTAG_470__HTMLTAG_471__HTMLTAG_472___課程結束後的目標:___HTMLTAG_473__HTMLTAG_474__HTMLTAG_475__HTMLTAG_476___實作 PostgreSQL HA___叢集生產就緒___HTMLTAG_477__HTMLTAG_478___叢集管理與操作____HTMLTAG_479__HTMLTAG_480___事件處理與故障排除___HTMLTAG_481__HTMLTAG_482___最佳化效能與安全性___HTMLTAG_48381UG_48388