Portál AbcLinuxu, 1. června 2024 11:52


Dotaz: Oprava tabulky mysql frm ibd

1.4.2022 11:29 donjirka | skóre: 1
Oprava tabulky mysql frm ibd
Přečteno: 1131×
Odpovědět | Admin
Ahoj, potřeboval bych poradit jak opravit poškozenou mysql (mariaDB) tabulku z Joomla. Zkoušel jsem opravu pomocí mysql nástrojů/příkazů, ale ty hlásí, že tabulka neexistuje. Pokud použiji dump databáze a začne se s vylitím zmíněné tabulky, skončí na chyběcněkde v 2/3 tabulky. Vím, že tabulka opravit určitě půjde, protože jsem použil placený program StellarRepairforMySQL, kteý to opravit dokáže a data jsou opravdu čitelná, nicméně vykopírování stojí poměrně dost. Nevíte o nějakém nástroji, kterým by šla tabulka opravit?

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Max avatar 1.4.2022 11:46 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Oprava tabulky mysql frm ibd
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co tak sem spíše hodit info o chybách, co ti to píše a co všechno jsi zkoušel?
Já jsem vždy opravu dokázal udělat běžnými nástroji databáze. V nejhorších případech u innodb pak exportem a importem.
Zdar Max
Měl jsem sen ... :(
1.4.2022 12:38 donjirka | skóre: 1
Rozbalit Rozbalit vše Re: Oprava tabulky mysql frm ibd
Díky, za reakci. Zkoušel jsem: https://stackoverflow.com/questions/61727167/import-ibd-files-into-mysql-server
MariaDB [test]> repair table d471k_content;

+--------------------+--------+----------+----------------------------------------------------+
| Table              | Op     | Msg_type | Msg_text                                           |
+--------------------+--------+----------+----------------------------------------------------+
| test.d471k_content | repair | Error    | Table 'test.d471k_content' doesn't exist in engine |
| test.d471k_content | repair | status   | Operation failed                                   |
+--------------------+--------+----------+----------------------------------------------------+

2 rows in set (0.000 sec)

MariaDB [test]> ALTER TABLE d471k_content IMPORT TABLESPACE
ERROR 1813 (HY000): Tablespace for table 'test/d471k_content' exists. Please DISCARD the tablespace before IMPORT

MariaDB [test]> ALTER TABLE d471k_content DISCARD TABLESPACE;
Query OK, 0 rows affected (0.013 sec)

MariaDB [test]> ALTER TABLE d471k_content IMPORT TABLESPACE;
ERROR 1815 (HY000): Internal error: Drop all secondary indexes before importing table test/d471k_content when .cfg file is missing.

mysqldump -u root --databases test > test.sql
mysqldump: Error 1814: Tablespace has been discarded for table `d471k_content_2` when dumping table `d471k_content_2` at row: 0

Ještě jesem vygooglil, že existuje program mysqlfrm --diagnostic ..\data\test\d471k_content_2.frm
Ale nevím jestli je ještě k dispozici pro MariaDB. (Do Centos7.9 se mi nepodařilo najít balík)

1.4.2022 21:20 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: Oprava tabulky mysql frm ibd
CentOS 7 má príkaz: yum whatprovides, ten možno poradí. Ale dáta sa zálohujú, aby človek nemusel riešiť rekonštrukciu v binárnej forme a nahodil to do prevádzky skôr.
3.4.2022 19:48 donjirka | skóre: 1
Rozbalit Rozbalit vše Re: Oprava tabulky mysql frm ibd
[root@vps ~]# yum whatprovides mysqlfrm Last metadata expiration check: 0:41:25 ago on Sun 03 Apr 2022 01:00:50 PM EDT. Error: No Matches found

Problém je v tom, že se jedná o zálohu ;-). Spíš by mě zajímalo jestli existuje něco zdarma jako StellarRepairforMySQL. Ten i další programy na opravu MySQL to dokázali, ta chyba tam nemůže být tak obří. Asi bude ustřižený konec souboru nebo tak něco, ale jak to rekonstruovat?
3.4.2022 20:05 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: Oprava tabulky mysql frm ibd
Príkaz mysqlfrm je v repozitári epel. Či je ale pre MariaDB, ...

Ohľadne StellarRepairforMySQL by som odporučil opýtať sa výrobcu.
3.4.2022 20:49 donjirka | skóre: 1
Rozbalit Rozbalit vše Re: Oprava tabulky mysql frm ibd
Díky, mrknu na to, používám RockyLinux (od doby co IBM zničilo Centos).
3.4.2022 21:08 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: Oprava tabulky mysql frm ibd
Pozrel by som si Rocky 7.9, kde to rastie?
Řešení 1× (donjirka (tazatel))
6.4.2022 10:54 donjirka | skóre: 1
Rozbalit Rozbalit vše Re: Oprava tabulky mysql frm ibd
Odpovědět | | Sbalit | Link | Blokovat | Admin

Čau, bylo to tak, jak jsem si myslel od začátku. Ten program Stellar není plno kouzel, ale jen přeskakuje chyby databáze a zobrazuje surová data. Povedlo se mi tabulku exportovat pomocí mysqldump. Nejdříve je potřeba změnit konfiguraci mysql v souboru my.ini (mysql začne přeskakovat chyby v databázi začal jsem na 1, ale nakonec to šlo až na nejvyšší stupeň 6)

[mysqld] innodb_force_recovery = 6

Následně použít mysqldump a tabulku exportovat

mysqldump --default-character-set=utf8 -u root web d471k_content --result-file=d471k_content.sql

Příkazy typu mysqlchcek použít nejdou protože nejsou kompatibilní s ImmoDB engine.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.