Slave meckert wg. fehlenden Tabellen
Posted: 2009-03-25 08:16
Yohoo!
Ich habe hier etwas, das ich nicht verstehe. Und zwar mache ich eine Master-Slave Replikation.
Master ist MySQL 5.0.45-7.el5 (CentOS 5.2) 64bit
Slave ist MySQL 5.0.45-7.el5 (CentOS 5.2) 32bit
Die Replikation laeuft ueber eine 2Mbit Standleitung via VPN. Auf dem Server ist nicht viel los, da reicht die Leitung eigentlich dicke.
Ich starte die Replikation wie folgt:
Master
Dann sichere ich alle Datenbanken (ausser der mysql) mittels tar: tar cjpvf /master.tar.bz2 db1 db2 db3 und kopiere die Datei zum Slave.
Und dann kommt ein
Slave
Zur Ueberpruefung dann das folgende:
Ist also alles in Ordnung, oder? Jetzt will ich den Slave sichern: :evil:
Und im Verzeichnis /var/lib/mysql/gallerie sieht das so aus:
Auf dem Master uebrigens die gleiche Dateistruktur. Da funktioniert der mysqldump Befehl aber wunderbar :roll:
Weiss jemand, warum das nicht sauber ist oder was ich machen kann?
Ich habe hier etwas, das ich nicht verstehe. Und zwar mache ich eine Master-Slave Replikation.
Master ist MySQL 5.0.45-7.el5 (CentOS 5.2) 64bit
Slave ist MySQL 5.0.45-7.el5 (CentOS 5.2) 32bit
Die Replikation laeuft ueber eine 2Mbit Standleitung via VPN. Auf dem Server ist nicht viel los, da reicht die Leitung eigentlich dicke.
Ich starte die Replikation wie folgt:
Master
Code: Select all
mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;
+-------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| mysqld-bin.000004 | 98 | | |
+-------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
Und dann kommt ein
Code: Select all
UNLOCK TABLES;
Code: Select all
service mysqld stop; #(loesche auch noch ggf. existierende Slave-Datenbankverzeichnisse)
tar xpjvf /master.tar.bz2
mysqld_safe --skip-slave-start &
[...]
mysql> RESET SLAVE;
mysql> CHANGE MASTER TO
-> MASTER_HOST='master_host_name',
-> MASTER_USER='replication_user_name',
-> MASTER_PASSWORD='replication_password',
-> MASTER_LOG_FILE='mysqld-bin.000004',
-> MASTER_LOG_POS=98;
START SLAVE;
Code: Select all
mysql> SHOW SLAVE STATUSG
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: master.dom.ain
Master_User: slave1
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysqld-bin.000004
Read_Master_Log_Pos: 98
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 236
Relay_Master_Log_File: mysqld-bin.000004
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 98
Relay_Log_Space: 236
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
1 row in set (0.01 sec)
Code: Select all
[root@mysql mysql]# mysqldump --opt -u root -p --all-databases > mysql.dump
Enter password:
mysqldump: Got error: 1146: Table 'gallerie.g2_EventLogMap' doesn't exist when using LOCK TABLES
Und im Verzeichnis /var/lib/mysql/gallerie sieht das so aus:
Code: Select all
[root@mysql gallery]# ls |grep -i event
g2_EventLogMap.frm
g2_SequenceEventLog.frm
g2_SequenceEventLog.MYD
g2_SequenceEventLog.MYI
Weiss jemand, warum das nicht sauber ist oder was ich machen kann?