首頁 > 軟體

PostgreSQL13基於流複製搭建後備伺服器的方法

2022-01-14 19:01:20

pg的高可用、負載均衡和複製特性矩陣如下

後備伺服器作為主伺服器的資料備份,可以保障資料不丟,而且在主伺服器發生故障後可以提升為主伺服器繼續提供服務。

實際操作

1、引數設定

首先設定主機的postgresql.conf

vim /usr/local/pgsql/data/postgresql.conf

listen_addresses = '*'
wal_level = hot_standby
max_wal_senders = 10
max_replication_slots = 10
hot_standby = on # 主要用來備庫設定,主庫設定無影響
wal_keep_size = 1GB  #pg13後設定,之前是wal_keep_segments
wal_log_hints = on  #pg_rewind必須引數
full_page_writes = on

然後設定主機的pg_hba.conf

vim /usr/local/pgsql/data/pg_hba.conf
host    replication     all      0.0.0.0/0     trust #新增

2、使用pg_basebackup建立備機資料庫

pg_basebackup -D ../data1 -U postgres  -Fp -X stream -R  -P -v -p54321 -h 127.0.0.1

解釋一下常用引數

pg_basebackup被用於獲得一個正在執行的PostgreSQL資料庫集簇的基礎備份。

-D directory

將輸出寫到哪個目錄。如果必要,pg_basebackup將建立該目錄及任何父目錄。

-Fp

把輸出寫成平面檔案,使用和當前資料目錄和表空間相同的佈局。

-Xstream

在備份被建立時通過流複製傳送預寫式紀錄檔。這將開啟一個到伺服器的第二連線並且在執行備份時並行開始流傳輸預寫式紀錄檔。

-R

--write-recovery-conf

在輸出目錄中(或者當使用 tar 格式時在基礎歸檔檔案中)建立 standby.signal 並附加連線設定到postgresql.auto.conf 來簡化設定一個後備伺服器。postgresql.auto.conf檔案將記錄連線設定(如果有)以及pg_basebackup所使用的複製槽,這樣流複製後面就會使用相同的設定。

-P

--progress

啟用進度報告。

-v

--verbose

啟用冗長模式,可以理解為輸出備份過程資料。

3、啟動備機資料庫伺服器

echo "port=54322" >> /usr/local/pgsql/data1/postgresql.conf
pg_ctl -D /usr/local/pgsql/data1 start

4、檢查

登入主機檢視流複製關係

psql -Upostgres -dpostgres -p54321
select * from pg_stat_replication;

主機插入資料

./psql -Upostgres -dpostgres -p54321
create table t1 (id int ,name varchar);
insert into t1 values (1,'cli');

備機查詢資料,資料同步成功

psql -Upostgres -dpostgres -p54322
select * from t1;

至此,一個簡單的後備伺服器就搭建好了。

但行好事,莫問前程

到此這篇關於PostgreSQL13基於流複製搭建後備伺服器的文章就介紹到這了,更多相關PostgreSQL13搭建後備伺服器內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com