fReLuZ <
fre...@ibt.com.pl> napisał(a):
> No wlasnie a jak wyeksportowac bierzace indexy z tej tabeli?
Tak naprawdę to same powinny się odtworzyć, wystarczy
odtworzyć plik indeksowy z roboczej tabeli, chodzi tu
o nieuszkodzony plik, dlatego ja robię pustą tabelkę
z takimi samymi polami data i polami ideksowymi
i plik indeksowy z tej roboczej tabelki kopiuję do tej uszkodzonej.
czyli na dysku widzimy pliki:
mysql5.1.53
|
--- data
|
----TBL- pliki: t1.frm
t1.myd
t1.myi
t2.frm
t2.myd
t2.myi
uszkodzona jest t2.myi lub t2.frm i te właśnie trzeba
zastąpić więc zmieniamy nazwę pliku na t2.myixxxxxx
i z tej t3 roboczej kopiujemy właśnie t3.myi i t3.frm,
zmieniamy nazwę na t2.myi i t2.frm, uruchamiamy i indeksy
powinny się same odtworzyć.
Najpierw pytanie czy tabela z danymi nie jest uszkodzona,
bo jeśli tak jest, to odtworzenie indeksów będzie niemożliwe.
Wówczas najpierw trzeba doprowadzić do porządku dane
a indeksy same się utworzą.
Z danymi to już trudniejsza sprawa. Naprawienie to lokalizacja
obszaru uszkodzonego ręcznie jadąc sekwencyjnie po rekordach
(bez użycia indeksów) najpierw od góry do dołu a potem od dołu
do góry. Tam gdzie jest uszkodzenie tam się wywali.
Znając numery krańcowych rekordów od-do usuwasz ten obszar
najpierw dropem a potem trunkejtem a brakujące (z usuniętej częsci)
rekordy dodajesz z wczesniejszych kopii.
Wpisujesz pola indeksowe i po uruchomieniu już się
powinny same odtworzyć.
Jeśli chodzi o tzw klucze indeksowe jak je znasz to:
ADD PRIMARY KEY (`Id`,`p34`,`p31`(15),`p32`(15)).
Każdy dobry program ma jednak opcję tworzenia plików indeksowych
więc ta wiedza nie jest potrzebna.
Przy naprawianiu najlepiej jednak korzystać z rozwiązań
systemowych naprawy bazy, tak jak radzą koledzy.
Andrzej.
--
Wysłano z serwisu Usenet w portalu Gazeta.pl ->
http://www.gazeta.pl/usenet/