Open Source im professionellen Einsatz
Linux-Magazin 02/2011
© Jim Mills, 123RF.com

© Jim Mills, 123RF.com

PostgreSQL 9 bringt Replikation und HA

Sichere 9

PostgreSQL beabsichtigt mit der neuen Version 9.0 zurück ins Spiel der großen Datenbank-Engines zu finden. Dazu bringt sie asynchrone Replikation und manch weiteres nützliches Feature fürs Unternehmen mit. Der Artikel zeigt anhand einer Suse-Installation, wie Admins Streaming Replication konfigurieren.

490

Oktober 2010, die PostgreSQL-Community ist sich einig: Mit der neunten Version [1] schließt die Open-Source-Datenbank in vielen Bereichen zur Konkurrenz auf. Die meisten der 200 Funktionserweiterungen und Verbesserungen (siehe den Datenbank-Vergleich in diesem Schwerpunkt) standen schon länger auf der Wunschliste der Anwender, vor allem in Sachen HA und Replikation hinkte PostgreSQL der Konkurrenz hinterher.

Jetzt helfen neue HA-Mechanismen den Datenbankprofis im Unternehmen einfache Master-Slave-Setups einzurichten. Der Artikel zeigt das zum einfachen Nachbau anhand von Open Suse oder SLES.

Streaming Replication

Der neue Streaming-Replication-Mechanismus der Version 9.0 (Abbildung 1) ist in wenigen Schritten eingerichtet. Zwar bringt PostgreSQL nur asynchrone Replikation, die synchrone soll aber in 9.1 folgen. Dank Write-Ahead Logging (WAL, [2]) fällt jetzt die bei Anwendern ungeliebte Notwendigkeit weg, ganze 16-MByte-Logsegmente nach der Point-in-Time-Recovery-Methode (PITR) zu übertragen.

Abbildung 1: Wo früher Warm Standby über das Archive-Kommando funktionierte (oben), arbeitet heute die Streaming Replication mit WAL-Sender und -Receiver.

Darüber hinaus stehen Slaves neuerdings zumindest mit Hot Standby read-only zur Verfügung. Im Gegensatz zur synchronen Replikation ist zwar der Datenbestand nach einem Schreibvorgang nicht sofort auf dem Slave verfügbar, jedoch halten sich die Abweichungen mit meist unter einer Sekunde Differenz auch auf belasteten Datenbanken in Grenzen. Das macht den Einsatz eines Slave auch in anderen Szenarien attraktiv, zum Beispiel fürs Reporting.

Installation

Die aktuelle Version von PostgreSQL war bis Redaktionsschluss noch nicht in den Standard-Repositories der Suse-Distributionen angekommen. Aktuelle Pakete für Open Suse wie auch SLES lassen sich jedoch im »server:database« -Repository des Open Suse Build Service finden, das beim Qualitätsstandard mit den Standard-Repositories gut mithält. Listing 1 zeigt dessen Integration und die Paket-Installation.

Listing 1

PostgreSQL 9.0 auf Open Suse 11.3

01 zypper ar http://download.opensuse.org/repositories/server:/database:/postgresql:/9.0/openSUSE_11.3/server:database:postgresql:9.0.repo
02 zypper ref
03 zypper in postgresql-server
04 /etc/init.d/postgresql start

Das folgende Setup richtet einen Master (»10.1.1.1« ) und einen Slave (»10.1.1.2« ) ein. Das Szenario lässt sich durch beliebige weitere Slaves erweitern. Deren maximale Anzahl definiert der Eintrag »max_wal_senders« in »/var/lib/pgsql/data/postgresql.conf« (Listing 2). Tabelle 1 gibt einen Überblick über die Parameter für die Streaming Replication in der Konfigurationsdatei.

Tabelle 1: :

Listing 2

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

01 listen_addresses = '*'
02 max_connections = 500
03 shared_buffers = 32MB
04 wal_level = hot_standby
05 archive_mode = on
06 archive_command = 'rsync -a %p /var/lib/pgsql/data/pg_xlog_archive/%f'.
07 max_wal_senders = 1
08 wal_keep_segments = 32

Nach dem Start des PostgreSQL-Dienstes hat der Server seinen Datenbereich unter »/var/lib/pgsql/data« initialisiert. Mit

sudo -u postgres mkdir /var/lib/pgsql/data/pg_xlog_archive; chmod 700 /var/lib/pgsql/data/pg_xlog_archive

legt der Admin das konfigurierte Archiv auf dem Master an. Die Streaming Replication benötigt momentan noch dauerhaft einen Superuser-Account, den der Admin in der PostgreSQL-Konfiguration absichern sollte (Listing 3)

Listing 3

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

01 TYP     DATENBANK      USER       ADDRESSE     ACL
02 host    replication    postgres   10.1.1.2/32  trust
03 host    replication    all        0.0.0.0/0    reject

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • PostgreSQL

    Hochverfügbarkeit, Replikation und Skalierung sind in der Datenbankwelt alltägliche Notwendigkeiten. Welche Features bietet PostgreSQL in diesem Zusammenhang und was taugen sie?

  • PostgreSQL 9.0 hat replizieren gelernt

    Mit dem Feature "Streaming Replication & Hot Standby" bietet die eben erschienene Version 9.0 von PostgreSQL zum ersten Mal in der Geschichte der Datenbank eine vom Projekt direkt unterstützte, integrierte Replikationsmöglichkeit.

  • PostgreSQL 9.1 bringt Neuerungen

    Die PostgreSQL Global Development Group gibt die Verfügbarkeit einer neuen Version ihrer Datenbank, PostgreSQL 9.1, bekannt.

  • Sicher im Tandem

    Manchmal reicht ein einzelner Datenbankserver nicht aus, mehrere müssen den kräftezehrenden Job übernehmen. Die Lösung für solche Probleme heißt pauschal: Replikation. Allerdings verbirgt sich hinter dem Schlagwort eine ganze Reihe sehr verschiedener Szenarios.

  • LTR Update: Neue PostgreSQL-Replikation selber testen

    Mit dem ersten integrierten Replikationsmechanismus seiner Versionsgeschichte ging erst vorgestern das brandneue PostgreSQL 9.0 an den Start. Die Linux Technical Review stellt unmittelbar darauf das lang erwartete Feature en Detail vor und beschreibt Schritt für Schritt die Konfiguration.

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.