Postgresql基於流複製 (streaming replication)的hot-standby
Postgresql基於流複製 (streaming replication)的hot-standby
Primary:
l 歸檔設定:
Wal_level=hot_standby
Hot_standby=on
Archive_mode=on
archive_command = 'cp -i %p /data/pgsql/archived_wal/%f'
l 流複製相關設定:
max_wal_senders = '10' #啟動複製程式數量限制,必須大於0
max_replication_slots = '10' #為使用replication slot,必須大於0;replication slot作用是保證wal沒有同步到standby之前不能從pg_xlog移走;
wal_keep_segments = '50' #指定pg_xlog中最少保留的wal數量
select pg_create_physical_replication_slot(‘gp1_a_slot’); #建立replication slot
select * from pg_replication_slots; #查詢建立的replication slot
l 編輯pg_hba.conf
# Allow replication connections from localhost, by a user with the replication privilege.
#host replication postgres 127.0.0.1/32 trust
#host replication postgres ::1/128 trust
local replication postgres trust
host replication postgres 192.168.12.0/24 trust
l 聯機備份過程(基礎備份)
#touch /var/lib/pgsql/backup_in_progress
$psql –c "select pg_start_backup('hot_backup');"
$tar -cf /var/lib/pgsql/backup.tar /var/lib/pgsql/data/
$psql -c "select pg_stop_backup();"
#rm /var/lib/pgsql/backup_in_progress
tar -rf /var/lib/pgsql/backup.tar /var/lib/pgsql/archive/ #打包歸檔
Standby:
l 編輯recovery.conf
recovery_target_timeline = 'latest'
standby_mode = 'on'
primary_conninfo = 'host=192.168.12.38 port=5666 user=postgres'
primary_slot_name='gp1_a_slot'
#restore_command = 'cp /data/pgsql/archived_wal/%f %p'
#archive_cleanup_command = 'pg_archivecleanup /data/pgsql/archived_wal %r'
l 將primary上的基礎備份傳輸到standby上
$scp primary: /var/lib/pgsql/backup.tar .
解壓備份到standby上的$PGDATA
l 啟動standby
$pg_ctl start –D $PGDATA
啟動standby後,postgres開始從primary上接收wal日誌進行恢復,並且資料庫保持:read only connect狀態,psql能登入進行查詢操作;
Hot-Standby,只讀狀態下的可以執行的操作:
1. 查詢,所有select
2. Checkpoint,可以執行不報錯,但是不產生log
3. Select pg_create_physical_replication_slot(‘slot_name’); 等操作,如drop replication slot;
Switchover:
Hot-standby進行主備切換時注意事項:
1. 必須先停止primary,然後再在standby上pg_ctl promote;
2. 為方便快速切換,主備配置儘量相同,並提前準備妥當,例如 .pgpass,pg_hba.conf ,recovery.conf等;
3. 使用replication slot時,主備分別指定不同primary_slot_name
主備切換步驟:
A. 主備分別準備recovery.conf,注意修改primary_conninfo和primary_slot_name引數設定
B. 停止主資料庫
C. Standby上,pg_ctl promote,或者建立觸發檔案(切換成主庫)
D. 啟動原主庫,切換為備份庫
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16976507/viewspace-2133409/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- postgresql基於流複製 (streaming replication)的warm-standbySQL
- PostgreSQL基於PG內建流複製的,靠譜的PostgreSQL高可用方案SQL
- 【PG流複製】Postgresql流複製主備切換SQL
- 2. PostgreSQL 流複製SQL
- PostGreSql 12.6 的流複製(CentOS)SQLCentOS
- Postgresql 關於級聯hot-standbySQL
- 如何配置 pglogical | PostgreSQL 的流複製SQL
- 【PG流複製】Postgresql流複製部署過程及效能測試SQL
- postgresql 9.4 流複製簡單配置SQL
- Postgresql 9.6 搭建 非同步流複製 和 同步流複製 詳細教程SQL非同步
- Mysql 5.7 基於組複製(MySQL Group Replication) - 運維小結MySql運維
- Redis 主從複製(Replication)Redis
- 理解 MySQL(3):複製(Replication)MySql
- mysql replication複製錯誤(zt)MySql
- PostgreSQL DBA(126) - PG 12(搭建流複製)SQL
- PostgreSQL DBA(31) - Backup&Recovery#4(搭建流複製)SQL
- 再不瞭解PostgreSQL,你就晚了之PostgreSQL主從流複製部署SQL
- mysql replication /mysql 主從複製原理MySql
- PostgreSQL 13 同步流複製(#2.4)-202104SQL
- MySQL Replication的複製執行緒介紹MySql執行緒
- 主從複製、雙主複製及半同步複製、以及基於SSL的複製
- 使用 Bitnami PostgreSQL Docker 映象快速設定流複製叢集SQLDocker
- PostgreSQL 13 非同步流複製(#2.1)-202103SQL非同步
- Redis replication主從複製原理及配置Redis
- MYSQL並行複製(parallel replication部署篇)MySql並行Parallel
- PostgreSQL構建流複製拉取日誌的起始位置在哪裡SQL
- MySQL 5.7組複製(group replication)的要求和限制MySql
- MySQL 5.7.17 組複製(group replication)的要求和限制MySql
- oracle 流複製Oracle
- PostgreSQL中的複製延遲SQL
- goldengate基於表複製Go
- Mysql基於GTID的複製模式MySql模式
- PostgreSQL 13 同步流複製+failover(#2.6)-202104SQLAI
- PostgreSQL 13 級聯流複製部署(#2.7)-202105SQL
- 5-5配置Mysql複製 基於日誌點的複製MySql
- MySQL基於GTIDs的MySQL ReplicationMySql
- 學習Advanced Replication(高階複製) -zt
- Postgres 流複製配置