侵權(quán)投訴
訂閱
糾錯(cuò)
加入自媒體

美創(chuàng)科技運(yùn)維日記|postgresql-pg簡易異步流復(fù)制搭建

流復(fù)制是postgresql非常重要并且非常好用的高可用架構(gòu)。本片文章小編就來帶大家簡單的做一個(gè)pg流復(fù)制的安裝。

流復(fù)制是PostgreSQL 9.0之后才提供的新的傳遞WAL日志的方法。通過流復(fù)制,備庫不斷的從主庫同步相應(yīng)的數(shù)據(jù),并在備庫apply每個(gè)WAL record,這里的流復(fù)制每次傳輸單位是WAL日志的record。就如oracle的dataguard技術(shù)一樣,pg的流復(fù)制也是按照同步模式的不同,分為同步流復(fù)制和異步流復(fù)制。同步流復(fù)制雖然能在主庫壞掉時(shí)確保數(shù)據(jù)的一致,但是當(dāng)網(wǎng)絡(luò)或者備庫有問題的時(shí)候,會(huì)導(dǎo)致主庫事務(wù)hang住。異步流復(fù)制則沒有這樣的缺點(diǎn),不會(huì)影響生產(chǎn)庫的性能,但是在主庫壞掉的時(shí)候,可能會(huì)丟掉一小部分?jǐn)?shù)據(jù)。

pg的流復(fù)制安裝非常的簡單,如下配置完成后,就可以做到,如下版本是pg11在rhel7的配置,注意,需要提前在兩邊服務(wù)器上建好同一個(gè)版本的pg服務(wù):

image.png

01主庫操作

1.1創(chuàng)建復(fù)制用戶作為主從同步使用

postgres=# create role repl login replication encrypted password '123456';

CREATE ROLE

1.2  修改pg_h(yuǎn)ba.conf文件

主庫

host  all                 all     192.168.0.0/24      md5

host  replication   repl   192.168.0.52/24    md5

第一行    #允許XX這個(gè)從服務(wù)器連接到主服務(wù)器

第二行    #允許使用replica用戶來復(fù)制,第二個(gè)字段必須要填repl (上一步添加的用戶)

#psql

psql> select pg_reload_conf();#生效

1.3 修改postgresql.conf

listen_addresses = '*'   #這個(gè)一般安裝服務(wù)器之后都會(huì)進(jìn)行配置,檢查下

wal_level=replica #默認(rèn)replica,不動(dòng)

wal_keep_segments= 256 #設(shè)置流復(fù)制保留的最多的xlog數(shù)目

#重啟pg服務(wù)生效。

#只有l(wèi)isten_address改變需要重啟,否則select pg_reload_conf() 即可。

pg_ctl stop –D $PGDATA

pg_ctl start –D $PGDATA

1.4 在從庫測試連接是否成功

psql -h(huán) 192.168.0.51 -p 5432 -U postgres

02備庫操作

2.1 停止pg服務(wù),清空data目錄

[postgres@apple-standby ~]$ echo $PGDATA

/data/pg11.5/data

[postgres@apple-standby data]$ rm -rf /data/pg11.5/data

2.2 從主節(jié)點(diǎn)拷貝數(shù)據(jù)到從節(jié)點(diǎn)

$ pg_basebackup -h(huán) 192.168.0.51 -U repl -D /data/pg11.5/data -X stream -P

could not identify current directory: No such file or directory

Password:

45238/45238 kB (100%), 1/1 tablespace

2.3 配置recovery.conf

cd $PGHOME(軟件安裝目錄)

cp share/recovery.conf.sample $PGDATA/recovery.conf

vi recovery.conf

standby_mode = on

primary_conninfo = 'host=192.168.0.51 port=5432 user=repl password=123456'

recovery_target_timeline = 'latest'

###

primary_conninfo  主服務(wù)器的信息以及連接的用戶

standby_mode = on  # 說明該節(jié)點(diǎn)是從服務(wù)器

recovery_target_timeline  #指定恢復(fù)到特定時(shí)間軸。默認(rèn)設(shè)置是沿著執(zhí)行基本備份時(shí)的當(dāng)前時(shí)間線恢復(fù)。將此設(shè)置為 latest 將恢復(fù)到存檔中找到的最新時(shí)間軸

1  2  下一頁>  
聲明: 本文由入駐維科號的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報(bào)。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個(gè)字

您提交的評論過于頻繁,請輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無評論

暫無評論

安防 獵頭職位 更多
文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號