時間:2024-02-05 11:03作者:下載吧人氣:20
1. 基于文件的日志傳送
創建一個高可用性(HA)集群配置可采用連續歸檔,集群中主服務器工作在連續歸檔模式下,備服務器工作在連續恢復模式下(1臺或多臺可隨時接管主服務器),備持續從主服務器讀取WAL文件。
連續歸檔不需要對數據庫表做任何改動,可有效降低管理開銷,對主服務器的性能影響也相對較低。
直接從一個數據庫服務器移動WAL記錄到另一臺服務器被稱為日志傳送,PostgreSQL通過一次一文件(WAL段)的WAL記錄傳輸實現了基于文件的日志傳送。
日志傳送所需的帶寬取根據主服務器的事務率而變化;
日志傳送是異步的,即WAL記錄是在事務提交后才被傳送,那么在一個窗口期內如果主服務器發生災難性的失效則會導致數據丟失,還沒有被傳送的事務將會被丟失;
數據丟失窗口可以通過使用參數archive_timeout進行限制,可以低至數秒,但同時會增加文件傳送所需的帶寬。
2. 流復制
PostgreSQL在9.x之后引入了主從的流復制機制,所謂流復制,就是備服務器通過tcp流從主服務器中同步相應的數據,主服務器在WAL記錄產生時即將它們以流式傳送給備服務器,而不必等到WAL文件被填充。
默認情況下流復制是異步的,這種情況下主服務器上提交一個事務與該變化在備服務器上變得可見之間客觀上存在短暫的延遲,但這種延遲相比基于文件的日志傳送方式依然要小得多,在備服務器的能力滿足負載的前提下延遲通常低于一秒;
在流復制中,備服務器比使用基于文件的日志傳送具有更小的數據丟失窗口,不需要采用archive_timeout來縮減數據丟失窗口;
將一個備服務器從基于文件日志傳送轉變成基于流復制的步驟是:把recovery.conf文件中的primary_conninfo設置指向主服務器;設置主服務器配置文件的listen_addresses參數與認證文件即可。
操作系統: CentOS 7
數據庫: PostgreSQL 12
1、創建具有流復制權限的用戶
CREATE ROLE replica login replication encrypted password ‘replica的密碼’;
網友評論