Master: app1-db
Slave: app2-db
Anmerkung:
- Master und Slave können theoretisch auch andersrum sein
- im folgenden ist app1-db Master und app2-db Slave
Wenn der Slave mal aus dem Tritt kommt:
- Mysql auf dem Slave stoppen und anschliessend wieder starten:
/app/tools/mysql_xxx/bin/mysqladmin -u <user> -p -h <slavehost> -P <port> shutdown
/app/tools/mysql_xxx/support-files/mysql.server start
- Logfile auf Fehler checken: data/app2-db.err bzw. im SYSLOG
- in mysql Status des Slave prüfen mit “show slave status”: “Seconds_Behind_Master” muss 0 oder maximal 1 sein. “NULL” heisst der Slave läuft nicht.
- Wenn der Slave nicht läuft, die Werte Last_Errno und Last_Error prüfen. Wenn dort alles ok ist kann der Slave einfach gestartet werden. Andernfalls muß das Problem aus “Last_Error”behoben werden.
Slave neu syncen (Downtime erforderlich!)
- Wenn der Slave anschliessend nicht richtig laufen sollte muß er neu gesynct werden:
- Slave Datenbank runterfahren:
mysqladmin -u <user> -p -h app2-db -S <socket> shutdown
- alle Tabellen auf app1-db sperren: app1-db: mysql:
flush tables with read lock;
- rsyncen auf app1-db (wichtig: mit option -c):
rsync -acv –exclude=”mysql-bin.*” –exclude=”*.info” –exclude=”*app1-db*” /app/db/produktion_app/ app2-db:/app/db/produktion_app/
- Master status während des rsync abfragen und merken: app1-db: mysql:
show master status;
- Wenn der rsync fertig ist: app1-db: mysql:
unlock tables;
- Anschliessend den Slave ohne Slave Option starten:
…/support-files/mysql.server start –skip-slave-start
- Slave auf die richtige Position konfigurieren. Dazu ist sind die Infos aus “show master status” von der app1-db wichtig!
app2-db: mysql:
change master to master_host=”app1-db”, master_user=”eslave”, master_port=3307, master_password=”xxx”, master_log_file=”mysql-bin.xxx”, master_log_pos=xxxxx;
- app2-db: mysql:
start slave;
- Errorlog checken ob es gut gegangen ist: data/app2-db.err bzw. syslog
- 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__