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