Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL 5.5] ibdata1 InnoDB ERROR, nie moge wyczyścic baz, nie usuwają cie dane
lysy2005
post 21.06.2011, 21:42:09
Post #1





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 18.01.2009

Ostrzeżenie: (0%)
-----


Witam szanowne grono,
mam serwer na centosie5,5 64bit

Mam zainstalowaną bazę MySQL 5.5
bazy są w InnoDB, bazy zapisują sie do pliku InnoDB i wszystko pięknie, działają śmigają aż miło.
Problem pojawia się jak chce wyczyścić jakąś bazę, tabele usunąć dane.
Niby usuwają sie bo już ich nie widać w tabeli, ale plik ibdata1 w katalogu z bazami nie zmniejsza się....
Dane dalej tam siedzą zapychając dysk...

Miał ktoś podobny problem?
Jeżeli tak to co najeży zrobić?
Czytałem ze trzeb konwertować na MyISAM tabele usunąć plik ibdata1 i znowu konwertować na InnoDB..
Na dłuższą nie to niewykonalne z wiadomych przyczyn...

Z góry dziękuje za pomoc, borykam się z tym problemem już długo..
Go to the top of the page
+Quote Post
wookieb
post 21.06.2011, 22:04:20
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Spróbuj pustego altera
  1. ALTER TABLE tabela ENGINE = InnoDB

Druga opcja to
  1. OPTIMIZE TABLE tabela
Powód edycji: [wookieb]:


--------------------
Go to the top of the page
+Quote Post
mortus
post 21.06.2011, 22:38:07
Post #3





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


Teoretycznie powinno pomóc polecenie:
  1. OPTIMIZE TABLE nazwa_tabeli

Niestety przy standardowych ustawieniach mySQL-a polecenie to nie zwolni przestrzeni na dysku, ponieważ dane przechowywane są w jednej, systemowej przestrzeni tabel (tłumaczenie z tablespace). Ta raz użyta zostaje wciąż zarezerwowana na nowe dane, mimo usunięcia danych zbędnych, już niewykorzystywanych. Trzeba zatem:
1. zrobić backup bazy danych,
2. usunąć bazy danych (DROP), a jeśli na dysku zostaną pliki to należy je usunąć fizycznie,
3. wyłączyć i skonfigurować mySQL-a - w sekcji mysqld pliku konfiguracyjnego dopisać innodb_file_per_table, po czym ponownie włączyć mySQL-a,
4. przywrócić bazy danych z backup-a.
Od teraz dane dla każdej tabeli przechowywane są w osobnych plikach, a zastosowanie wspomnianego wyżej polecenia odnosi oczekiwany rezultat.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 13:37