37
Ap Camp: 15/10/2011 Ap Camp: 15/10/2011 Postgresql Postgresql Binary Streaming R Binary Streaming R eplication eplication www.pgtraining.com Enrico Pirozzi

Ap Camp 2011

Embed Size (px)

DESCRIPTION

Ap Camp 2011: Streaming replication in PostgreSQL

Citation preview

Page 1: Ap Camp 2011

Ap Camp: 15/10/2011Ap Camp: 15/10/2011

PostgresqlPostgresqlBinary Streaming RBinary Streaming Replicationeplication

www.pgtraining.comEnrico Pirozzi

Page 2: Ap Camp 2011

AgendaAgenda

● Ha: High Availability

Page 3: Ap Camp 2011

AgendaAgenda

● Ha: High Availability● Hot Backup - P.I.T.R. : Point in time recovery

Page 4: Ap Camp 2011

AgendaAgenda

● Ha: High Availability● Hot Backup - P.I.T.R. : Point in time recovery● Streaming Replication

Page 5: Ap Camp 2011

AgendaAgenda

● Ha: High Availability● Hot Backup - P.I.T.R. : Point in time recovery● Streaming Replication● Testing

Page 6: Ap Camp 2011

High AvailabilityHigh Availability

● Cosa intendiamo per HA?● Cosa intendiamo per HA?

Page 7: Ap Camp 2011

High AvailabilityHigh Availability

● Cosa intendiamo per HA?● Si intende alta disponibilità di un servizio

● Cosa intendiamo per HA?● Si intende alta disponibilità di un servizio

Page 8: Ap Camp 2011

High AvailabilityHigh Availability

● Cosa intendiamo per HA?● Si intende alta disponibilità di un servizio

● Cosa intendiamo per HA?● Si intende alta disponibilità di un servizio

Page 9: Ap Camp 2011

High AvailabilityHigh Availability

● Cosa intendiamo per HA?● Si intende alta disponibilità di un servizio

● Cosa intendiamo per HA?● Si intende alta disponibilità di un servizio

Page 10: Ap Camp 2011

Hot BackupHot Backup

● Backup a caldo

Page 11: Ap Camp 2011

Hot BackupHot Backup

● Backup a caldo● Tecnica utilizzata quando il database deve

essere in esecuzione nel mentre che il backup viene effettuato

Page 12: Ap Camp 2011

Point in time recoveryPoint in time recovery

● PITR: rappresenta la possibiltà di far tornare un cluster db in punto defi nito nel tempo, sia esso presente che futuro

Page 13: Ap Camp 2011

Point in time recoveryPoint in time recovery

● PITR: rappresenta la possibiltà di far tornare un cluster db in punto defi nito nel tempo, sia esso presente che futuro

● E' disponibile in maniera stabile dalla versione 8.2x in poi

Page 14: Ap Camp 2011

Point in time recoveryPoint in time recovery

● PITR: rappresenta la possibiltà di far tornare un cluster db in punto defi nito nel tempo, sia esso presente che futuro

● E' disponibile in maniera stabile dalla versione 8.2x in poi

● Questa tecnica utilizza un backup completo di un cluster database e i WAL (write ahead log) trovati nella directory pg_xlog

Page 15: Ap Camp 2011

Point in time recoveryPoint in time recovery

Server A Server B

Copia dei dati+

Trasferimento dei WAL

Page 16: Ap Camp 2011

Domande ??????Domande ??????

Page 17: Ap Camp 2011

Streaming ReplicationStreaming Replication

Master

10.0.0.3

Standby Server

10.0.0.4

Page 18: Ap Camp 2011

Streaming ReplicationStreaming Replication

● Abilita i WAL record ad essere ricevuti ed eseguiti dalla macchina in standby nel mentre la macchina master li genera.

Page 19: Ap Camp 2011

Streaming ReplicationStreaming Replication

● Abilita i WAL record ad essere ricevuti ed eseguiti dalla macchina in standby nel mentre la macchina master li genera

● Abilita le query in sola lettura sul server standby

Page 20: Ap Camp 2011

Streaming ReplicationStreaming Replication

● Abilita i WAL record ad essere ricevuti ed eseguiti dalla macchina in standby nel mentre la macchina master li genera

● Abilita le query in sola lettura sul server standby

● Replicazione Asincrona

Page 21: Ap Camp 2011

Streaming ReplicationStreaming ReplicationStreaming ReplicationStreaming Replication

Page 22: Ap Camp 2011

Streaming ReplicationStreaming ReplicationStreaming ReplicationStreaming Replication

ConfigurazioneConfigurazione

Page 23: Ap Camp 2011

Streaming ReplicationStreaming Replication

Modifica del postgresql.conf

Macchina Master

● listen_address = '*'

Page 24: Ap Camp 2011

Streaming ReplicationStreaming Replication

Modifica del postgresql.conf

Macchina Master

● listen_address = '*'

● wal_level = hot_standby

Page 25: Ap Camp 2011

Streaming ReplicationStreaming Replication

Modifica del postgresql.conf

Macchina Master

● listen_address = '*'

● wal_level = hot_standby

● max_wal_senders = 3

Page 26: Ap Camp 2011

Streaming ReplicationStreaming Replication

Modifica del pg_hba.conf

Macchina Master

host replication all 10.0.0.4/32 trust

Page 27: Ap Camp 2011

Streaming ReplicationStreaming Replication

Modifica del postgresql.conf

Macchina Standby

● hot_standby = on

Page 28: Ap Camp 2011

Streaming ReplicationStreaming Replication

Modifica del recovery.conf

Macchina Standby

● standby_mode = 'on'

● primary_conninfo = 'host=10.0.0.3'

Page 29: Ap Camp 2011

Streaming ReplicationStreaming Replication

Modifica del recovery.conf

Macchina Standby

● standby_mode = 'on'

● primary_conninfo = 'host=10.0.0.3'

● trigger_file = '/usr/local/pgsql/data/failover'

Page 30: Ap Camp 2011

Streaming ReplicationStreaming Replication

Sincronizzazione del db remoto

Macchina Master

● psql -U postgres

Page 31: Ap Camp 2011

Streaming ReplicationStreaming Replication

Sincronizzazione del db remoto

Macchina Master

● psql -U postgres

● # select pg_start_backup('clone',true);

Page 32: Ap Camp 2011

Streaming ReplicationStreaming Replication

Sincronizzazione del db remoto

Macchina Master

● psql -U postgres

● # select pg_start_backup('clone',true);

● rsync -av --exclude pg_xlog --exclude postgresql.conf --exclude postgresql.pid \

data/* 192.168.0.2:/usr/local/pgsql/data/

Page 33: Ap Camp 2011

Streaming ReplicationStreaming Replication

Sincronizzazione del db remoto

Macchina Master

● psql -U postgres

● # select pg_stop_backup();

Page 34: Ap Camp 2011

Streaming ReplicationStreaming Replication

Sincronizzazione del db remoto

Macchina Master

● psql -U postgres

● # select pg_stop_backup();

● rsync -av data/pg_xlog 192.168.0.2:/var/lib/postgresql/data/

Page 35: Ap Camp 2011

Streaming ReplicationStreaming Replication

Sincronizzazione del db remoto

Macchina Standby

● /etc/rc.d/postgres start (Bsd)

● /etc/init.d/postgres start (Debian)

Page 36: Ap Camp 2011

Streaming ReplicationStreaming Replication

Al Lavoro ???Al Lavoro ???

Page 37: Ap Camp 2011

ContattiContatti

Enrico PirozziEnrico Pirozzihttp://www.pgtraining.comhttp://www.pgtraining.com

[email protected]@pgtraining.com