Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

MySQL Master u. Slave = ein Rechner

Alles rund um die Systemverwaltung, die Administration und Konfiguration Eures Linuxsystems

Moderator: Moderatoren

Antworten
Benutzeravatar
sarajevo
Newbie
Newbie
Beiträge: 13
Registriert: 25. Sep 2008, 02:24
Wohnort: Augsburg
Kontaktdaten:

MySQL Master u. Slave = ein Rechner

Beitrag von sarajevo » 27. Okt 2008, 17:00

Hallo an alle,


wir hier in der Firma haben nen MySQL-Server laufen auf diesem soll zeitgleich ein Slave Server laufen um eine Replikation des ganzen zu haben...
Ich habe nun ein wenig das Referenzhandbuch durchstöbert und bin auf mysql_multi gestoßen der anscheinend mit mehreren Datenbanken auf einem System umgehen kann.
Ist dies der beste Weg um zwei Datenbanken nebeneinander zu betreiben ?
Kann ich mit dem Packetmanager (in diesem Fall apt-get von Debian) eine zweite Datenbank installieren ohne die erste zu "beschädigen"?
Oder ist ein manuelle installation notwendig ?


Vielen Dank


Edit:
Hab mich da verlesen...mysql_multi kann mehrere Instanzen des gleichen Servers starten die er aus der my.cnf entnimmt...dann ändert sich die Frage folgt.
Kann eine Instanz als Master, die andere als Slave laufen und das dabei der Master auf der selben Kiste Repliziert wird?

Werbung:
Benutzeravatar
panamajo
Guru
Guru
Beiträge: 2587
Registriert: 12. Feb 2005, 22:45

Re: MySQL Master u. Slave = ein Rechner

Beitrag von panamajo » 27. Okt 2008, 17:28

sarajevo hat geschrieben:wir hier in der Firma haben nen MySQL-Server laufen auf diesem soll zeitgleich ein Slave Server laufen um eine Replikation des ganzen zu haben...
Wozu soll das gut sein? Als Backup ist Replikation grundsätzlich nicht geeignet, auf derselben Maschine ergibt das überhaupt keinen Sinn mehr.
sarajevo hat geschrieben:Kann ich mit dem Packetmanager (in diesem Fall apt-get von Debian) eine zweite Datenbank installieren ohne die erste zu "beschädigen"?
Oder ist ein manuelle installation notwendig ?
Es ist gar keine weitere Installation notwendig, schließlich läuft der MySQL Server ja schon.
Für dein Vorhaben ist es allerdings nötig eine komplette Konfiguration für den 2. Server zu erstellen (und für dessen DBs, ...), siehe http://dev.mysql.com/doc/refman/5.0/en/ ... rvers.html
sarajevo hat geschrieben:Kann eine Instanz als Master, die andere als Slave laufen und das dabei der Master auf der selben Kiste Repliziert wird?
Techn. sollte das gehen. Ich kann mir nur kein Szenario vorstellen bei dem das irgendetwas bringt.

Benutzeravatar
panamajo
Guru
Guru
Beiträge: 2587
Registriert: 12. Feb 2005, 22:45

Re: MySQL Master u. Slave = ein Rechner

Beitrag von panamajo » 27. Okt 2008, 17:33

sarajevo hat geschrieben:Ist dies der beste Weg um zwei Datenbanken nebeneinander zu betreiben ?
Du kannst problemlos beliebig viele Datenbanken mit _einem_ MySQL Server verwalten.

Benutzeravatar
sarajevo
Newbie
Newbie
Beiträge: 13
Registriert: 25. Sep 2008, 02:24
Wohnort: Augsburg
Kontaktdaten:

Re: MySQL Master u. Slave = ein Rechner

Beitrag von sarajevo » 27. Okt 2008, 17:38

Techn. sollte das gehen. Ich kann mir nur kein Szenario vorstellen bei dem das irgendetwas bringt.
genau das dachte ich auch aber naja wie will man es dennen erklären die keine ahnung von haben es aber trotzdem mit biegen und brechen wollen


ich bin mir dessen bewusst, nur wir haben bei unserem hoster ich denke mal an die drei replikas des master server laufen und warum ausgerechnet noch einer auf dem master ist mir schleierhaft.

Benutzeravatar
panamajo
Guru
Guru
Beiträge: 2587
Registriert: 12. Feb 2005, 22:45

Re: MySQL Master u. Slave = ein Rechner

Beitrag von panamajo » 27. Okt 2008, 17:47

sarajevo hat geschrieben:genau das dachte ich auch aber naja wie will man es dennen erklären die keine ahnung von haben es aber trotzdem mit biegen und brechen wollen
Naja irgendein Grund werden "die" ja schon angeben, das würde mich interessieren.

Benutzeravatar
sarajevo
Newbie
Newbie
Beiträge: 13
Registriert: 25. Sep 2008, 02:24
Wohnort: Augsburg
Kontaktdaten:

Re: MySQL Master u. Slave = ein Rechner

Beitrag von sarajevo » 27. Okt 2008, 17:53

dachte der chef wollte beides auf einem war dann doch ein missverständnis, hat sich erledigt..

danke dir denoch...

ist es eigentlich zwingend erforderlich den master bei der synchronisation von slave und master zu stoppen oder kann der nebenbei weiterhin seinen dienst verrichten ?

den ein flush tables with read lock; würde ja alle schreibvorgänge blockieren oder nicht ?

Benutzeravatar
sarajevo
Newbie
Newbie
Beiträge: 13
Registriert: 25. Sep 2008, 02:24
Wohnort: Augsburg
Kontaktdaten:

Re: MySQL Master u. Slave = ein Rechner

Beitrag von sarajevo » 27. Okt 2008, 18:47

Was ist den das Datenverzeichnis des Master-Servers?

/var/lib/mysql oder /tmp ?

Ich brauche das ganze für den Snapshot

in der manual steht nur das Arbeitsverzeichnis von MySQL

Benutzeravatar
panamajo
Guru
Guru
Beiträge: 2587
Registriert: 12. Feb 2005, 22:45

Re: MySQL Master u. Slave = ein Rechner

Beitrag von panamajo » 27. Okt 2008, 19:19

sarajevo hat geschrieben:Was ist den das Datenverzeichnis des Master-Servers?
/var/lib/mysql
Üblicherweise.

Code: Alles auswählen

mysql> show variables like '%dir'\G
Zeigt dir u.a. datadir an

gameboy
Hacker
Hacker
Beiträge: 794
Registriert: 5. Aug 2005, 10:27
Wohnort: Hessen / MKK

Re: MySQL Master u. Slave = ein Rechner

Beitrag von gameboy » 27. Okt 2008, 23:29

panamajo hat geschrieben:
sarajevo hat geschrieben:wir hier in der Firma haben nen MySQL-Server laufen auf diesem soll zeitgleich ein Slave Server laufen um eine Replikation des ganzen zu haben...
Wozu soll das gut sein? Als Backup ist Replikation grundsätzlich nicht geeignet, auf derselben Maschine ergibt das überhaupt keinen Sinn mehr.
Meines Erachtens kann es schon Sinn machen, zwei MySQL-Instanzen mit der gleichen Datenbank per Master-Slave-Synchronisation auf ein und demselben Rechner laufen zu lassen. Die Möglichkeit, den Slave anzuhalten und davon dann in aller Ruhe ein konsistentes Backup zu ziehen, ohne den Betrieb des Masters zu stören, klingt für mich schon verlockend. Ausprobiert habe ich das selbst noch nicht, aber in c't 22/2008 ist die Vorgehensweise auf Seite 210f beschrieben.

Viele Grüße,
gameboy.

Benutzeravatar
sarajevo
Newbie
Newbie
Beiträge: 13
Registriert: 25. Sep 2008, 02:24
Wohnort: Augsburg
Kontaktdaten:

Re: MySQL Master u. Slave = ein Rechner

Beitrag von sarajevo » 28. Okt 2008, 10:57

Danke für die Tips

/var/lib/mysql scheint also das Arbeitsverzeichnis zu sein...

nun lese ich vermehrt das der Schritt mit dem Snapshot garnicht erwähnt wird da stellt sich mir die Frage ob die ganze Sache überhaupt nötig ist ?

Oder ob

### ID des Slave Servers
server-id = 10
### IP bzw. DNS-Name des Masters
master-host = XX.239.214.XXX
### Replika-User @ Master
master-user = XXX
### Passwort @ Master
master-pass = XXXXXXXX

schon ausreichend wäre damit MySQL die benötigten Daten selbst überträgt ?


Grüße

Benutzeravatar
panamajo
Guru
Guru
Beiträge: 2587
Registriert: 12. Feb 2005, 22:45

Re: MySQL Master u. Slave = ein Rechner

Beitrag von panamajo » 28. Okt 2008, 11:32

sarajevo hat geschrieben:damit MySQL die benötigten Daten selbst überträgt ?
Nein, der Snapshot wird benötigt damit der Slave einen definierten Stand hat bei dem die Replikation beginnen kann.

Benutzeravatar
sarajevo
Newbie
Newbie
Beiträge: 13
Registriert: 25. Sep 2008, 02:24
Wohnort: Augsburg
Kontaktdaten:

Re: MySQL Master u. Slave = ein Rechner

Beitrag von sarajevo » 28. Okt 2008, 11:44

Macht das ganze eigentlich einen Unterschied wenn ich den Slave replizier ?

Der Slave repliziert den Master und ich replizier vom Slave...muss man dabei etwas beachten ?

Benutzeravatar
sarajevo
Newbie
Newbie
Beiträge: 13
Registriert: 25. Sep 2008, 02:24
Wohnort: Augsburg
Kontaktdaten:

Re: MySQL Master u. Slave = ein Rechner

Beitrag von sarajevo » 28. Okt 2008, 11:58

Da blick ich langsam nicht mehr durch...

Snapshot erstellt aufn Master unter /var/lib/mysql, mittels scp rüber kopiert...im /var/lib/mysql Verzeichnis des Slaves entpackt und danach versucht den Slave zu starten...

root@XXX:/var/lib/mysql# /etc/init.d/mysql start
* Starting MySQL database server mysqld [ OK ]
* Checking for corrupt, not cleanly closed and upgrade needing tables.
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'
root@XXX:/var/lib/mysql# ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)


Was nun ?


EDIT : Da war ich wieder vorschnell

Benutzeravatar
sarajevo
Newbie
Newbie
Beiträge: 13
Registriert: 25. Sep 2008, 02:24
Wohnort: Augsburg
Kontaktdaten:

Re: MySQL Master u. Slave = ein Rechner

Beitrag von sarajevo » 28. Okt 2008, 12:46

So folgendes Problem...

Eine replikation scheint zu starten nachdem ich
load data from master; eingebe
nach ca. 10 min erscheint


$ Cannot delete or update a parent row: a foreign key constraint fails

ich bin am googeln aber ne richtige lösung bietet sich da nicht ...

marce
Advanced Hacker
Advanced Hacker
Beiträge: 1072
Registriert: 19. Jun 2008, 13:16
Wohnort: Dettenhausen
Kontaktdaten:

Re: MySQL Master u. Slave = ein Rechner

Beitrag von marce » 28. Okt 2008, 14:58

klingt nach einer korrupten Datenbank oder Tabelle...

Benutzeravatar
sarajevo
Newbie
Newbie
Beiträge: 13
Registriert: 25. Sep 2008, 02:24
Wohnort: Augsburg
Kontaktdaten:

Re: MySQL Master u. Slave = ein Rechner

Beitrag von sarajevo » 28. Okt 2008, 15:29

naja werds jetzt mal mit dem dump des slaves versuchen vielleicht klappt das


EDIT: Wieder der gleiche Fehler
ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails

Antworten