<MASTER>: app1-db
<SLAVE>: app2-db
(kann aber auch andersrum sein. app-db is immer Master!)
[MYSQL] <Befehle für die mysql shell>
Bei Master-Master syncen sich die beiden Instanzen gegenseitig um einen automatischen Failover machen zu können. Da “app-db” aber immer nur auf eine der beiden Instanzen zeigt gibt es immer nur eine Maschine die als Master fuungiert. Im folgenden immer Master genannt.
Bevor man weiter vorgeht muss man wissen welche Maschine den aktuellen Datenbestand hat, also welche Maschine der Master ist!!!
- Wenn der Slave mal aus dem Tritt kommt:
- Erst mal stoppen und wieder starten. Logfile checken: /app/tools/mysql_produktion_app/data/app2-db.err
- Wenn nix mehr hilft:
- [MYSQL] auf app1-db und app2-db: slave stoppen:
- stop slave;
- [MYSQL] alle Tabellen auf app1-db und app2-db sperren:
- flush tables with read lock;
- Slave runterfahren:
- /app/tools/mysql_produktion_app/support-files/mysql.server stop
- rsyncen vom Master auf Slave (wichtig: mit option -c) (Beispiel wenn app1-db Master ist):
- rsync -acv –exclude=”mysql-bin.*” –exclude=”*.info” –exclude=”*app1-db*” /app/db/produktion_app/ app2-db:/app/db/produktion_app/
- [MYSQL] Master status abfragen und merken:
- show master status;
- [MYSQL] Slave auf die richtige Position konfigurieren. Dazu ist sind die Infos aus “show master status” wichtig!
- change master to master_host=”<MASTER>”, master_user=”eslave”, master_port=3307, master_password=”xxx”, master_log_file=”mysql-bin1.xxx”, master_log_pos=xxxxx;
- [MYSQL] Slave starten:
- start slave;
- [MYSQL] Slave status checken (Slave_IO_State sollte auf “Waiting for master to send event” stehen:
- show slave status;
- [MYSQL] Masterstatus auf Slave! abfragen und merken:
- show master status;
- [MYSQL] Master auf die richtige Slaveposition konfigurieren:
- change master to master_host=”<SLAVE>”, master_user=”eslave”, master_port=3307, master_password=”xxx”, master_log_file=”mysql-bin2.xxx”, master_log_pos=xxxxx;
- [MYSQL] Slave auf Master starten:
- start slave;
- [MYSQL] Slave auf Master status checken:
- show slave status;
- [MYSQL] Master und Slave entsperren: unlock tables;
- Errorlog checken ob es gut gegangen ist: data/app2-db.err
- Nun sollte auch der BB bald wieder grün werden.
Doku auf mysql.com:http://dev.mysql.com/doc/refman/5.0/en/replication-howto.html__