【PG流複製】Postgresql流複製主備切換
--作業系統命令,判斷髮送程式還是接收程式 ps -ef | grep "wal" | grep -v "grep" --資料檢視 select pid,usename,application_name,client_addr,state,sync_state from pg_stat_replication; --or 備庫 select pid,status,last_msg_send_time,last_msg_receipt_time,conninfo from pg_stat_wal_receiver; --系統函式檢視 select pg_is_in_recovery(); --資料庫控制資訊 pg_controldata | grep cluster --檢視recovery.conf 配置檔案 --主備切換 檔案觸發方式 9.0之前的版本 --1、 配置備庫檔案,新增trigger_file引數 recovery.conf trigger_file='/pgdata/data/.postgresql.trigger.5432' --2、關閉主庫 pg_ctl stop -m fast --3、建立觸發檔案,重啟備庫,觀察recovery.conf 是否變成recovery.done touch /pgdata/data/.postgresql.trigger.5432 --4、老主庫 變成備庫 --編輯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、關閉主庫 pg_ctl stop -m fash --2、備庫執行 pg_ctl promote --3、老主庫切換成備庫 --pg_rewind 流複製維護資料同步工具 --當備庫啟用成主庫時,如果沒有關閉老的主庫,這時老的主庫不能切換成備庫, 不需要重新備份,pg_rewind 複製變化(增量重新整理同步) --前提條件,滿足其一即可 1、postgresql.conf 配置檔案中 wal_log_hints 引數設定成on,需重啟資料庫 2、資料庫安裝時initdb 初始化時使用了--data-checksums,發現io錯誤,開啟效能有損耗 --node2 啟用備庫 --node1 關閉備庫,使用pg_rewind 增量同步 pg_rewind --target-pgdata $PGDATA --source-server='host=192.168.8.25 posrt=5432 user=postgres dbname=postgres' -P --以上命令執行成功, postgres使用者密碼會寫入~/.pgpass --修改recovery.conf 啟動新備庫 --延遲備庫 recovery.conf 新增引數,目前支援s,min,h,d,ms recovery_min_apply_delay=1min --同步流複製,延遲引數優先 synchronous_commit=on recovery_min_apply_delay=1min #優先 --remote_aply synchronous_commit=remote_apply #主庫操作被阻塞1分鐘,備庫應用完成才返回結果 recovery_min_apply_delay=1min #優先 --同步複製優選提交,一主兩備,注意,當同步庫中有當機的,主庫會阻塞 synchronous_standby_names=db1,db2 # 備庫列表 第一個為同步備庫,第二個潛在的同步備庫 synchronous_standby_names='FIRST 2(db1,db2,db3)' # 前兩個為同步備庫,第三個為潛在同步備庫 synchronous_standby_names='ANY 2(db1,db2,db3)' # 任意兩個為同步備庫,其他為潛在同步備庫 --級聯複製a>b>c --1、非同步流複製,部署備庫b,複製正常,開始部署備庫c,c執行 -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、啟動c
--文盲筱燁
2019年1月27日
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29487349/viewspace-2564941/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- pg流複製備份
- 【PG流複製】Postgresql流複製部署過程及效能測試SQL
- PostgreSQL DBA(126) - PG 12(搭建流複製)SQL
- mysql主從複製+主備切換MySql
- 2. PostgreSQL 流複製SQL
- Postgresql實戰:使用pg_basebackup或pg_start_backup方式搭建Postgresql主從流複製SQL
- Postgresql 9.6 搭建 非同步流複製 和 同步流複製 詳細教程SQL非同步
- Docker 搭建KingbaseES主備流複製Docker
- PostGreSql 12.6 的流複製(CentOS)SQLCentOS
- postgresql 9.4 流複製簡單配置SQL
- [zt] 高階複製、流複製(Streams)、備庫區別
- oracle 流複製Oracle
- PostgreSQL 13 非同步流複製+failover切換(#2.3)-202104SQL非同步AI
- PostgreSQL基於PG內建流複製的,靠譜的PostgreSQL高可用方案SQL
- 如何配置 pglogical | PostgreSQL 的流複製SQL
- 再不瞭解PostgreSQL,你就晚了之PostgreSQL主從流複製部署SQL
- PG 流複製的隱患以及處理措施
- Postgres 流複製配置
- 【DB寶60】PG12高可用之1主2從流複製環境搭建及切換測試
- PostgreSQL DBA(31) - Backup&Recovery#4(搭建流複製)SQL
- PostgreSQL 主從複製方案SQL
- Oracle流複製技術Oracle
- Redis主備複製Redis
- 美創科技運維日記|postgresql-pg簡易非同步流複製搭建運維SQL非同步
- PostgreSQL 13 同步流複製(#2.4)-202104SQL
- PostgreSQL 13 同步流複製+延遲備庫(#2.5)-202104SQL
- MySQL主從複製、半同步複製和主主複製MySql
- MySQL主從複製、半同步複製和主主複製概述MySql
- PostgreSQL 13 非同步流複製+延遲備庫(#2.2)-202103SQL非同步
- MySQL主從複製與主主複製MySql
- 使用 Bitnami PostgreSQL Docker 映象快速設定流複製叢集SQLDocker
- PostgreSQL 13 非同步流複製(#2.1)-202103SQL非同步
- postgresql基於流複製 (streaming replication)的warm-standbySQL
- Postgresql基於流複製 (streaming replication)的hot-standbySQL
- MySQL的主從複製、半同步複製、主主複製詳解MySql
- 配置mysql5.5主從複製、半同步複製、主主複製MySql
- MySQL 複製 - 效能與擴充套件性的基石 4:主備切換MySql套件
- [java IO流]之檔案複製Java