目標____HTMLTAG_66__HTMLTAG_67___學完本課後,您將:HTMLTAG_68__HTMLTAG_69__HTMLTAG_70___從軟體包儲存庫安裝 Postgre____HTMLTAG_71__HTMLTAG_70___從軟體包儲存庫安裝 Postgre____HTMLTAG_71__HTMLTAGSQL_72___gre (選用)HTMLTAG_73__HTMLTAG_74___配置postgresql.conf HA 基本___HTMLTAG_77__HTMLTAG_78___了解pg_hba.conf___MLTAG_78___了解___HT138____4_2_2_2_7_7_7_FML_7_20_7_2_2_7_FML____個節點上為 Patroni 叢集準備 PostgreSQL____HTMLTAG_83__HTMLTAG_84__HTMLTAG_85___1。從套件儲存庫安裝 PostgreSQL___HTMLTAG_86__HTMLTAG_87___1.1。準備工作___HTMLTAG_88__HTMLTAG_89___在安裝 PostgreSQL 之前,您需要安裝官方 PostgreSQL 儲存庫套件(PGDG - PostgreSQL 全球開發小組)。 HTMLTAG_90__HTMLTAG_91__HTMLTAG_92___PGDG 儲存庫的優點:HTMLTAG_94__HTMLTAG_95__HTMLTAG_96✅ 最新 PostgreSQL版本___HTMLTAG_95__HTMLTAG_96✅ 最新 PostgreSQL版本ML 快速安全更新____HTMLTAG_99__HTMLTAG_100✅ 许多可用扩展___HTMLTAG_101__HTMLTAG_102✅ 支持许多发行版___HTMLTAG_103__HTMLTAG_104__HTMLTAG_105___1.2。在 Ubuntu/Debian 上安裝___HTMLTAG_106__HTMLTAG_107___步驟 1:新增 PGDG 儲存庫___HTMLTAG_108__CODEBLOCK_0__HTMLTAG_109___步驟 2:安裝 PostgreSQL___HTMLTAG_110__CODEBLOCK_110__CO 3:測試服務___HTMLTAG_112__CODEBLOCK_2__HTMLTAG_113___步驟 4:停止並停用 PostgreSQL 預設叢集___HTMLTAG_114__CODEBLOCK_3__HTMLTAG_115___1.3。在 CentOS/RHEL/Rocky Linux 上安裝___HTMLTAG_116__HTMLTAG_117___步驟 1:新增 PGDG 儲存庫___HTMLTAG_118__CODEBLOCK_4__HTMLTAG_119___步驟 2:安裝 PostgreSQL
MLTAG_119___步驟 2:安裝 PostgreSQLML 3:建立符號連結(可選,但方便)___HTMLTAG_122__CODEBLOCK_6__HTMLTAG_123___第 4 步:不要初始化資料庫(Patroni 會執行此操作)___HTMLTAG_124__CODEBLOCK_7__HTMLTAG_125___2。從原始程式碼安裝 PostgreSQL(可選 - 進階)___HTMLTAG_126__HTMLTAG_127___從原始程式碼安裝允許自訂編譯選項,但更複雜且難以維護.___HTMLTAG_128__HTMLTAG_129___2.1。什麼時候需要從源安裝? HTMLTAG_130__HTMLTAG_131__HTMLTAG_132___🔧 需要二進位套件中沒有的自訂功能___HTMLTAG_133__HTMLTAG_134___🔧 使用開發版本進行測試___HTMLTAG_135__HTMLTAG_136*針對硬體進行了最佳化可以___HTMLTAG_137__HTMLTAG_138___🔧應用自訂補丁___HTMLTAG_139__HTMLTAG_140__HTMLTAG_141___2.2。來源安裝過程___HTMLTAG_142__HTMLTAG_143___步驟一:安裝相依性___HTMLTAG_144__CODEBLOCK_8__HTMLTAG_145___第2步:下載來源___HTMLTAG_146__CODEBLOCK_9__HTMLTAG_147133672UUS____ML LOCK_10__HTMLTAG_149___第4步:設定環境___HTMLTAG_150__CODEBLOCK_11__HTMLTAG_151__HTMLTAG_152___注意:從來源安裝不會自動有__53_70____MLd服務,需要手動建立153_MLG151____4153____ML_153_ML4。基本的 postgresql.conf 配置___HTMLTAG_156__HTMLTAG_157___Patroni 將透過 DCS 管理大部分 PostgreSQL 設定。但是,了解重要參數非常重要。 _HTMLTAG_158__HTMLTAG_159___3.1。文件結構 postgresql.conf___HTMLTAG_160__CODEBLOCK_12__HTMLTAG_161___3.2。 HA 的重要參數_HTMLTAG_163___复制设置____HTMLTAG_164__CODEBLOCK_13__HTMLTAG_165___内存设置___HTMLTAG_166__CODEBLOCK_14__HTMLTAG_167___检查点设置____HTMLTAG_168__CODEBLOCK_15__HTMLTAG_169___日志记录设置___HTMLTAG_170__CODEBLOCK_16__HTMLTAG_171___3.3。 Patroni 將覆蓋設定___HTMLTAG_172__HTMLTAG_173___Patroni 透過 DCS 管理下列參數,NO 應在 postgreHTsql.conf 中設定:___HTMLTAG_176__CODEBLOCK_17HTsql.conf 将自动设置它们在postgresql.auto.conf.___HTMLTAG_180__HTMLTAG_181___4。了解 pg_hba.conf___HTMLTAG_182__HTMLTAG_183__HTMLTAG_184___pg_hba.conf(基于主机的身份验证)控制客户端身份验证。 __HTMLTAG_186__HTMLTAG_187___4.1。 pg_hba.conf 的结构____HTMLTAG_188__CODEBLOCK_18__HTMLTAG_189___4.2。列____HTMLTAG_190__HTMLTAG_191__HTMLTAG_192__HTMLTAG_193___TYPE:HTMLTAG_195__HTMLTAG_196__HTML TAG_197___local:Unix套接字连接___HTMLTAG_199__HTMLTAG_200__HTMLTAG_201___主机:TCP/IP(明文或。 TCP/IP___HTMLTAG_211__HTMLTAG_212__HTMLTAG_213__HTMLTAG_214__HTMLTAG_215___DATABASE:HTMLTAG_217__HTMLTAG_218_____20UMLGML_19217_______20_218 HTMLTAG_222:所有資料庫___HTMLTAG_223__HTMLTAG_224__HTMLTAG_225___replication:複製連線___HTMLTAG_227__HTMLTAG_228__HTMLTAG_229__HTMLTAG_230114231429__HT _:___HTMLTAG_233__HTMLTAG_234___用户名___HTMLTAG_235__HTMLTAG_236__HTMLTAG_237___全部:全部用户___HTMLTAG_23 9__HTMLTAG_240__HTMLTAG_241__HTMLTAG_242__HTMLTAG_243___位址:____HTMLTAG_245__HTMLTAG_246___IP/網路遮罩: ;10.0.1.0/24___HTMLTAG_248__HTMLTAG_249__HTMLTAG_250___主机名___HTMLTAG_251__HTMLT AG_252__HTMLTAG_253___0.0.0.0/0:任何地方(不是推荐)_HTMLTAG_255__HTMLTAG_256__HTMLTAG_2 57__HTMLTAG_258__HTMLTAG_259___方法:HTMLTAG_261__HTMLTAG_262__HTMLTAG_263____信任:不需要密碼(本地開發僅)HTMLTAG_265__HTMLTAG_266__HTMLTAG_267___md5:MD5雜湊密碼(已棄用)HTMLTAG_269__HTMLTAG_270__HTMLTAG_271___scram-sha-256:現代、安全(建議)HTMLTAG_273__HTMLTAG_274__HTMLTAG_275_____er___VUURAUr_Us____UsUUUR.使用者名稱____HTMLTAG_277__HTMLTAG_278__HTMLTAG_279___cert:SSL 憑證驗證___HTMLTAG_281__HTMLTAG_282__HTMLTAG_283__HTMLTAG_284__HTMLTAG_284___MLTAG_283__HTMLTAG_284281413。 Patroni 集群的 pg_hba.conf___HTMLTAG_286__CODEBLOCK_19__HTMLTAG_287___4.4。 pg_hba.conf 的最佳實務___HTMLTAG_288__HTMLTAG_289✅ 具體更好:請勿使用0.0.0.0/0否則需要___HTMLTAG_294__HTMLTAG_295✅使用 scram-sha-256:現代身份驗證方法___HTMLTAG_298__HTMLTAG_299✅單獨用戶:應用程式、複製的不同用戶,監控___HTMLTAG_302__HTMLTAG 303✅ 文檔:每條規則的註解___HTMLTAG_306__HTMLTAG_307✅ 限制複製:僅允許來自允許來自於Patroni IP 的複製使用者節點___HTMLTAG_310__HTMLTAG_311❌ 避免信任方法:即使在開發環境中___HTMLTAG_314__HTMLTAG_315___5。建立必要的使用者和資料庫___HTMLTAG_316__HTMLTAG_317___5.1。创建复制用户___HTMLTAG_318__CODEBLOCK_20__HTMLTAG_319___5.2。创建 Patroni 监控用户___HTMLTAG_320__CODEBLOCK_21__HTMLTAG_321___5.3。建立應用程式資料庫和使用者-- Tạo database CREATE DATABASE myapp;-- Tạo user CREATE USER app_user WITH ENCRYPTED PASSWORD 'app_password';
-- Grant permissions GRANT ALL PRIVILEGES ON DATABASE myapp TO app_user;
-- Connect to myapp database \c myapp
-- Grant schema permissions GRANT ALL ON SCHEMA public TO app_user;