Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Tabela MySQL jest oznaczona jako awaria

Tabele MyISAM bardzo łatwo ulegają awarii. W każdej tabeli znajdują się informacje nagłówka, które śledzą, ile otwartych plików obsługuje tabela MyISAM.

Jeśli mysqld ulegnie awarii, jakakolwiek tabela MyISAM, która miała otwarte uchwyty pliku, nigdy nie miała możliwości zmniejszenia liczby uchwytów pliku po każdym zamknięciu uchwytu pliku. Tak więc, jeśli nowy uchwyt pliku otworzy tabelę MyISAM (plik .MYD) i mysqld wykryje niezgodność między liczbą uchwytów plików, które tabela MyISAM uważa za otwarte, a liczbą uchwytów plików, które tabela MyISAM faktycznie ma otwarte, tabela jest ogłoszono awarię.

Istnieją cztery (4) metody radzenia sobie z tym:

METODA nr 1:Ustaw automatyczną naprawę MyISAM

Zobacz mój post https://dba.stackexchange.com/a/15079/877 jak to skonfigurować po ponownym uruchomieniu MySQL (15 marca 2012)

METODA #2:Użyj InnoDB zamiast MyISAM

InnoDB ma wbudowane odzyskiwanie po awarii w inicjalizacji silnika pamięci masowej. MyISAM nie

METODA #3:Użyj Arii zamiast MyISAM

Aria jest zastępczym programem MariaDB dla MyISAM. Zawiera mechanizmy odzyskiwania po awarii dla poszczególnych tabel.

METODA #4:Nie zabijaj -9 na mysqld

Jeśli mysqld ulegnie awarii, celowo lub nieumyślnie, informacje z nagłówka wszystkich otwartych tabel MyISAM spowodują ich awarię. Unikaj ręcznego zabijania mysqld.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd podczas instalacji MySQL-python z pip install w OSX, virtualenv

  2. Czy można policzyć dwie kolumny w tym samym zapytaniu?

  3. darmowy wynik pdo

  4. Czy istnieje sposób na wykonanie więcej niż jednego zapytania na ciąg w MySQL-Python?

  5. Jak ustawić zestawienie w mysqli?