Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 12936|Odpowiedź: 0

[Źródło] Naucz cię, jak używać Myisamchk do odzyskiwania po awarii MySQL

[Skopiuj link]
Opublikowano 15.11.2017 13:23:05 | | |

"tbl_name.frm" tabela definicji (tabela) plik "tbl_name. MYD "Data File" tbl_name. MYI"
Każdy z tych trzech typów plików może cierpieć na różne formy uszkodzenia, ale problem najczęściej występuje w plikach danych i indeksach.
myisamchk tworzy ". MYD" (data) działa, czyli usuwa stary plik ". MYD i przemianować nowy plik na oryginalną nazwę, aby zakończyć fazę naprawy. Jeśli użyjesz --quick, myisamchk nie tworzy tymczasowego ". MYD" po prostu zakładam". MYD" jest poprawne i tworzy tylko nowy plik indeksowy, bez dotykania". MYD", który jest bezpieczny, ponieważ myisamchk automatycznie wykrywa". MYD" jest uszkodzony i w tym przypadku należy porzucić naprawę. Możesz też dać myisamchk dwie – szybkie opcje. W tym przypadku myisamchk nie rezygnuje z niektórych błędów (takich jak powtarzające się), lecz próbuje zmodyfikować ". MYD", żeby je rozwiązać. Zazwyczaj jest to przydatne tylko wtedy, gdy zaimplementujesz normalną poprawkę przy zbyt małej wolnej przestrzeni na dysku, korzystając z dwóch szybkich opcji. W takim przypadku przynajmniej powinieneś zrobić kopię zapasową przed uruchomieniem myisamchk.
1. Jak sprawdzić błędy w tabeli
Aby sprawdzić tabelę, użyj następującego polecenia:
myisamchk tbl_name
To wykrywa 99,99% wszystkich błędów. Nie może jednak ustalić, że uszkodzenia występują tylko w plikach danych (co jest rzadkie). Jeśli chcesz sprawdzić tabelę, zazwyczaj powinieneś uruchomić myisamchk bez tej opcji lub użyć opcji -s lub --cichej.
myisamchk -e tbl_name
Przeprowadza całkowicie dokładną weryfikację danych (-e oznacza "rozszerzoną kontrolę"). Wykonuje sprawdzanie każdego klucza na każdej linii, aby potwierdzić, że wskazują na właściwą linię. Na dużym stole z wieloma może to zająć dużo czasu. myisamchk zazwyczaj przestaje po znalezieniu pierwszego błędu. Jeśli chcesz więcej informacji, możesz dodać opcję --vervose(-v). To sprawia, że myisamchk kontynuuje do maksymalnie 20 błędów. W ogólnym użyciu wystarczy prosty myisamchk (bez argumentów poza nazwą tabeli).
myisamchk -e -i tbl_name
Podobnie jak poprzednie polecenie, ale opcja -i mówi myisamchk do wydrukowania statystyk.
2. Jak naprawić stół
Objawem uszkodzonej tabeli jest zazwyczaj nieoczekiwane przerwanie zapytania, a na przykład można zobaczyć następujące błędy:
"tbl_name.frm" jest zablokowane i nie można go zmienić.
Nie mogę znaleźć pliku "tbl_name. MYI"(Errcode :### )。
Pobierz błąd ### z procesora tabelowego (w tym przypadku wyjątek jest błąd 135).
Nieoczekiwane zakończenie pliku.
Pliki archiwalne zostały zniszczone.
W takich przypadkach musisz naprawić stół. Myisamchk zwykle wykrywa i naprawia większość rzeczy, które idą nie tak.
Proces naprawy składa się z maksymalnie 4 etapów, opisanych poniżej. Zanim zaczniesz, powinieneś nadać uprawnienia do katalogu bazy danych i plików kontrolnych, aby upewnić się, że są czytelne dla użytkowników Uniksa korzystających z mysqld (i dla ciebie, bo potrzebujesz dostępu do pliku sprawdzanego). Jeśli odmówi modyfikacji pliku, muszą być również do zapisania do Ciebie.
Faza 1: Sprawdź swój stół
Uciekaj
myisamchk *. MYI
lub (myisamchk -e *. MYI, jeśli masz więcej czasu). Użyj opcji -s (cisza), aby wyłączyć niepotrzebne informacje.

Format pliku używany przez MySQL do przechowywania danych był szeroko testowany, ale zawsze istnieją zewnętrzne warunki, które mogą powodować uszkodzenie tabel baz danych:
Proces mysqld zostaje zabity jednym zapisem; Niespodziewane wyłączenie komputera (na przykład w przypadku utraty zasilania); Błąd sprzętowy.
Ten rozdział opisuje, jak sprawdzać i radzić sobie z uszkodzeniami danych w bazie MySQL. Jeśli Twój stół jest mocno uszkodzony, powinieneś spróbować dowiedzieć się dlaczego! Zobacz G.1 Debugowanie serwera MySQL.
Podczas wykonywania odzyskiwania po awarii ważne jest, aby zrozumieć, że każda tabela w bazie danych tbl_name odpowiada trzem plikom w katalogu bazy danych




Poprzedni:mysql #1062 – Duplicate entry '1' for key 'PRIMARY'
Następny:MySQL widzi instrukcje SQL wykonywane w czasie rzeczywistym
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com