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

Najlepsze sposoby naprawy uszkodzonej tabeli InnoDB w MySQL

Podsumowanie:  W tym poście omówimy najlepsze sposoby naprawy uszkodzonej tabeli InnoDB w MySQL, która może zostać uszkodzona z powodu awarii sprzętu, awarii serwera MySQL i innych przyczyn. Te sposoby obejmują etapową procedurę naprawy uszkodzonej tabeli InnoDB ręcznie lub za pomocą oprogramowania naprawczego MySQL.

Począwszy od wersji MySQL 5.5, InnoDB jest używany jako domyślny silnik przechowywania wszystkich nowych tabel w bazie danych MySQL. Wspaniałą rzeczą w InnoDB jest to, że obsługuje odzyskiwanie po awarii. Dlatego nie można go łatwo uszkodzić, ale gdy tak się stanie, może się to zdarzyć z powodu awarii serwera MySQL po ponownym uruchomieniu, awarii sprzętu lub błędów w podstawowej platformie itp.

Gdy tabela InnoDB ulegnie uszkodzeniu, zawarte w niej dane stają się nieczytelne i niedostępne. A próba odczytu z uszkodzonej tabeli może spowodować awarię serwera MySQL.

Jak naprawić uszkodzoną tabelę InnoDB w MySQL?

Uwaga: Zanim spróbujesz naprawić uszkodzoną tabelę InnoDB, najpierw wykonaj kopię zapasową plików bazy danych MySQL.

Poniżej przedstawiono sposoby naprawy uszkodzonej tabeli bazy danych InnoDB

1. Ręcznie napraw uszkodzoną tabelę InnoDB

Rzadko będziesz musiał naprawiać tabele InnoDB, ponieważ silnik pamięci masowej pomaga w przywracaniu po awarii, które może naprawić większość problemów po ponownym uruchomieniu serwera. Może jednak zaistnieć sytuacja, w której trzeba będzie ręcznie przebudować lub naprawić uszkodzoną tabelę. Oto jak możesz to zrobić:

Krok 1:Uruchom ponownie usługę MySQL

Uruchom ponownie usługę MySQL, aby sprawdzić, czy możesz uzyskać dostęp do serwera, wykonując następujące czynności:

  1. Otwórz okno Uruchom, klikając „Windows+R” klucze razem.
  2. Wpisz msc i naciśnij Enter .
  3. Z Usług w oknie, poszukaj usługi MySQL i kliknij ją prawym przyciskiem myszy, a następnie kliknij uruchom ponownie .

Jeśli serwer jest dostępny, przejdź do kroku 3. Ale jeśli nie chce się uruchomić lub nadal ulega awarii, użyj opcji innodb_force_recovery wyjaśnionej w następnym kroku.

Krok 2:Wymuś odzyskiwanie InnoDB

Włącz innodb_force_recovery opcja w pliku konfiguracyjnym MySQL my.cnf, aby odzyskać dostęp do bazy danych MySQL i jej uszkodzonej tabeli. Aby to zrobić, wykonaj następujące kroki:

  • Otwórz plik my.cnf i dodaj następujący wiersz kodu w sekcji [mysqld]:
[mysqld]
Innodb_force_recovery=1

  • Zapisz i zamknij plik konfiguracyjny.
  • Spróbuj ponownie uruchomić usługę MySQL.

Krok 3:Upuść uszkodzoną tabelę

Gdy uzyskasz dostęp do uszkodzonej tabeli, zrzuć dane tabeli do nowego pliku za pomocą następującego polecenia mysqldump:

mysqldump –u user –p db_name table_name > single_dbtable_dump.sql

Uwaga: Dodaj nazwę tabeli oddzieloną spacją w powyższym poleceniu, aby zrzucić wiele tabel.

Teraz usuń uszkodzoną tabelę z bazy danych:

mysql –u user –p –execute=”DROP TABLE db_name.table_name”


Krok 4:Przywróć tabelę

Użyj nowo utworzonego pliku zrzutu, aby przywrócić tabelę z pliku zrzutu (tj. single_dbtable_dump):

mysql –u user –p < single_dbtable_dump.sql

Krok 5:Uruchom ponownie MySQL w trybie normalnym

Gdy uszkodzona tabela zostanie naprawiona, zatrzymaj usługę MySQL i wyłącz tryb odzyskiwania InnoDB, wpisując następujący wiersz w sekcji [mysqld]:

#innodb_force_recovery=...

Teraz uruchom ponownie usługę MySQL w trybie normalnym.

Uwaga: Jeśli nie korzystałeś z opcji innodb_force_recovery, po prostu zatrzymaj i uruchom ponownie serwer w trybie normalnym.

2. Napraw uszkodzoną tabelę InnoDB za pomocą oprogramowania do naprawy MySQL

Użycie wartości „innodb_force_recovery” większej niż 4 w celu odzyskania dostępu do bazy danych może prowadzić do uszkodzenia danych. Ponadto, w przypadku poważnego uszkodzenia, ponowne uruchomienie serwera MySQL może się nie udać. Możesz przezwyciężyć te ograniczenia związane z ręczną naprawą uszkodzonej tabeli bazy danych MySQL, używając specjalistycznego oprogramowania do naprawy MySQL takich jak Stellar Repair for MySQL.

Oprogramowanie może naprawiać i przywracać tabele InnoDB bazy danych MySQL, zachowując nienaruszone dane. Pomaga również odzyskać właściwości tabeli, klucze, ograniczenia relacji itp.

To narzędzie do naprawy baz danych MySQL pomaga naprawić zarówno tabele InnoDB, jak i MyISAM utworzone w systemach Windows i Linux OS.

Kroki naprawy uszkodzonej tabeli InnoDB za pomocą oprogramowania są następujące:

  1. Bezpłatne pobieranie, instalowanie i uruchamianie Stellar Repair for MySQL
  2. Z Wybierz folder danych w oknie dialogowym wybierz wersję MySQL, której używasz, a następnie kliknij OK .
  3. Z Wybierz bazę danych wybierz bazę danych, którą chcesz naprawić, a następnie kliknij Napraw .
  4. Podgląd naprawionej bazy danych, tabeli i innych możliwych do odzyskania komponentów jest wyświetlany w oknie podglądu oprogramowania.
  5. Wybierz tabele, które chcesz przywrócić, a następnie kliknij Zapisz w menu Plik.
  6. Z Zapisz bazę danych wybierz MySQL w sekcji Zapisz jako i wprowadź poświadczenia wymagane do połączenia z serwerem. Kliknij Zapisz .

Możesz znaleźć naprawiony plik bazy danych w nowym folderze, w tej samej lokalizacji, w której przechowywana jest oryginalna baza danych.

Możesz znaleźć naprawiony plik bazy danych w nowym folderze, w tej samej lokalizacji, w której przechowywana jest oryginalna baza danych.

Wniosek

Uszkodzenie w tabeli InnoDB może sprawić, że dane w niej zawarte będą nieczytelne, a jeśli nie zostanie rozwiązane w czasie, może nawet spowodować awarię serwera i nieplanowany przestój. Możesz naprawić uszkodzoną tabelę InnoDB, wykonując ręczną procedurę krok po kroku. Jednak ręczny proces naprawy tabel InnoDB może spowodować utratę danych i może nie przynieść oczekiwanego rezultatu.

Jednak za pomocą narzędzia do naprawy baz danych MySQL, takiego jak Stellar Repair for MySQL, możesz naprawić tabele w silniku pamięci InnoDB i przywrócić je do pierwotnego stanu funkcjonalnego. To narzędzie do naprawy plików pomaga naprawić bazę danych MySQL utworzoną zarówno w systemie Windows, jak i Linux. Może nie tylko naprawić tabele InnoDB, ale także naprawić uszkodzenia w tabelach MyISAM bazy danych MySQL.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bitwy kodowania znaków UTF-8 json_encode()

  2. MySQL COUNT() – Uzyskaj liczbę wierszy do zwrócenia przez zapytanie

  3. Jak NIE REGEXP działa w MySQL?

  4. MySQL w chmurze — migracja online z Amazon RDS do instancji EC2:część pierwsza

  5. Wyczyść pamięć podręczną zapytań MySQL bez restartowania serwera