2. PostgreSQL 流複製
1. PostgreSQL 流複製3 個主要程式:
wal sender, wal receiver , startup
2. 配置流複製:
step 1:
在master 端建立用於流複製的使用者replicator
create user replicator with replication encrypted password 'replicator';
建立完成後可以在psql中透過\du命令檢視建立的使用者
step 2:
在master 的引數配置,下面這些引數需要配置
ALTER SYSTEM SET wal_level TO 'hot_standby';
ALTER SYSTEM SET archive_mode TO 'ON';
ALTER SYSTEM SET max_wal_senders TO '5';
ALTER SYSTEM SET wal_keep_segments TO '10';
ALTER SYSTEM SET listen_addresses TO '*';
ALTER SYSTEM SET hot_standby TO 'ON';
ALTER SYSTEM SET archive_command TO 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f';
配置完這些引數後需要重啟資料庫pg_ctl restart, 可以在$PGDATA目錄下的postgresql.auto.conf檔案檢視引數是否生效。
step 3:
在$PGDATA目錄的pg_hba.conf檔案中新增slave主機的資訊
host replication replicator 192.168.1.66/32 md5
配置完成後需要重新載入pg_ctl reload。
step 4:
複製master庫到備庫,可以透過如下方法:
pg_basebackup -h 192.168.1.70 -U replicator -p 5432 -D $PGDATA -P -Xs -R
當前只是做測試,沒有資料,此步操作很快,會在slave端生成所有的檔案,同時還會包含recovery.conf檔案。
step 5:
啟動slave端pg資料庫 pg_ctl start
檢查master端程式:
-bash-4.2$ ps -ef | grep sender
postgres 6515 5852 0 14:55 ? 00:00:00 postgres: wal sender process replicator 192.168.1.66(50228) streaming 0/6000060
檢查slave端程式:
-bash-4.2$ ps -ef | grep receiver
postgres 19052 19046 0 14:55 ? 00:00:00 postgres: wal receiver process streaming 0/6000060
-bash-4.2$ ps -ef | grep startup
postgres 19048 19046 0 14:55 ? 00:00:00 postgres: startup process recovering 000000010000000000000006
也可以在master端透過檢視檢查:
至此一個簡單的PostgreSQL 流複製配置完成,其中的知識點:
1. 流複製設計三個程式 wal sender, wal receiver , startup,在配置完成後可以透過下面命令檢視。
ps -ef | grep sender
ps -ef | grep receiver
ps -ef | grep startup
也可以在Master端透過檢視pg_stat_replication檢視。
select * from pg_stat_replication;
2. 會涉及到postgresql.conf, pg_hba.conf兩個引數檔案的配置,都是在master端進行配置。
postgresql.conf檔案需要配置的引數有:
ALTER SYSTEM SET wal_level TO 'hot_standby';
ALTER SYSTEM SET archive_mode TO 'ON';
ALTER SYSTEM SET max_wal_senders TO '5';
ALTER SYSTEM SET wal_keep_segments TO '10';
ALTER SYSTEM SET listen_addresses TO '*';
ALTER SYSTEM SET hot_standby TO 'ON';
ALTER SYSTEM SET archive_command TO 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f';
pg_hba.conf 檔案需要配置slave端的資訊:
host replication replicator 192.168.1.66/32 md5
3. pg_basebackup工具的使用
在進行stream replication配置是需要將master端的資料同步到slave端,需要使用pg_basebackup工具將資料同步到slave端。
pg_basebackup 工具的使用可以作為一個單獨的章節。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21374452/viewspace-2758683/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【PG流複製】Postgresql流複製主備切換SQL
- 【PG流複製】Postgresql流複製部署過程及效能測試SQL
- PostGreSql 12.6 的流複製(CentOS)SQLCentOS
- postgresql 9.4 流複製簡單配置SQL
- Postgresql 9.6 搭建 非同步流複製 和 同步流複製 詳細教程SQL非同步
- 如何配置 pglogical | PostgreSQL 的流複製SQL
- PostgreSQL DBA(126) - PG 12(搭建流複製)SQL
- PostgreSQL DBA(31) - Backup&Recovery#4(搭建流複製)SQL
- 再不瞭解PostgreSQL,你就晚了之PostgreSQL主從流複製部署SQL
- PostgreSQL 13 同步流複製(#2.4)-202104SQL
- 使用 Bitnami PostgreSQL Docker 映象快速設定流複製叢集SQLDocker
- PostgreSQL 13 非同步流複製(#2.1)-202103SQL非同步
- postgresql基於流複製 (streaming replication)的warm-standbySQL
- Postgresql基於流複製 (streaming replication)的hot-standbySQL
- PostgreSQL基於PG內建流複製的,靠譜的PostgreSQL高可用方案SQL
- oracle 流複製Oracle
- PostgreSQL 13 同步流複製+failover(#2.6)-202104SQLAI
- PostgreSQL 13 級聯流複製部署(#2.7)-202105SQL
- Postgres 流複製配置
- PostgreSQL邏輯複製解密SQL解密
- PostgreSQL 邏輯複製解密SQL解密
- PostgreSQL雙向複製教程SQL
- PostgreSQL 主從複製方案SQL
- PostgreSQL構建流複製拉取日誌的起始位置在哪裡SQL
- Postgresql實戰:使用pg_basebackup或pg_start_backup方式搭建Postgresql主從流複製SQL
- PostgreSQL 13 同步流複製+延遲備庫(#2.5)-202104SQL
- PostgreSQL中的複製延遲SQL
- Oracle流複製技術Oracle
- pg流複製備份
- PostgreSQL 13 非同步流複製+延遲備庫(#2.2)-202103SQL非同步
- PostgreSQL 13 非同步流複製+failover切換(#2.3)-202104SQL非同步AI
- [zt] 高階複製、流複製(Streams)、備庫區別
- 美創科技運維日記|postgresql-pg簡易非同步流複製搭建運維SQL非同步
- [java IO流]之檔案複製Java
- ORACLE流複製技術介紹Oracle
- 流複製管理手冊總結
- PostgreSQL邏輯複製資料同步到kafkaSQLKafka
- Flume與Kafka整合--扇入、扇出功能整合,其中扇出包括:複製流、複用流Kafka