Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Jedes Mal, wenn eine Query eine tmp Tabelle anlegt, wird dies in das temp Verzeichnis, üblicherweise /tmp geschrieben. Dies geschieht dann, wenn die maximale Größe der maximale "in Memory" Tabellengröße überschritten wird.Dies wird mit den Variablen  tmp_table_size sowie max_heap_table_size definiert.

Siehe auch https://dev.mysql.com/doc/refman/5.6/en/internal-temporary-tables.html für mehr Information. 

Die Tabellen in /tmp werden solange gehalten, bis die jeweilige DB-Verbindung geschlossen wird, oder ein DROP TEMPORARY TABLE aufgerufen wird. Falls das /tmp Verzeichnis voll-läuft, ist zu vermuten dass ein DROP TEMPORARY TABLE irgendwo fehlt. Dies kann durchaus auch durch Kunden-Abfragen an die DB geschehen.

...

  1. Es muss erstmal Platz geschaffen werden. Einfach gnadenlos alles aus /tmp löschen.
  2. Falls dies genügend Platz verschafft, dann erstmal den mysql Dienst neustarten: service mysql restart
  3. Falls dann genug Platz vorhanden ist (mindestens ca. 20%), dann mit Wiederherstellung der Replikation wie Oben beschrieben fortfahren.

...

Jede Menge "relay Logs" vorhanden

MySQL schreibt die Relay-Logs vom Master erstmal in eine Datei. Wenn die Replikation erstmal gebrochen ist, aber der Slave Relay Prozess weiter arbeitet, dann wird die Platte durch Relay Logs befüllt. 

...

  1. Alle Relay Logs löschen:
    cd /var/lib/mysql
    rm mysqld-relay-bin*
  2. MySQL Dienst neustarten
    service mysqld restart
  3. Falls genug Platz vorhanden (mind. 20%) dann mit der Wiederherstellung des Slaves fortfahren wie oben beschrieben.

ibdata Dateien auf den Slave "

...

Riesen-Groß"

Die Dateien für die Datenbank befinden sich in der Regel in /var/lib/mysql

Auf Grund von nicht klare internas bei mysql klar dokumentierte MySQL internas, kann die Datei /var/lib/mysql/ibdata1 eine riesige Größe annehmen im Vergleich zu der Master Datenbank.

...

  1. Falls nicht weniger als 100% Platte durch die Schritte Oben erreicht werden kann, wird ein reboot an dieser Stelle nötig.:
    1. Den MySQL Dienst vorher aus der Autostart austragen:
      service mysqld disable
    2. Den Rechner neu starten mit:
      reboot
  2. Wenn weniger als 100% Platte erreicht ist (ggf. nach Reboot oben) dann:
    1. Auf den mysql Server anmelden:
      mysql -u root -p
    2. Alle JTEL Datenbanken droppen:
      SET FOREIGN_KEY_CHECKS=0;
      DROP DATABASE JTELLog;
      DROP DATABASE JTELStats;
      DROP DATABASE JTELWeb;
      SET FOREIGN_KEY_CHECKS=1;
    3. Mit CTRL+C wieder auf die Kommandozeile, und dann:
      service mysqld stop
      rm /var/lib/mysql/ibdata*
    4. MySql Server starten
      service mysqld start
    5. Plattenplatz prüfen, und mit Slave Wiederherstellung wie oben beschrieben fortfahren.

...

In diesen Fall ist der Slave einfach zu klein. Die Festplatte muss erweitert werden (wie bei Erweiterung der Rolle STORE, nur auf das Logical Volume anwenden auf den die Daten der MySQL Datenbank sich befinden).  Dann die Schritte wieder durchführen, bei Platte zu Klein, dann Slave wieder herstellen wie Oben beschrieben.

Oder der Slave wird komplett neu gebaut mit einer größeren Platte.