中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PostgreSQL 高可用Patroni和學習方法是什么

發布時間:2022-01-04 18:06:49 來源:億速云 閱讀:175 作者:柒染 欄目:大數據

本篇文章為大家展示了PostgreSQL 高可用Patroni和學習方法是什么,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

最近一段時間在學習 POSTGRESQL 的高可用,相關的方法很多,但是坑也很多,在PGPOOL-II上摔不了少跤,同時在學習期間發現一個問題就是,很多時候學習知識并沒有求慎解,并且網上很多帖子都是安裝完畢就OK 了,如果你安裝去做的話,其實很多時候是安裝不成功或問題無法解決。

本著換一種方式學習的,不浪費時間在一些應該知道,但從網上劃拉帖子就做,然后一頭霧水的學習方法,改換為,踏踏實實的來做一次相關的知識的梳理和層次化的學習。

本次學習的是 postgresql  的高可用方式  Patroni

Patroni 本身并不是一個軟件,而是一個模板通過python來構建一個高可用的postgresql的解決方案。軟件本身可以通過其他的分布式軟件來進行支持( zookeeper, etcd  等),同時根據你選擇的不同的模塊來安裝patroni.

Patroni  本身使用的數據同步方式是postgresql的流復制方式,默認的情況我們還是使用異步的方式,在Patroni 中會有一個參數,

Maximum_lag_on_failover  ,通過設置,保證從庫在與主庫超過一定數據不同步的情況下,不會發生相關的主從轉移。

在patroni 的設置中,有三種方式,1 動態設置, 2 本地設置  3 環境設置,其中有一些設置在主庫和從庫之間必須保持一致,這些值在本地中的配置文件是不生效的。

以下值必須在動態設置中保存并設置

 max_connections: 

 max_locks_per_transaction:

max_worker_processes:

max_prepared_transactions

wal_level:hot_standby

wal_log_hints: on

track_commit_timestamp: off

并且還有一些值也是需要大致相同的,主要原因是主從可能發生切換,而如果在切換后,新主的機器不能調整好自身的狀態,則會影響正常的數據庫使用。

max_wal_sender

max_replicaiton_slots:

wal_keep_segments:

同時,

listen_address

port

cluster_name

host_standby

 等參數是通過動態的方式傳遞給 pt_ctl (pt_ctl  是patroni的啟動程序)

并且這些參數的傳遞要高于 alter system 的設置。

具體,patroni 是怎么做的,又是怎么樣的次序來進行配置的讀取

1  節點首先檢查 是否有 postgresql.base.conf (一般默認在安裝后的postgresql 的數據目錄)或者設置了 custom_conf

2 如果custom_conf 設置了相同的參數,則以custom_conf  為主,其他的配置將被忽略

3 如果custom_conf 沒有設置,則以postgresql.base.conf為主,如果還不存在,則將postgresql.conf 變更為postgresql.base.conf

4 動態的選擇項,將可以不使用重新讀取的方式生效,而是編寫應用后就生效。

總結:參數文件被應用的順序

1 postgresql.base.conf

2 postgresql.conf

3 postgresql.auto.conf

4 run-time parameter

而動態的文件中的修改,DCS的配置改變都會將相關的配置保存在 patroni.dynamic的磁盤文件中。

而Patroni 使用的是 YAML的方式來進行配置的,所以這也就要求,配置文件的嚴謹性,例如多一個空格,少一個縮進,都是不可以的。

配置文件的項目很多,這里值關心 global 和 etcd的配置

1 Global 設置

name 集群名集群內的機器必須唯一,每臺機器有自己的名字

namespace  存儲配置信息的區域路徑(請保持默認)

scope 集群的名字

2 log 的配置

level  設置日志的等級

format  設置日志的等級 默認的設置是 asctime  levelname message

dateformat  設置時間格式

dir 要寫入程序日志的目錄,目錄必須存在并且是patroni 用戶編寫并且可以由您設置此值。應用程序將默認保留4個25MB 的日志。

file_num 要保留的日志的數量

 file_size  patroni.log的尺寸

loggers: 定義允許日志等級

引導配置:

DCS: 在集群的全局配置,更改參數需要在 DCS 中或聽過API 進行更改。

loop_wait  循環休眠的描述 默認 10秒

ttl: TTL獲取先導鎖。可以將其視為啟動自動故障轉移過程之前的時間長度。默認值:30

retry_timeout: 分布式程序和POSTGRESQL 之間的失聯后多長時間不觸發切換。

maximum_lag_on_failover:從庫和主庫之間在可以能進行主從切換中運行的字節差距。

master_start_timeout 主庫在故障轉移中的時間容忍度,loop_wait + master_start_timeout+loop_wait

synchronous_mode 打開這個模式將選擇與主庫最接近的從庫作為可的新主庫

synchronous_mode_strict :打開這個模式將如果發現沒有和主庫進行數據復制的從庫,則主庫將禁止寫入數據。

上述內容就是PostgreSQL 高可用Patroni和學習方法是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永昌县| 应用必备| 昂仁县| 苍溪县| 东台市| 丰顺县| 富锦市| 黄平县| 海门市| 会昌县| 万源市| 嵩明县| 许昌市| 阳曲县| 定安县| 湖南省| 伊通| 宁阳县| 昌宁县| 西乌珠穆沁旗| 阜南县| 洛南县| 珲春市| 竹溪县| 商丘市| 凤庆县| 元阳县| 华池县| 镇安县| 桂阳县| 仙居县| 湘乡市| 定襄县| 东海县| 颍上县| 剑川县| 渝北区| 鄱阳县| 西安市| 和静县| 德惠市|