Skocz do zawartości

Kłopot Z Mysql


Danveld

Rekomendowane odpowiedzi

mam wielki problem;/ rozwalila mi sie jedna tabela. skrypt miał bład i wszystkie rekordy sie zupdatowały dając jeden ten sam. W pliku MYD widze jednak że są poprzednie dane. W jaki sposób to odzyskac??

 

Stare dane zgromadzone są jako nadmiar tabeli. Zależy mi na czasie. Jak coś to moje gg to: 3004239

 

POMOCY!!!!!! :shock: :shock: :shock:

Odnośnik do komentarza
Udostępnij na innych stronach

mam wielki problem;/ rozwalila mi sie jedna tabela. skrypt miał bład i wszystkie rekordy sie zupdatowały dając jeden ten sam. W pliku MYD widze jednak że są poprzednie dane. W jaki sposób to odzyskac??

 

Stare dane zgromadzone są jako nadmiar tabeli. Zależy mi na czasie. Jak coś to moje gg to: 3004239

 

POMOCY!!!!!! :shock: :shock: :shock:

Jaki typ tabeli ?

 

Transakcje włączone ?

Odnośnik do komentarza
Udostępnij na innych stronach

Metoda najprostsza - na chama.

 

Skoro rekordy sa w pliku, stworz plik tekstowy i skopiuj je tam, format pliku nastepujacy: po jednym rekordzie w linijce, wartosci oddzielone tabulacja, w kolejnosci jak kolumny w CREATE TABLE.

Stworz nowa tabele, z kolumnami jak wyzej i uruchom takie polecenie:

LOAD DATA LOCAL INFILE 'nazwa_pliku' INTO TABLE nazwa_tabeli;

 

Jesli tylko uda ci sie jakos bezbolesnie przeniesc te dane do pliku, to odzyskasz swoja tabele.

 

Uhhhhhhh, no dobra. Zatem tabele MySQL siedza w plikach, jesli uzywasz MyISAM, przy czym plik .MYD przechowuje dane, natomiast plik .MYI indeksy. Jest to wynikiem koncepcji tworcow serwera, by rozdzielic jedne od drugich. Z tego co piszesz, moze wynikac, ze w jakis sposob uszkodzony zostal plik .MYI, w takim razie uruchom programik myisamchk z opcja --quick. Program stworzy nowe indeksy do pliku .MYD i zastapi stary plik .MYI.

 

myisamchk -q nazwa_tabeli

 

Moze pomoc. Jesli nie, musisz przeprowadzic analize jak nizej:

 

myisamchk -m nazwa_tabeli

(zobacz co znajdzie)

 

myisamchk -e nazwa_tabeli

(wykona extended check)

 

Dodanie opcji -i wyswietli jeszcze jakies statystyki.

 

Ps. MyISAM nie obsluguje transakcji, bo nie moze. MySQL radzi sobie z tranzakcyjnymi eginami takimi jak BDB i InnoDB. MyISAM i ISAM nimi poprostu nie sa. Zatem to czy dana tabela obsluguje tranzakcje, czy nie, nie wynika stricte z ustawien serwera, a raczej z typu tabeli jako takiej. Zatem kosztem utrzymania integralnosci zyskujemy szybkosc, jednak w przypadku naprawde waznych danych (chyba ze tabele sa koszmarnie wielkie) osobiscie zawsze decydowalbym sie na InnoDB.

 

Pozdrawiam ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
×
×
  • Dodaj nową pozycję...