PostgreSQL13基于流復(fù)制搭建后備服務(wù)器的方法
pg的高可用、負(fù)載均衡和復(fù)制特性矩陣如下

后備服務(wù)器作為主服務(wù)器的數(shù)據(jù)備份,可以保障數(shù)據(jù)不丟,而且在主服務(wù)器發(fā)生故障后可以提升為主服務(wù)器繼續(xù)提供服務(wù)。
實(shí)際操作
1、參數(shù)配置
首先配置主機(jī)的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 # 主要用來(lái)備庫(kù)配置,主庫(kù)配置無(wú)影響 wal_keep_size = 1GB #pg13后配置,之前是wal_keep_segments wal_log_hints = on #pg_rewind必須參數(shù) full_page_writes = on
然后配置主機(jī)的pg_hba.conf
vim /usr/local/pgsql/data/pg_hba.conf host replication all 0.0.0.0/0 trust #新增
2、使用pg_basebackup創(chuàng)建備機(jī)數(shù)據(jù)庫(kù)
pg_basebackup -D ../data1 -U postgres -Fp -X stream -R -P -v -p54321 -h 127.0.0.1
解釋一下常用參數(shù)
pg_basebackup被用于獲得一個(gè)正在運(yùn)行的PostgreSQL數(shù)據(jù)庫(kù)集簇的基礎(chǔ)備份。
-D directory
將輸出寫(xiě)到哪個(gè)目錄。如果必要,pg_basebackup將創(chuàng)建該目錄及任何父目錄。
-Fp
把輸出寫(xiě)成平面文件,使用和當(dāng)前數(shù)據(jù)目錄和表空間相同的布局。
-Xstream
在備份被創(chuàng)建時(shí)通過(guò)流復(fù)制傳送預(yù)寫(xiě)式日志。這將開(kāi)啟一個(gè)到服務(wù)器的第二連接并且在運(yùn)行備份時(shí)并行開(kāi)始流傳輸預(yù)寫(xiě)式日志。
-R
--write-recovery-conf
在輸出目錄中(或者當(dāng)使用 tar 格式時(shí)在基礎(chǔ)歸檔文件中)建立 standby.signal 并附加連接設(shè)置到postgresql.auto.conf 來(lái)簡(jiǎn)化設(shè)置一個(gè)后備服務(wù)器。postgresql.auto.conf文件將記錄連接設(shè)置(如果有)以及pg_basebackup所使用的復(fù)制槽,這樣流復(fù)制后面就會(huì)使用相同的設(shè)置。
-P
--progress
啟用進(jìn)度報(bào)告。
-v
--verbose
啟用冗長(zhǎng)模式,可以理解為輸出備份過(guò)程數(shù)據(jù)。
3、啟動(dòng)備機(jī)數(shù)據(jù)庫(kù)服務(wù)器
echo "port=54322" >> /usr/local/pgsql/data1/postgresql.conf pg_ctl -D /usr/local/pgsql/data1 start
4、檢查
登錄主機(jī)查看流復(fù)制關(guān)系
psql -Upostgres -dpostgres -p54321 select * from pg_stat_replication;
主機(jī)插入數(shù)據(jù)
./psql -Upostgres -dpostgres -p54321 create table t1 (id int ,name varchar); insert into t1 values (1,'cli');
備機(jī)查詢數(shù)據(jù),數(shù)據(jù)同步成功
psql -Upostgres -dpostgres -p54322 select * from t1;

至此,一個(gè)簡(jiǎn)單的后備服務(wù)器就搭建好了。
但行好事,莫問(wèn)前程
到此這篇關(guān)于PostgreSQL13基于流復(fù)制搭建后備服務(wù)器的文章就介紹到這了,更多相關(guān)PostgreSQL13搭建后備服務(wù)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
postgresql 切換 log、xlog日志的實(shí)現(xiàn)
這篇文章主要介紹了postgresql 切換 log、xlog日志的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
PostgreSQL數(shù)據(jù)庫(kù)事務(wù)插入刪除及更新操作示例
這篇文章主要為大家介紹了PostgreSQL事務(wù)的插入刪除及更新操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04
PostgreSQL排查連接鎖問(wèn)題的常用SQL語(yǔ)句
正常情況下,PostgreSQL只要連上了就能愉快地使用了,但是在一些特別的場(chǎng)景,如壓測(cè)或者某些不可描述的異常,會(huì)出現(xiàn)數(shù)據(jù)庫(kù)連接異常的情況,比如連接數(shù)占滿了,所以本文給大家介紹了PostgreSQL排查連接鎖問(wèn)題的常用SQL語(yǔ)句,需要的朋友可以參考下2024-04-04
PostgreSQL如何查看數(shù)據(jù)庫(kù)及表中數(shù)據(jù)占用空間大小詳解
這篇文章主要介紹了PostgreSQL中用于查看數(shù)據(jù)庫(kù)和表空間大小的函數(shù),并提供了每個(gè)函數(shù)的詳細(xì)說(shuō)明和應(yīng)用場(chǎng)景,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-02-02
PostgreSQL實(shí)現(xiàn)透視表查詢的方法詳解
PostgreSQL 8.3版本發(fā)布時(shí),引入了一個(gè)名為tablefunc的新擴(kuò)展,這個(gè)擴(kuò)展提供了一組非常有趣的函數(shù),其中之一是交叉表函數(shù),用于創(chuàng)建數(shù)據(jù)透視表,這就是我們將在本文中討論的內(nèi)容,本文給大家介紹了PostgreSQL實(shí)現(xiàn)透視表查詢的方法,需要的朋友可以參考下2024-12-12
PostgreSQL之分區(qū)表(partitioning)
通過(guò)合理的設(shè)計(jì),可以將選擇一定的規(guī)則,將大表切分多個(gè)不重不漏的子表,這就是傳說(shuō)中的partitioning。比如,我們可以按時(shí)間切分,每天一張子表,比如我們可以按照某其他字段分割,總之了就是化整為零,提高查詢的效能2016-11-11
如何解決PostgreSQL執(zhí)行語(yǔ)句長(zhǎng)時(shí)間卡著不動(dòng)不報(bào)錯(cuò)也不執(zhí)行的問(wèn)題
某日開(kāi)發(fā)同事上報(bào)一sql性能問(wèn)題,一條查詢好似一直跑不出結(jié)果,查詢了n小時(shí),還未返回結(jié)果,這篇文章主要給大家介紹了關(guān)于如何解決PostgreSQL執(zhí)行語(yǔ)句長(zhǎng)時(shí)間卡著不動(dòng)不報(bào)錯(cuò)也不執(zhí)行問(wèn)題的相關(guān)資料,需要的朋友可以參考下2024-02-02

