溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么搭建postgresql-pg簡(jiǎn)易異步流復(fù)制

發(fā)布時(shí)間:2021-11-03 09:12:04 來(lái)源:億速云 閱讀:218 作者:iii 欄目:關(guān)系型數(shù)據(jù)庫(kù)

這篇文章主要講解了“怎么搭建postgresql-pg簡(jiǎn)易異步流復(fù)制”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“怎么搭建postgresql-pg簡(jiǎn)易異步流復(fù)制”吧!

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

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

怎么搭建postgresql-pg簡(jiǎn)易異步流復(fù)制

01主庫(kù)操作

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

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

CREATE ROLE

1.2修改pg_hba.conf文件

主庫(kù)

host  allall192.168.0.0/24md5

host  replication   repl192.168.0.52/24md5

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

第二行#允許使用replica用戶來(lái)復(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在從庫(kù)測(cè)試連接是否成功

psql -h 192.168.0.51-p 5432-U postgres

02備庫(kù)操作

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 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  #說(shuō)明該節(jié)點(diǎn)是從服務(wù)器

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

2.4啟動(dòng)服務(wù)

pg_ctl start  -D $PGDATA

在主庫(kù)上查詢,如下,可以看到,sync_state,async就表示異步流復(fù)制。

postgres=# select pid,usename,application_name,client_addr,state,sync_state  from  pg_stat_replication;

怎么搭建postgresql-pg簡(jiǎn)易異步流復(fù)制

如上,就簡(jiǎn)單的搭好了一個(gè)流復(fù)制數(shù)據(jù)庫(kù)!

感謝各位的閱讀,以上就是“怎么搭建postgresql-pg簡(jiǎn)易異步流復(fù)制”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)怎么搭建postgresql-pg簡(jiǎn)易異步流復(fù)制這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI