--異步流復(fù)制 ,事務(wù)提交時(shí)不需要等待備庫接收并寫入wal日志便返回成功。 --postgresql.conf 添加以下參數(shù) wal_level=replica archive_mode=on archive_command='/bin/date' max_wal_senders=10 ##max number of walsender processes wal_keep_segments=512 ##in logfile segments,16MB each; 0 disables hot_standby=on --pg_hab.conf #replication privilege host replication repuser 192.168.8.81/32 md5 host replication repuser 192.168.8.25/32 md5 --create user create user repuser replication login connection limit 5 encrypted password 're12a345'; --start backup select pg_start_backup('fancs_bk1'); tar czvf pg_root.tar.gz data --exclude=data/pg_wal scp pg_root.tar.gz postgres@192.168.8.25:/pgdata --node2 tar xvf pg_root.tar.gz mkdir pg_wal select pg_stop_backup(); --node2 cp /pgdata/pgsql/share/postgresql/recovery.conf.sample $PGDATA/recovery.conf recovery_target_timeline='latest' standby_mode=on primary_conninfo='host=192.168.8.81 port=5432 user=repuser' --編寫密碼文件,免密碼登錄 [postgres@mystandby ~]$ touch .pgpass [postgres@mystandby ~]$ chmod 0600 .pgpass [postgres@mystandby ~]$ cat .pgpass 192.168.8.81:5432:replication:repuser:re12a345 192.168.8.25:5432:replication:repuser:re12a345 --查看進(jìn)程 postgres 4902 4838 0 15:14 ? 00:00:00 postgres: wal sender process repuser 192.168.8.25(30137) streaming 0/B000140 postgres 5670 5668 0 15:14 ? 00:00:00 postgres: wal receiver process streaming 0/B000140 --測(cè)試 create table t7 (id int4,name text); insert into t7 values(1,'firsouler'); select * from t7; --查看流復(fù)制同步方式 select usename,application_name,client_addr,sync_state from pg_stat_replication; --同步流復(fù)制,需要等待備庫接收wal日志,增加了事務(wù)響應(yīng)時(shí)間 --postgresql.conf 單實(shí)例環(huán)境 synchronous_commit #on 表示提交事務(wù)時(shí)需要等待本地wal寫入wal日志后才向客戶端返回成功,安全,性能損耗 #off 可能數(shù)據(jù)丟失,提高性能 #local 與on類似 --流復(fù)制環(huán)境 #remote_write 等待備庫寫入系統(tǒng)緩存中 # on 備庫寫入wal日志 #remote_apply 備庫完成重做 --recovery.conf node2 備庫別名 primary_conninfo='host=192.168.8.25 port=5432 user=repuser application_name=node2' --node1 設(shè)置以下參數(shù) synchronous_commit=on synchronous_standby_names='node2' --同步流復(fù)制,備庫宕機(jī),主庫一直等待, 不建議同步流復(fù)制 --性能測(cè)試,并發(fā) 跟cpu數(shù)量有關(guān)系,性能方面 --測(cè)試腳本 create table test_per1(id int4,name text,create_time timestamp() without time zone default clock_timestamp()); insert into test_per1(id,name) select n,n||'_per1' from generate_series(1,10000000) n; alter table test_per1 add primary key(id); --select 腳本 \set v_id random(1,1000000) select name from test_per1 where id=:v_id; --寫測(cè)試 \set v_id random(1,1000000) update test_per2 set flag='1' where id=:v_id; --讀測(cè)試,單實(shí)例最佳,異步流復(fù)制次之,寫測(cè)試,單實(shí)例與異步差異不明顯,同步流復(fù)制慢 pgbench -c 2 -T 120 -d postgres -U postgres -n N -M prepared -f update_per2.sql > update_2.out 2>&1 & --流復(fù)制監(jiān)控 select * from pg_stat_replication; --主備延遲 write_lag 主庫wal落盤,等待備庫接收wal日志,(操作系統(tǒng)緩存中)并返回確認(rèn)信息;flush_lag(已寫入wal日志,但沒應(yīng)用);replay_lag(已應(yīng)用) select pid,usename,client_addr,state,write_lag,flush_lag,replay_lag from pg_stat_replication; --replay_lag>flush_lag>write_lag --10之前的版本 select extract(second from now()-pg_last_xact_replay_timestamp()); --通過流復(fù)制wal日志應(yīng)用延遲衡量 返回字節(jié)數(shù) select pid,usename,client_addr,state, pg_wal_lsn_diff(pg_current_wal_lsn(),write_lsn) write_delay, pg_wal_lsn_diff(pg_current_wal_lsn(),flush_lsn) flush_delay, pg_wal_lsn_diff(pg_current_wal_lsn(),replay_lsn) replay_delay from pg_stat_replication; --接收進(jìn)程相關(guān)試圖 select * from pg_stat_wal_receiver; --備庫,恢復(fù)進(jìn)程是否處于恢復(fù)模式 select pg_is_in_recovery(); --備庫最近接收的wal位置 select pg_last_wal_receive_lsn(); --備庫最近應(yīng)用的wal日志 select pg_last_wal_replay_lsn(); --備庫最近事務(wù)的應(yīng)用時(shí)間 select pg_last_xact_replay_timestamp(); --主庫wal當(dāng)前寫入位置 select pg_current_wal_lsn(); --計(jì)算兩個(gè)wal日志位置的偏移量 select pg_wal_lsn_diff('','');
網(wǎng)頁名稱:【PG流復(fù)制】Postgresql流復(fù)制部署過程及性能測(cè)試
本文來源:http://jinyejixie.com/article36/jjphpg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、外貿(mào)建站、軟件開發(fā)、ChatGPT、網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)