Dieses Blog durchsuchen

Freitag, 21. Januar 2011

PostgreSQL Streaming Replication HotStandby in 10 Minuten unter CentOS 5.5

 Hallo allerseites,

heute ein einfache Anleitung zum Thema PostgreSQL und der mitgelieferten Streaming Replication.
Es gibt mehr als nur eine Anleitung zu diesem Thema, es ist sogar eine recht gute auf der PostgreSQL Wikiseite zufinden. Allerdings fehlen in jedem Guide immer ganz entscheidende Punkte, die dafür sorgen das es nicht funktioniert.
Also dann viel Spaß beim selber nachbasteln.


Folgendes Setup liegt vor:

- Master 192.168.1.221
- Slave 192.168.1.228
- Auf beiden PostgreSQL 9.0.2 mit initialisierter Masterdatenbank auf beiden Servern und        einer eigenen Datenbank für Testzwecke, auf dem Master.
-Dem von PostgreSQL angelegte Benutzer „postgres“ wurde ein Passwort zugewiesen. Es kann aber auch ein anderer Benutzer mit Superuserrechten angelegt werden.

Konfigurationsdateien unter /var/lib/pgsql/9.0/data

Schritt 1 Master konfigurieren

vi /var/lib/pgsql/9.0/data/postgresql.conf

Folgende Einträge ändern:

listen_addresses = ‘*‘
max_connections = 500
shared_buffers = 32MB
wal_level = hot_standby
archive_mode = on
archive_command = ‘rsync -a %p /var/lib/pgsql/9.0/data/pg_xlog_archive/%/f‘
max_wal_senderd = 1    #Anzal der Slaves
wal_keep_segments = 32

pg_hba.conf öffnen:

vi /var/lib/pgsql/9.0/data/pg_hba.conf

Folgende Einträge hinzufügen:

TYP     DATENBANK      USER        ADRESSE             ACL
host    replication    postgres    192.168.1.228/32    trust
host    replication    all         0.0.0.0/0           reject


Schritt 2

Auf dem Master:

sudo -u postgres mkdir /var/lib/pgsql/9.0/data/pg_xlog_archive

chmod 700 /var/lib/pgsql/9.0/data/pg_xlog_archive


Schritt 3 Den Slave initialisieren

psql -c “SELECT pg_start_backup(‘master-backup‘)“

rsync -HPSav --exclude postmaster.pid --exclude postmaster.log data/*

root@192.168.1.228:‘pwd‘/var/lib/pgsql/9.0/data/

psql -c “SELECT pg_stop_backup()“




Schritt 4 Slave konfigurieren

vi /var/lib/pgsql/9.0/data/postgresql.conf

Folgende Einträge ändern:

hot_standby = on
archive_mode= off
archive_command = ‘‘

Die Datei /var/lib/pgsql/9.0/data/recovery.conf erstellen und folgendes eintragen:

standby_mode = ‘on‘
restore_command = ‘rsync -a /var/lib/pgsql/9.0/data/pg_xlog_archive/%/f %p‘
promary_conninfo = ‘host=192.168.1.221 port=5432 user=postgres‘
trigger_file = ‘/tmp/pgsql-replication.trigger‘


Nun ist alles eingerichtet und sollte funktionieren.

Keine Kommentare:

Kommentar veröffentlichen