ständig neue binlogs..

MySQL, PostgreSQL, SQLite
kolibri
Posts: 32
Joined: 2006-09-06 17:08

ständig neue binlogs..

Post by kolibri » 2007-10-15 04:15

hallo zusammen..

ich habe vor in den nächsten tagen meinen ersten replikations-slave zu starten..

dafür habe ich bereits eine kopie der tabellen auf den slave gelegt das binlogging des masters eingeschaltet und alle vorbereitungen dazu getroffen..

folgendes problem.. bei jedem stop/start oder restart des servers wird ein neues bin-logfile nach folgendem schema angelegt: <host>-bin.00001 <host>-bin.00002 usw..

das problem für mich ist nun.. wenn ich den master stop und starte oder restarte, dann muss ich den slave wieder neu verbinden, dafür vorher beim master einen befehlsblock

Code: Select all

FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
UNLOCK TABLES;


ausführen, um den offset der daten im binlog herauszufinden, was natürlich dazu führt, daß in dieser (wenn auch kurzen zeit) der server nicht benutzbar ist!

aus diesem grund möchte ich das erstellen von forlaufenden logs vermeiden und den server (wenns möglich ist?) dazu bewegen alles in ein log zu schreiben..

IST das möglich? wenn nein, wie komme ich an die offset-daten von logs mit niedrigeren nummern als dem aktuellen binlog um die banken auf dem slave konsistent zu halten?

ich hoffe daß ich mich nicht allzu kompliziert ausgedrückt habe..

kolibri
Posts: 32
Joined: 2006-09-06 17:08

Re: ständig neue binlogs..

Post by kolibri » 2007-10-26 06:15

niemand ne idee???? :(

aubergine
Posts: 471
Joined: 2005-09-10 17:52
Location: Frankfurt am Main

Re: ständig neue binlogs..

Post by aubergine » 2007-10-26 07:01

Welches "Offset an Daten"?

kolibri
Posts: 32
Joined: 2006-09-06 17:08

Re: ständig neue binlogs..

Post by kolibri » 2007-10-26 10:27

aubergine wrote:Welches "Offset an Daten"?


spalte "position" im show master status;

hab ich mich wirklich SO unverständlich ausgedrückt?? :(

aubergine
Posts: 471
Joined: 2005-09-10 17:52
Location: Frankfurt am Main

Re: ständig neue binlogs..

Post by aubergine » 2007-10-26 15:53

Was ich nicht verstehe ist die Sache dass der Slave sich doch die Binlog Position andauernd speichert.

Der Master weiß wiederum durch sein index File welche Binlogs es gibt und ist dementsprechend in der Lage diese Rückwirkend zu versenden, je nachdem wie lange du die Logs vorhälst.

Wo ist da nun das genaue Problem?

wichtel
Posts: 28
Joined: 2003-02-11 20:50
Location: FI-Porvoo

Re: ständig neue binlogs..

Post by wichtel » 2007-10-26 16:28

Irgenwie scheint der Beitragseröffner das System noch nicht wirklich verstanden zu haben.

Denn, wenn der Master neu gestartet wird, braucht man beim Slave garnichts machen. Denn wenn die Verbindung nicht vorhanden ist, versucht der Slave den Server immer wieder zu erreichen.. Wenn der Master dann wieder da ist, geht automatisch da weiter, wo aufgehört wurde.

Der Slave weiss immer was er schon vom Master bekommen hat und speichert das in einer Datei ab und übermittelt diese Infos an den Server.

Was die bin.logs angeht kannst Du dazu in der my.cnf entsprechende Angaben machen über die Grösse und nach wie vielen Tagen die Daten nicht mehr gebraucht werden, dann werden sie automatisch gelöscht.

Lieben Gruss aus Finnland

Andy alias wichtel

kolibri
Posts: 32
Joined: 2006-09-06 17:08

Re: ständig neue binlogs..

Post by kolibri » 2007-10-26 20:45

aubergine wrote:Was ich nicht verstehe ist die Sache dass der Slave sich doch die Binlog Position andauernd speichert.

Der Master weiß wiederum durch sein index File welche Binlogs es gibt und ist dementsprechend in der Lage diese Rückwirkend zu versenden, je nachdem wie lange du die Logs vorhälst.

Wo ist da nun das genaue Problem?


daß GENAU das nicht passiert!!!! er nimmt nur das aktuellste binlog, die alten lässt er aussen vor!!!!

kolibri
Posts: 32
Joined: 2006-09-06 17:08

Re: ständig neue binlogs..

Post by kolibri » 2007-10-26 20:49

wichtel wrote:Irgenwie scheint der Beitragseröffner das System noch nicht wirklich verstanden zu haben.

Denn, wenn der Master neu gestartet wird, braucht man beim Slave garnichts machen. Denn wenn die Verbindung nicht vorhanden ist, versucht der Slave den Server immer wieder zu erreichen.. Wenn der Master dann wieder da ist, geht automatisch da weiter, wo aufgehört wurde.

Der Slave weiss immer was er schon vom Master bekommen hat und speichert das in einer Datei ab und übermittelt diese Infos an den Server.

Was die bin.logs angeht kannst Du dazu in der my.cnf entsprechende Angaben machen über die Grösse und nach wie vielen Tagen die Daten nicht mehr gebraucht werden, dann werden sie automatisch gelöscht.

Lieben Gruss aus Finnland

Andy alias wichtel


tja..
soweit hab ich das system schon sehrwohl verstanden.. wenns denn auch mal funktionieren würde!!!
beim neustart des masters wird ein neues binlog erstellt und dann ist schicken mit datenübertragung zwischen slave und master.. ich gehe ganz stark davon aus, wegen dem neuen binlog.. denn wenn ich eine neue verbindung händisch herstelle (wie oben beschrieben), holt er sich die fehlenden daten die in zwischenzeit gekommen sind..

jedoch ohne mein zutun (wie du so schön gesagt hast, man brauch ja nix tun) passiert GARNIX!!!!!

User avatar
Joe User
Project Manager
Project Manager
Posts: 11139
Joined: 2003-02-27 01:00
Location: Hamburg

Re: ständig neue binlogs..

Post by Joe User » 2007-10-26 20:53

Wie und Wo hast Du die Replikation genau konfiguriert?

kolibri
Posts: 32
Joined: 2006-09-06 17:08

Re: ständig neue binlogs..

Post by kolibri » 2007-10-26 21:05

Joe User wrote:Wie und Wo hast Du die Replikation genau konfiguriert?


bin strikt hiernach gegangen...
http://dev.mysql.com/doc/refman/5.1/de/replication-howto.html

User avatar
Joe User
Project Manager
Project Manager
Posts: 11139
Joined: 2003-02-27 01:00
Location: Hamburg

Re: ständig neue binlogs..

Post by Joe User » 2007-10-26 21:52


kolibri
Posts: 32
Joined: 2006-09-06 17:08

Re: ständig neue binlogs..

Post by kolibri » 2007-10-26 22:19



nein ich dachte das

Code: Select all

mysql> CHANGE MASTER TO
    -> MASTER_HOST='master_host_name',
    -> MASTER_USER='replication_user_name',
    -> MASTER_PASSWORD='replication_password',
    -> MASTER_LOG_FILE='recorded_log_file_name',
    -> MASTER_LOG_POS=recorded_log_position;


reicht aus.. :(
dann werd ich das mal versuchen und wieder bericht erstatten.. shit.. :(
jetzt ist mir auch klar, warum der sich die daten erst nach erneuter händischer verbindung holt!!!