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.
mexoda's blog Admin Guids
Guids zum Thema CentOS PostgreSQL Windows Power Shell
Dieses Blog durchsuchen
Freitag, 21. Januar 2011
Donnerstag, 20. Januar 2011
CentOS Network Installation
CentOS 5.5 Netzwerk Installation
Bevor es losgeht schaut nach ob ihr eine 64- oder 32bit Version von CentOs installieren wollt.
Ihr könnt CentOS hier herunterladen: klick
Das ISO dann z.B. auf CD brennen. CD ins Laufwerk und dann den Autoboot des Live Systems unterbrechen.
Beim ersten Menü das euch angezeigt wird "Network Installation" auswählen. Dann wählt ihr einfach eine Sprache aus in der die Installation statfinden soll. Achtet darauf das die ausgewählte Sprache später auch vom installierten System verwendet wird. Dann noch das Tastertur Interface auswählen.
Nun wählen wir als Installation Methode "HTTP" aus.
Jetzt müsst ihr eure Netzwerkkarte für die Installation konfigurieren. Ihr könnt entweder eine Dynamische Konfiguration (DHCP) nutzen oder ihr gebt eurer Schnitstellt eine statische IP
Dynamisch
Statisch IP
Nun gebt jetzt noch die Serverinformationen für das Installations Image aus. Je nach dem ob ihr 64- oder 32bit Version installieren wollt gebt ihr folgendes ein:
64bit:
Name der Webseite : mirrors.kernel.org
CentOS Verzeichnis: centos/5.5/os/x86_64
32bit
Name der Webseite
Name der Webseite : mirrors.kernel.org
CentOS Verzeichnis: centos/5.5/os/i386
Das wars auch schon. Ein Guide für die weiteren Schritte folgt demnächst.
Netzwerkadapter Steuerung mit der Windows Powershell
Wer unter Windows mit 2 Netzwerken zwischen 2 Netzwerken will, kann z.B. mit einem einfachen Script die Powershell nutzen.
Hier eine einfache Anleitung:
Um die Windows Power Shell vollständig nutzen zu können und Systemeinstellungen zu ändern,benötigen wir Adminrechte. Einstellungen zu Benutzerkonten und Berechtigungen können unter,Systemsteuerung → Benutzerkonten → Eigenen Kontotyp ändern, geändert werden.
Nun öffnen wir die Windows Power Shell (Programme → Zubehör → Windows Power Shell)
Nun öffnen wir die Windows Power Shell (Programme → Zubehör → Windows Power Shell)
Als erstes müssen wir heraus finden welche „DeviceID“ unsere Netzwerkschnittstellen haben.
Dazu geben wir in die Power Shell folgendes ein:
get-wmiobject win32_networkadapter | formattable ServiceName, AdapterType, Name, NetworkAdd, DeviceID
Eine Liste mit allen Netzwerkadaptern erscheint. Wir suchen uns die Raus die wir benötigen, in
meinem Fall die Schnittstellen mit der DeviceID 7 und 11.
Um später leichter mit diesen Schnittstellen arbeiten zu können, speichern wir diese mit folgenden
Befehl in eine Variable. Ich habe sie „$intern“ und „$extern“ benannt.
meinem Fall die Schnittstellen mit der DeviceID 7 und 11.
Um später leichter mit diesen Schnittstellen arbeiten zu können, speichern wir diese mit folgenden
Befehl in eine Variable. Ich habe sie „$intern“ und „$extern“ benannt.
$intern = Get-WmiObject win32_networkadapter | where {$_.DeviceId -eq 7}
$extern = Get-WmiObject win32_networkadapter | where {$_.DeviceId -eq 11}
Mit den Variablen können wir die Netzwerkkarten direkt ein- und ausschalten.
$extern.disable()
$intern.enable().
Leider werden die Variablen nicht gespeichert und wären nach einem Neustart des Systems nicht
mehr verfügbar. Glücklicherweise besteht die Möglichkeit sich Profile in der Power Shell anzulegen
um z.B. solche Variablen zu speichern.
mehr verfügbar. Glücklicherweise besteht die Möglichkeit sich Profile in der Power Shell anzulegen
um z.B. solche Variablen zu speichern.
new-item -path $profile -itemtype file -force
Im nächsten Schritt schreiben wir unsere Variablen in das eben erstellte Profil. Dazu öffnen wir das
Profil mit dem Befehl:
notepad $Profile
Nun können wir bequem die beiden Variablen in die Notepad datei eintragen und im Anschluss
speichern. Dazu einfach folgendes in die Datei schreiben:
speichern. Dazu einfach folgendes in die Datei schreiben:
$intern = Get-WmiObject win32_networkadapter | where {$_.DeviceId -eq 7}
$extern = Get-WmiObject win32_networkadapter | where {$_.DeviceId -eq 11}
$extern = Get-WmiObject win32_networkadapter | where {$_.DeviceId -eq 11}
Hinweis: Windows befüllt nun bei jeden Power Shell Aufruf die Variablen mit den Daten unserer
Schnittstellen. Die DeviceID bleibt immer gleich!
Um später alles bequem zusteuern schreiben wir noch schnell 2 kleine Scripte in denen folgendes
steht:
Schnittstellen. Die DeviceID bleibt immer gleich!
Um später alles bequem zusteuern schreiben wir noch schnell 2 kleine Scripte in denen folgendes
steht:
Um extern ein- und intern auszuschalten:
$intern.disable()
$extern.enable()
Um intern ein- und extern auszuschalten:
$extern.disable()
$intern.enable()
Diese kleinen Scripte speichern wir nun als name.ps1. Um diese Scripte ausführen zu können
müssen wir der Power Shell noch die Erlaubnis dazu geben:
Set-ExecutionPolicy RemoteSigned
Nun können die beiden Scripte jederzeit ausgeführt werden.
Abonnieren
Posts (Atom)