您好,登錄后才能下訂單哦!
這篇文章主要講解了“怎么搭建postgresql-pg簡易異步流復制”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么搭建postgresql-pg簡易異步流復制”吧!
流復制是PostgreSQL 9.0之后才提供的新的傳遞WAL日志的方法。通過流復制,備庫不斷的從主庫同步相應的數據,并在備庫apply每個WAL record,這里的流復制每次傳輸單位是WAL日志的record。就如 oracle的dataguard技術一樣,pg的流復制也是按照同步模式的不同,分為同步流復制和異步流復制。同步流復制雖然能在主庫壞掉時確保數據的一致,但是當網絡或者備庫有問題的時候,會導致主庫事務hang住。異步流復制則沒有這樣的缺點,不會影響生產庫的性能,但是在主庫壞掉的時候,可能會丟掉一小部分數據。
pg的流復制安裝非常的簡單,如下配置完成后,就可以做到,如下版本是pg11在rhel7的配置,注意,需要提前在兩邊服務器上建好同一個版本的pg服務:
01主庫操作
1.1創建復制用戶作為主從同步使用
postgres=# create role repl login replication encrypted password '123456';
CREATE ROLE
1.2修改pg_hba.conf文件
主庫
host allall192.168.0.0/24md5
host replication repl192.168.0.52/24md5
第一行#允許XX這個從服務器連接到主服務器
第二行#允許使用replica用戶來復制,第二個字段必須要填repl (上一步添加的用戶)
#psql
psql> select pg_reload_conf();#生效
1.3修改postgresql.conf
listen_addresses='*'#這個一般安裝服務器之后都會進行配置,檢查下
wal_level=replica #默認replica,不動
wal_keep_segments=256#設置流復制保留的最多的xlog數目
#重啟pg服務生效。
#只有listen_address改變需要重啟,否則select pg_reload_conf()即可。
pg_ctl stop –D $PGDATA
pg_ctl start –D $PGDATA
1.4在從庫測試連接是否成功
psql -h 192.168.0.51-p 5432-U postgres
02備庫操作
2.1停止pg服務,清空data目錄
[postgres@apple-standby ~]$ echo $PGDATA
/data/pg11.5/data
[postgres@apple-standby data]$ rm -rf /data/pg11.5/data
2.2從主節點拷貝數據到從節點
$ 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 主服務器的信息以及連接的用戶
standby_mode = on #說明該節點是從服務器
recovery_target_timeline #指定恢復到特定時間軸。默認設置是沿著執行基本備份時的當前時間線恢復。將此設置為 latest 將恢復到存檔中找到的最新時間軸
2.4啟動服務
pg_ctl start -D $PGDATA
在主庫上查詢,如下,可以看到,sync_state,async就表示異步流復制。
postgres=# select pid,usename,application_name,client_addr,state,sync_state from pg_stat_replication;
如上,就簡單的搭好了一個流復制數據庫!
感謝各位的閱讀,以上就是“怎么搭建postgresql-pg簡易異步流復制”的內容了,經過本文的學習后,相信大家對怎么搭建postgresql-pg簡易異步流復制這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。