MYSQL schlägt fehl mit: InnoDB: Betriebssystemfehlernummer 30 in einer Dateioperation

2563
Jon

Mein MySQL-Server wurde vor kurzem etwa einmal pro Woche gestoppt. Es ist ein Neustart erforderlich, damit das System wieder funktioniert. Nach dem Neustart funktioniert es jedoch wieder für ein oder zwei Wochen.

Der fragliche Fehler ist Nummer 30. Laut URL im Fehlerprotokoll gibt MYSQL nicht mehr Informationen an, als nur zu sagen, dass mein Datenbanklaufwerk jetzt im Nur-Bereit-Modus ist.

Meine Datenbank befindet sich auf einem gemounteten Laufwerk UUID="c3c2527e-..." /media/database ext4 user,auto 0 2. Auf dieses Laufwerk kann über ssh zugegriffen werden, wenn dieser Fehler auftritt.

Meines Wissens habe ich mein Betriebssystem oder MySQL kürzlich nicht aktualisiert oder Änderungen am Server vorgenommen. Ich erinnere mich, dass ich Apparmor anpassen musste, als ich das Laufwerk mit MySQL zum ersten Mal hinzufügte. Dies wurde jedoch vor über einem Jahr getan.

Meine Frage ist also: Hat dieses Problem damit zu tun, dass meine Festplatte schlecht läuft, Schluckauf oder andere Probleme?

Betriebssystem: 12.04.2 LTS (GNU / Linux 3.5.0-23-Generic x86_64)

MYSQL: 5.5.31-0ubuntu0.12.04.1 (Ubuntu)

MYSQL-Laufwerk: / dev / sdb1 2.0T 709M 2.0T 1% / Medien / Datenbank

Der ganze Fehler ist:

140301 8:00:29 [Note] Plugin 'FEDERATED' is disabled. 140301 8:00:29 InnoDB: The InnoDB memory heap is disabled 140301 8:00:29 InnoDB: Mutexes and rw_locks use GCC atomic builtins 140301 8:00:29 InnoDB: Compressed tables use zlib 1.2.3.4 140301 8:00:29 InnoDB: Initializing buffer pool, size = 128.0M 140301 8:00:29 InnoDB: Completed initialization of buffer pool 140301 8:00:29 InnoDB: Operating system error number 30 in a file operation. InnoDB: Error number 30 means 'Read-only file system'. InnoDB: Some operating system error numbers are described at InnoDB: http://dev.mysql.com/doc/refman/5.5/en/operating-system-error-codes.html InnoDB: File name ./ibdata1 InnoDB: File operation call: 'open'. InnoDB: Cannot continue operation. 
2

1 Antwort auf die Frage

1
RolandoMySQLDBA

Sie haben definitiv Probleme mit der Festplatte. Es könnte der Festplattencontroller sein. Was auch immer die Geschichte ist, der Fehler liegt auf Betriebssystemebene:

sh-4.1# perror 30 OS error code 30: Read-only file system 

InnoDB funktioniert nicht mehr, da dazu viele Schreibvorgänge erforderlich sind, selbst wenn gelesen wird

So sieht InnoDB aus

InnoDB Architecture

Die aktiven InnoDB-Komponenten, für die Schreibvorgänge erforderlich sind, sind

  • Datenwörterbuch (Beim Erstellen, Ändern und Löschen von Tabellen)
  • Double Write Buffer (Kopie der Daten zur Wiederverwendung bei der Wiederherstellung nach einem Absturz)
  • Puffer einfügen (Änderungen in Indizes aus Pufferpool abmildern)
  • Rollback-Segmente / Rückgängig-Protokolle ( Transaktionsisolation und MVCC )
  • Protokolldateien (Änderungen aus dem Protokollpuffer über Fuzzy Checkpointing empfangen )
  • .ibd Dateien (einzelne Tablespace-Dateien)

Sobald ein Dateisystem schreibgeschützt ist, werden alle diese beweglichen Teile angehalten.

Sie sollten die Daten sichern

  • Ich würde einen mysqldump aller Daten machen
  • Beenden Sie mysql und erhalten Sie einen LVM-Snapshot (falls vorhanden)
  • Beenden Sie MySQL und kopieren Sie das Datenverzeichnis

Sobald Sie eine Sicherungskopie erstellt haben, können Sie direkt zur Festplattenwartung wechseln. Überprüfen Sie das RAID, den Festplattencontroller und die Festplatte selbst.

Hier sind einige andere ServerFault-Beiträge zu schreibgeschützten Problemen

Es war meine Festplatte. Nach dieser Ausgabe beschloss ich, alles in die Cloud zu verschieben, sodass ich mich nicht mit 1-jährigen Festplatten auseinandersetzen muss: +1 Jon vor 10 Jahren 0