日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

pg_basebackup 配置 stream replication 异步/同步

發布時間:2023/11/27 生活经验 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pg_basebackup 配置 stream replication 异步/同步 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

os :oel 6.8
postgresql: 9.6.3

PostgreSQL9.0 standby數據庫在應用WAL日志的同時,也可以提供只讀服務,
這是PostgreSQL9.0中最激動人心的功能,這個功能在oracle數據庫中也只是最新版本11g中才有的新功能。
這個功能在oracle中叫 active dataguard,在PostgreSQL中稱為 hot standby。

在利用日志恢復數據的同時可以用只讀的方式打開數據庫,用戶可以在備用數據庫上進行查詢、報表等操作,也可用做讀寫分離。

在PostgreSQL9.0之前,也可以搭建standby數據庫,但standby數據庫只能處于恢復狀態中,不能打開,也不支持只讀打開。
而這種情況在9.0之后徹底改變了。

PostgreSQL 9.0中日志傳送的方法有兩種:

基于文件(base-file)的傳送方式,這種方式是PostgreSQL9.0之前就提供的方法。
也就是服務器寫完一個WAL日志文件后,才把WAL日志文件拷貝到standby數據庫上去應用。類似于oracle dg 的 arch 方式

流復制(streaming replication)的方法,這是PostgreSQL9.0才提供的新方法。
這個方法就是事務提交后,就會把生成的日志異步的傳送到standby數據庫上應用,
這比基本文件的日志傳送方法有更低的數據延遲。類似于oracle dg 的 lgwr sync/async 方式

master 庫創建復制用戶

master庫參數調整

$ vi postgresql.confalter system set listen_addresses = '0.0.0.0';
alter system set port = '5432';alter system set wal_level = 'logical';
alter system set fsync = on;
alter system set synchronous_commit = on;
alter system set wal_sync_method = fdatasync;
alter system set full_page_writes = on;
alter system set wal_log_hints = on;alter system set wal_keep_segments = '100';
alter system set max_wal_senders = '10';alter system set hot_standby = 'on';alter system set archive_mode = 'on';
alter system set archive_command = 'cp %p /mnt/pgarchive/%f < /dev/null';
alter system set archive_timeout = '300';

listen_addresses = ‘*’ 表示在所有的ipv4、ipv6地址上添加監聽
listen_addresses = ‘0.0.0.0’ 表示在所有的ipv4地址上添加監聽

master庫重啟

$ pg_ctl stop -m fast -D /var/lib/pgsql/9.6/main/
$ pg_ctl start -D /var/lib/pgsql/9.6/main/

master機器上,創建 replicator 用戶:

$ psql
CREATE USER replicator REPLICATION LOGIN ENCRYPTED PASSWORD 'pass0rd';

master庫修改 pg_hba.conf 文件

$ vi pg_hba.conf
host     replication     replicator        192.168.56.0/24         md5
$ psql -c "select pg_reload_conf();"

說明允許用戶postgres 從192.168.56.0/24 網絡上發起到本地數據庫的流復制,使用md5

master切換日志

$ psql -c "select pg_switch_xlog();"

slave庫參數調整

postgresql停止的前提下,刪除data目錄的內容:

$ rm -rf /var/lib/pgsql/9.6/main/

slave庫修改參數

$ vi postgresql.confwal_level = 'logical'
fsync = on
synchronous_commit = on
wal_sync_method = fdatasync
full_page_writes = on
wal_log_hints = onwal_keep_segments = '100'
max_wal_senders = '10'
hot_standby = 'on'

slave庫執行 pg_basebackup 拉取文件

$ pg_basebackup -h 192.168.56.201 -D /var/lib/pgsql/9.6/main/ -U replicator -v -P -R-D, --pgdata=DIRECTORY receive base backup into directory
-v, --verbose          output verbose messages
-P, --progress         show progress information
-R, --write-recovery-conf  write recovery.conf for replication

slave庫ecovery.conf文件

$ vi /var/lib/pgsql/9.6/main/recovery.conf#restore_command = ''
#archive_cleanup_command = ''
standby_mode = 'on'
recovery_target_timeline = 'latest'
primary_conninfo='host=192.168.56.201 port=5432 user=replicator password=pass0rd'
trigger_file = '/tmp/postgresql.trigger'

slave啟動服務

$ pg_ctl start -D /var/lib/pgsql/9.6/main/

數據驗證

master端查看replication狀態

select * from pg_stat_replication ;
select client_addr,pg_xlog_location_diff(sent_location, write_location) as write_delay,pg_xlog_location_diff(sent_location, flush_location) as flush_delay,pg_xlog_location_diff(sent_location, replay_location) as replay_delay from pg_stat_replication;

同步復制

alter system set synchronous_commit = 'on';
alter system set synchronous_standby_names = '*';    pg_ctl restart -D /var/lib/pgsql/9.6/main/pg_ctl reload -D /var/lib/pgsql/9.6/main/
select pg_reload_conf();

slave端也要修改 recovery.conf

primary_conninfo = 'host=192.168.56.201 port=5432 user=replicator password=pass0rd application_name=node2'

增加了 application_name=node2
不過采用同步的方式最好配置多臺slave,防止單臺slave宕機導致master上無法執行事務

alter system set synchronous_standby_names = 'node2,node3'; 
或者
alter system set synchronous_standby_names = '*'; 

轉載于:https://www.cnblogs.com/ctypyb2002/p/9792901.html

總結

以上是生活随笔為你收集整理的pg_basebackup 配置 stream replication 异步/同步的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。