Adrian Z.

Adrian Z. IT Project Manager &
PHP Programmer

Temat: Znikające InnoDB

Mam problem po przeinstalowaniu się ze Slackware 12 na Debian 5 . Bazy danych trzymam w /home/mysql i jedynie robię ln -s /home/mysql /var/lib/mysql

A problem polega na tym , że po zmianie systemu i wersji mysqld na wyższą nie wyświetlają mi się tabele InnoDB chociaż baza je widzi - w nawiasie jest odpowiednia ich ilość , ale poniżej lista jest wybrakowana .
Janusz Skudrzyk

Janusz Skudrzyk Członek zarządu,
weblabs.pl

Temat: Znikające InnoDB

/var/log/mysql/
Pliki bin pomiń (bo nie ma w nich nic ciekawego). W pozostałych może być informacja o tym, na jaki problem natknęła się baza.
Adrian Z.

Adrian Z. IT Project Manager &
PHP Programmer

Temat: Znikające InnoDB

np-31-4:/home/adq# mysqld
091106 19:33:52 InnoDB: Started; log sequence number 0 43655
091106 19:33:52 [Note] mysqld: ready for connections.
Version: '5.0.51a-24+lenny2' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Debian)
091106 19:34:46091106 19:34:46 [ERROR] Cannot find table citiportal/roles from the internal data dictionary
of InnoDB though the .frm file for the table exists. Maybe you
have deleted and recreated InnoDB data files but have forgotten
to delete the corresponding .frm files of InnoDB tables, or you
have moved .frm files to another database?
See http://dev.mysql.com/doc/refman/5.0/en/innodb-troubles...
how you can resolve the problem.

Nadal nie rozumiem jak może brakować plików , jeśli przed zmianą systemu partycja z bazami danych nie była ruszana .
Janusz Skudrzyk

Janusz Skudrzyk Członek zarządu,
weblabs.pl

Temat: Znikające InnoDB

Na razie spróbuj przenieść plik roles.frm (katalog citiportal) do osobnego katalogu (np. /root/mysql) i zobacz co wypluje mysql przy kolejnej próbie uruchomienia.
Adrian Z.

Adrian Z. IT Project Manager &
PHP Programmer

Temat: Znikające InnoDB

Janusz Skudrzyk:
Na razie spróbuj przenieść plik roles.frm (katalog citiportal) do osobnego katalogu (np. /root/mysql) i zobacz co wypluje mysql przy kolejnej próbie uruchomienia.
nic nie pluje - wszystko działa tak jakby były tylko tabele MyISAM bo w rzeczywistości tylko ich pliki zostawiłem
pliki odnoszące się do tabel InnoDB przeniosłem do innego katalogu i już nie ma o nie żadnego komunikatu
niemniej te tabele są potrzebne do działania aplikacji a gdzieś giną

konto usunięte

Temat: Znikające InnoDB

Cześć,

A przypadkiem w my.cnf nie masz ustawionego skip-innodb ?
Adrian Z.

Adrian Z. IT Project Manager &
PHP Programmer

Temat: Znikające InnoDB

Marcin Baran:
Cześć,

A przypadkiem w my.cnf nie masz ustawionego skip-innodb ?
wyhashowane

nie rozumiem tego problemu bo założyłem sobie testowo nową bazę a w niej tabelę InnoDB i wszystko jest ok - jeden plik .frm który widać i działaAdrian Zdziechowicz edytował(a) ten post dnia 07.11.09 o godzinie 12:48
Jarosław Jóźwik

Jarosław Jóźwik Oracle DBA/Senior
Developer, Edinburgh
Napier University

Temat: Znikające InnoDB

Nie brakuje plików - masz plik a nie masz rekordu w słowniku, który byłby przypisany do tego pliku. Rekord ze słownika został wykasowany, jak - nie mam pojęcia. Nie znam się na mysql, być może jest jakaś komenda odbudowująca słownik na podstawie posiadanych plików. Jeśli nie - recovery jedynie.
Krzysztof Stachyra

Krzysztof Stachyra Szef Wydziału
Produkcji Systemów
Handlowo-Magazynowyc
h i ...

Temat: Znikające InnoDB

co robiłeś jako przeniesienie ? czy robiłeś backup restore ? czy przeniosłeś dane ? czy innodb jest w ibdata i iblogfile0 i iblogfile1 ?
czy masz zdefiniowane innodb_file_per_table podczas przenoszenia warto przenosić my.cnf / my.ini dlatego, że tam jest zapisana informacja o rozmiarach początkowych tych plików jeśli się coś zmieniło to sie te bazy rozjadą... być może właśnie i tak było u Ciebie
Adrian Z.

Adrian Z. IT Project Manager &
PHP Programmer

Temat: Znikające InnoDB

Krzysztof S.:
co robiłeś jako przeniesienie ? czy robiłeś backup restore ? czy przeniosłeś dane ? czy innodb jest w ibdata i iblogfile0 i iblogfile1 ?
Nie przenosiłem nic , jedynie po przeinstalowaniu systemu zrobiłem ln -s do katalogu z bazami danych tak jak to było wcześniej .
W tych trzech plikach nie mam nic odnoszącego się do tabel InnoDB , jest tam jedynie wpis do tabeli utworzonej teraz testowo .
czy masz zdefiniowane innodb_file_per_table podczas przenoszenia warto przenosić my.cnf / my.ini dlatego, że tam jest zapisana informacja o rozmiarach początkowych tych plików jeśli się coś zmieniło to sie te bazy rozjadą... być może właśnie i tak było u Ciebie
No to klapa bo o tych plikach nie pomyślałem .
Mirosław Kopiczko

Mirosław Kopiczko Inspektor w Wydziale
Technologii
Informatycznych UMS,
Pro...

Temat: Znikające InnoDB

W przypadku kiedy zmieniamy położenie baz a w wypadku przeinstalowania tak się dzieje, należy wcześniej zrobić backup baz. Bazy innoDb zostały zablokowane. Na stronie mysql w dokumentacji z tego co pamiętam są opisy jak odblokować innodb.
Odezwij się do mnie na priv to coś pomogę jak trzeba.

konto usunięte

Temat: Znikające InnoDB

Adrian Zdziechowicz:

Nie przenosiłem nic , jedynie po przeinstalowaniu systemu zrobiłem ln -s do katalogu z bazami danych tak jak to było wcześniej .
W tych trzech plikach nie mam nic odnoszącego się do tabel InnoDB , jest tam jedynie wpis do tabeli utworzonej teraz testowo .

Skasowałeś/nadpisałeś plik(i) zdefiniowane w innodb_data_file_path. Lub instalator bazy na Debianie to zrobił za Ciebie. W zależności od tego czy miałeś innodb_file_per_table czy nie, danych albo już nie ma albo nadal są w plikach .ibd, jednak z powodu usunięcia przestrzeni współdzielonej InnoDB poprostu ich nie widzi. W pierwszym przypadku poprostu odtwórz bazę z backupu. W drugim też, choć istnieje jakaś conajmniej teoretyczna możliwość odbudowania takiego InnoDB - mocno nietrywialna.

Jeszcze jedna możliwość jest taka, że my.cnf na Slackware i nowo zainstalowany my.cnf z Debiana definiują dwa zupełnie różne pliki w innodb_data_file_path (np. dawniej był "ibdata1" a teraz masz "ibdata"). Wówczas przy starcie InnoDB utworzyło sobie nowy, "pusty" plik, a co za tym idzie żadne stare tabele nie są widziane. Wystarczy sprawdzić katalog MySQL czy faktycznie są dwa takie pliki. Tutaj akurat rozwiązanie jest proste.

Maciek



Wyślij zaproszenie do