Probleme mit slony

Hallo zusammen…

Habe Probleme mit der Konfiguration von slony… Habe einen Dienst installiert und bekomme nun, wenn ich einen neuen Slony-I-Cluster anlegen will einen Fehler…

Slony-I-Erstellungsskripte nicht verfügbar; nur Betreten möglich…


Wie kann ich dieses Problem behebeb…?


mfg Micha

Was hast Du denn genau gemacht? Man muß dazu ein Slonik-Skript anlegen, vermutlich fehlen diese bei Dir.

Andreas

Ja, die fehlen… Wo finde ich diese Slonki-Scripte…? Laufen die auch unter Windows…?

Du wirst sie nicht finden, sondern selbst erstellen müssen. Mit diesen Skripten werden die Replikations-Sets defininiert, also welcher Server der Master ist und wer alles Slave und welche Tabellen und andere Objekte zu replizieren sind.

Die Erstellung erfolgt mit Deinem Lieblingseditor, was da genau wie zu machen ist steht hier erklärt:

http://linuxfinances.info/info/slonyadmin.html

Du solltest das dringend lesen, Slony beherrscht man nicht durch 3 Mausklicks oder so, man muß schon das Konzept dahinter halbwegs verstanden haben.
Ob das unter Windows tut kann ich mangels Lust, mich über Windows zu ärgern, nicht sagen.


Andreas

Hallo nochmal…

Ich hab jetzt die Scripte für Linux gefunden.

Wie sollte man am Besten die Scripte für Windows umschreiben?
Welche Scriptsprache (für einen Neuanfänger) sollte man verwenden?

mfg Micha

Du mußt nicht die Scripte von Linux auf Windows umschreiben, sondern so, daß diese an Deine Gegebeneheiten, also Tabellen, Schemas, Datenbanken, Server, etc. passen.

Und Du brauchst auch keine Scriptsprache erfinden. Slonik ist ein Kommandoprozessor, der die in dem Slonik-Script gespeicherten Anweisungen interpretiert. Alles was Du brauchst, ist ein EDITOR.

Hint: M$-WORD ist alles mögliche, aber KEIN Editor. Notepad wäre ein schlechtes Beispiel für einen Editor.
Aufpassen mußt Du evtl. mit Zeilenende, das handhaben die Betrübsysteme unterschiedlich und ich weiß nicht, ob slonik da empfindlich ist. (der Kommandoprozessor von Kleinweich, cmd, kommt z.B. mit UNIX-Dateien nicht zurecht)
Ansonsten sehe ich keinen Unterschied in der Funktion von Slony zwischen Windoze und Linux, Slony funktioniert auch mit unterschiedlichen Versionen auf beiden Seiten.


Andreas

Danke erstmal für deine Ausführungen…

Habe verstanden. Nehme mir die Scripte zur Vorlage und passe sie dann an mein Problem an.
Unter welchem Namen muss ich das Script dann speichern, dass von Slony erkannt wird? Und wo?

Naja, der Name ist egal. Unter *NIX (bzw. bei mir) fängt das so an:

#!/bin/sh

slonik <<_EOF_

        cluster name = $CLUSTERNAME;

Das ist natürlich nun sehr UNIX-lastig. Die erste Zeile ist eine sog. Shebang http://en.wikipedia.org/wiki/Shebang_(Unix) , und das slonik <<EOF bedeutet, daß aller Text danach bis zum EOF als direkte Eingabe für slonik dient. Das ist vermutlich so unter Windows nicht möglich, da bin ich mir nicht sicher.

Vermutlich sollte aber gehen, daß Du alle Kommandos, also so wie

cluster name = foobar;

etc. hinschreibst, als my_slonik_sript.txt speichert und das mit

slonik < my_slonikk_script.txt

aufrufst.

Andreas

Gut, probiere das gleich aus. Habe bei den Voreinstellung den nächsten Fehler bekommen.
Wenn ich einen neuen User in der Befehlszeile anlegen will, wird von mir das Passwort des Windows-Benutzer abgefragt. Wenn ich das eintippe, kommt ein Fehler, das das Passwort falsch ist.
In welcher Datei ist hinterlegt, welches Passwort er will???

mfg Micha

Vermutlich bist Du nicht der user ‘postgres’. Unter *NIX geht das in etwa so:

kretschmer@pegasus:~$ su -
Password:
pegasus:~# su - postgres
postgres@pegasus:~$ createuser foobar
Shall the new role be a superuser? (y/n)

Du mußt also als Administrator zum User postgres wechseln (ohne Passwortfrage in diesem Schritt). Wie man das unter Windoze macht, weiß ich nicht. Dann kannst Du ganz easy neue User anlegen.


Andreas

Hab den Fehler gefunden… Funktioniert!?! :slight_smile:

Sieht erstmal nicht schlecht aus…

Beim ausführen des Befehls slonik < slonik_script.txt kommt nun folgender Fehler:

:11: PGRES_FATAL_ERROR select “_slony_example”.determineIdxnameUnique(‘public.accounts’, NULL); - ERROR: Slony-I: determineIdxnameUnique(): table “public”.“accounts” not found

Kannst du mir sagen was das bedeutet?

Offensichtlich gibt es die benannte table nicht. Vielleicht mit PGAdmin und dort mit großen Buchstaben angelegt oder sowas …
Btw.: du brauchst für alle zu replizierenden tables einen Primary Key bzw. einen Unique Index. Die Methode, diesen durch Slony anlegen zu lassen, ist nicht empfohlen und wird in einer der nächsten Slony-Versionen nicht mehr gehen.

Andreas

Hab die Replikation jetzt soweit erstellt.

Mein einziges problem ist noch, das mein Slave Node nicht läuft. Wie kann ich diesen Knoten neu starten???

Es wäre, und zwar für Dich, hilfreich, die Doku zu lesen.

Du brauchst je Node einen slon-Prozess, der selbst wiederum weitere startet.
Unterhalb von http://linuxfinances.info/info/slony.html steht jede Menge Doku. Mag sein, daß die Arbeit via Commandline für Windos-Benutzer erst einmal kompliziert ist, mag auch sein, daß das dort geschriebene nicht1:1 unter Windows funktioniert, mag auch sein, daß via PGAdmin da auch eine bunte Oberfläche verfügbar ist.

Ich war grad mal via SSH remote auf meiner Spielkiste zu Hause, auf der ich mal mit Slony probiert hatte. Dort starte ich die slony-Prozesse mit:

slon $CLUSTERNAME "dbname=$MASTERDBNAME user=$REPLICATIONUSER host=$MASTERHOST"
slon $CLUSTERNAME "dbname=$SLAVEDBNAME user=$REPLICATIONUSER host=$SLAVEHOST"

natürlich mit den passend gesetzten Variablen.


Andreas

Die Replikation läuft nun bei mir unter Windows, durch “genaues Studieren von jeder Menge Doku” konnte ich es umsetzen… :p

mfg

Case closed.


Andreas, erleichtert.