您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“如何實(shí)現(xiàn)Postgresql流復(fù)制主備切換”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“如何實(shí)現(xiàn)Postgresql流復(fù)制主備切換”吧!
--操作系統(tǒng)命令,判斷發(fā)送進(jìn)程還是接收進(jìn)程 ps -ef | grep "wal" | grep -v "grep" --數(shù)據(jù)查看 select pid,usename,application_name,client_addr,state,sync_state from pg_stat_replication; --or 備庫(kù) select pid,status,last_msg_send_time,last_msg_receipt_time,conninfo from pg_stat_wal_receiver; --系統(tǒng)函數(shù)查看 select pg_is_in_recovery(); --數(shù)據(jù)庫(kù)控制信息 pg_controldata | grep cluster --查看recovery.conf 配置文件 --主備切換 文件觸發(fā)方式 9.0之前的版本 --1、 配置備庫(kù)文件,添加trigger_file參數(shù) recovery.conf trigger_file='/pgdata/data/.postgresql.trigger.5432' --2、關(guān)閉主庫(kù) pg_ctl stop -m fast --3、創(chuàng)建觸發(fā)文件,重啟備庫(kù),觀(guān)察recovery.conf 是否變成recovery.done touch /pgdata/data/.postgresql.trigger.5432 --4、老主庫(kù) 變成備庫(kù) --編輯recovery.conf文件 recovery_target_timeline='latest' standby_mode=on primary_conninfo='host=192.168.8.25 port=5432 user=repuser' --密碼文件 cat .pgpass 192.168.8.25:5432:replication:repuser:re12a345 192.168.8.81:5432:replication:repuser:re12a345 chmod 0600 .pgpass --主備切換 pg_ctl promote 方式 --1、關(guān)閉主庫(kù) pg_ctl stop -m fash --2、備庫(kù)執(zhí)行 pg_ctl promote --3、老主庫(kù)切換成備庫(kù) --pg_rewind 流復(fù)制維護(hù)數(shù)據(jù)同步工具 --當(dāng)備庫(kù)激活成主庫(kù)時(shí),如果沒(méi)有關(guān)閉老的主庫(kù),這時(shí)老的主庫(kù)不能切換成備庫(kù), 不需要重新備份,pg_rewind 復(fù)制變化(增量刷新同步) --前提條件,滿(mǎn)足其一即可 1、postgresql.conf 配置文件中 wal_log_hints 參數(shù)設(shè)置成on,需重啟數(shù)據(jù)庫(kù) 2、數(shù)據(jù)庫(kù)安裝時(shí)initdb 初始化時(shí)使用了--data-checksums,發(fā)現(xiàn)io錯(cuò)誤,開(kāi)啟性能有損耗 --node2 激活備庫(kù) --node1 關(guān)閉備庫(kù),使用pg_rewind 增量同步 pg_rewind --target-pgdata $PGDATA --source-server='host=192.168.8.25 posrt=5432 user=postgres dbname=postgres' -P --以上命令執(zhí)行成功, postgres用戶(hù)密碼會(huì)寫(xiě)入~/.pgpass --修改recovery.conf 啟動(dòng)新備庫(kù) --延遲備庫(kù) recovery.conf 添加參數(shù),目前支持s,min,h,d,ms recovery_min_apply_delay=1min --同步流復(fù)制,延遲參數(shù)優(yōu)先 synchronous_commit=on recovery_min_apply_delay=1min #優(yōu)先 --remote_aply synchronous_commit=remote_apply #主庫(kù)操作被阻塞1分鐘,備庫(kù)應(yīng)用完成才返回結(jié)果 recovery_min_apply_delay=1min #優(yōu)先 --同步復(fù)制優(yōu)選提交,一主兩備,注意,當(dāng)同步庫(kù)中有宕機(jī)的,主庫(kù)會(huì)阻塞 synchronous_standby_names=db1,db2 # 備庫(kù)列表 第一個(gè)為同步備庫(kù),第二個(gè)潛在的同步備庫(kù) synchronous_standby_names='FIRST 2(db1,db2,db3)' # 前兩個(gè)為同步備庫(kù),第三個(gè)為潛在同步備庫(kù) synchronous_standby_names='ANY 2(db1,db2,db3)' # 任意兩個(gè)為同步備庫(kù),其他為潛在同步備庫(kù) --級(jí)聯(lián)復(fù)制a>b>c --1、異步流復(fù)制,部署備庫(kù)b,復(fù)制正常,開(kāi)始部署備庫(kù)c,c執(zhí)行 -h a pg_basebackup -D /pgdata/data -Fp -Xs -v -P -h 192.168.28.74 -p 5432 -U repuser --2、配置c recovery.conf 文件,host b recovery_target_timeline='latest' standby_mode=on primary_conninfo='host=192.168.8.25 port=5432 user=repuser application_name=c' --3、啟動(dòng)c
到此,相信大家對(duì)“如何實(shí)現(xiàn)Postgresql流復(fù)制主備切換”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guā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)容。