Reparera korrupta MySQL-tabeller!?

Permalänk

Reparera korrupta MySQL-tabeller!?

Hej på er!
Jag har en annan tråd gällande en kraschad RAID, men tänkte att det blir bättre att skapa en nt tråd kring nästa problem som har uppkommit.

Har lyckats att delvis/typ ta en backup av samtliga MySQL-databaser nu, men några tabeller i databaserna är korrupta.
Då jag inte är helt bekväm med att själv försöka mig på att reperare dessa, söker jag därför hjälp av någon som är mer kunnig/bekväm med detta.

Jag har alla fysiska filer från /var/lib/mysql/.
(FRM, MYD och MYI.)

Kan Swisha en hunka till den personen som lyckas att reparera/rädda de sex tabellerna snarast möjligt.

Permalänk
Medlem

När det inte går att få till reparation via klienterna(Jag kör mysqlcc) så är det konsolprogrammet myisamchk som gäller när jag fått motsvarande problem på skrivintensiva tabeller i samband med "oplanerade" avstängningar.

Tänk på att mitt fall så är det MyISAM tabeller. Kolla vad Du har för några innan Du går vidare. Och glöm inte att en säkerhetskopia(stäng tjänsten/demonen innan, skall dock inte ha någon påverkan i ditt fall) på filerna INNAN Du påbörjar processen.

Minns inte vart jag gömde "fusklappen" men Google gav mig detta och det verkar vara det jag körde:
https://dev.mysql.com/doc/mysql-backup-excerpt/5.7/en/myisam-...

Visa signatur

Grundregel för felsökning: Bryt och begränsa.

Permalänk

Tack för svaret!
Men jag vågar mig inte på detta själv.

(Har redan suttit med detta i flera dagar.)

Permalänk
Medlem

Då börjar vi med några frågor:

1. Vilken version utav MySQL servern kördes filerna på när allt fungerade?
2. Vilket operativsystem körde MySQL servern på när allt fungerade?
3. Var där någon känslig klartext information i filerna?
4. Hur stora är alla filer sammanlagt?
5. Om Du t.ex. kör maximal komprimering med ZIP, 7z, Bz m.fl. på dessa filer, hur stor blir filen som kommer ut?
6. Kan Du tänka dig att skicka filerna över Internet till en främmande person?

Punkt 5 är valbar(inget krav).

Visa signatur

Grundregel för felsökning: Bryt och begränsa.

Permalänk
Skrivet av Veni:

Då börjar vi med några frågor:

1. Vilken version utav MySQL servern kördes filerna på när allt fungerade?
2. Vilket operativsystem körde MySQL servern på när allt fungerade?
3. Var där någon känslig klartext information i filerna?
4. Hur stora är alla filer sammanlagt?
5. Om Du t.ex. kör maximal komprimering med ZIP, 7z, Bz m.fl. på dessa filer, hur stor blir filen som kommer ut?
6. Kan Du tänka dig att skicka filerna över Internet till en främmande person?

Punkt 5 är valbar(inget krav).

1. 10.3.22-MariaDB
2. Debian 10 eller 11 (lite osäker)
3. Eh, va!!? Om det finns någon känslig info? Nej, det ska inte finnas det.
4. Max 40 mb
5. se ovan - några procent
6. Jag kan absolut tänka mig att skicka över de berörda filerna till en främmande person. Så desperat är jag. Hahaha!

Det finns ju såklart en liiiten risk att även dessa fysiska filer kan vara helt eller delvis skadade efter hårddiskkraschen.
Men jag har som lyckats att återskapa 24 av totalt 29 tabeller i den berörda databasen, men det är något strul med 5 av dem.

Filerna är inte så stora i filstorlek, och det oroar mig lite.

Alla filer finns på min windowsdator just nu, så jag bara RAR för komprimering.
Går att skicka ganska stora filer via wetransfer.com.

Permalänk
Medlem

Så du har aldrig kört några backuper på dina databaser?
Har aldrig försökt återställa en trasig databas / tabeller eftersom jag alltid kört schemalagda backuber / cronjobs.

Men kan ju testa!

Visa signatur

[IT-Dept]
Ryzen 1700 OC - 32 - 1070

Permalänk
Skrivet av AllMessedUp:

Så du har aldrig kört några backuper på dina databaser?

Jo, klart att jag har tagit regelbundna backups av databaserna och så, men aldrig reparerat på detta sättet när man använder de fysiska filerna (MYI etc.)

Permalänk
Medlem
Skrivet av Guldstrand:

1. 10.3.22-MariaDB
2. Debian 10 eller 11 (lite osäker)
3. Eh, va!!? Om det finns någon känslig info? Nej, det ska inte finnas det.
4. Max 40 mb
5. se ovan - några procent
6. Jag kan absolut tänka mig att skicka över de berörda filerna till en främmande person. Så desperat är jag. Hahaha!

Det finns ju såklart en liiiten risk att även dessa fysiska filer kan vara helt eller delvis skadade efter hårddiskkraschen.
Men jag har som lyckats att återskapa 24 av totalt 29 tabeller i den berörda databasen, men det är något strul med 5 av dem.

Filerna är inte så stora i filstorlek, och det oroar mig lite.

Alla filer finns på min windowsdator just nu, så jag bara RAR för komprimering.
Går att skicka ganska stora filer via wetransfer.com.

MariaDB har jag inte meckat med. Har meckat med MySQL sedan år 2002 på Windows, Red Hat, CentOS, FreeBSD och OpenBSD. Men vad jag förstår så är det samma gäng som skapade MySQL och förfarandet skall vara exakt eller snarlikt.

RAR går bra.

Skriv vilka tabeller det är som kassa i en liten textfil och lägg den i RAR filen.

Kolla om WeTransfer har stöd utan mottagarens e-postadress.
Annars lägg dig själv på en alternativ e-postadress som mottagare.

Skicka sedan över en WeTransfer länk via PM, eller lägg den publikt om Du vill ha så många som möjligt som hjälper dig(först till kvarn vinner ).

Borde kunna börja kika på det om ett par timmar och ha ett svar innan morgon då jag har lite att göra just nu.

Vi håller tummarna på att där ens finns någon data i dom skadade filerna, specifikt i myd filerna men även frm. Om frm är totalt trasigt så kan man skapa nya frm filer förutsatt att Du kommer ihåg exakt hur dom skadade tabellerna såg ut.

En annan fråga:
Vad är det för typ av lösning som databasen användes till? Forum, ekonomi, support m.m. ? Egenutvecklat eller publikt? Om publikt, vad heter lösningen?

Visa signatur

Grundregel för felsökning: Bryt och begränsa.

Permalänk
Medlem
Skrivet av Guldstrand:

Jo, klart att jag har tagit regelbundna backups av databaserna och så, men aldrig reparerat på detta sättet när man använder de fysiska filerna (MYI etc.)

Hur gjordes säkerhetskopiorna?
Om Du bara körde filkopiering rakt av så har Du frm, myd och myi filerna någonstans, och dessa bör vara friska.
Eller körde Du via en schemaläggare som körde mysqlkonsolprogrammet?

Visa signatur

Grundregel för felsökning: Bryt och begränsa.

Permalänk
Skrivet av Veni:

Hur gjordes säkerhetskopiorna?
Om Du bara körde filkopiering rakt av så har Du frm, myd och myi filerna någonstans, och dessa bör vara friska.
Eller körde Du via en schemaläggare som körde mysqlkonsolprogrammet?

Det är just frm, myd och myi-filerna som jag tänkte skicka.
Allt annat är "korrupt" och går inte att använda.

Och det är ett egenutvecklat/custom project.
Jag skickar/bifogar bara frm, myd och myi-filerna till de tabellerna som jag behöver hjälp med att reparera.

https://we.tl/t-fQWcZJEvZK

Permalänk
Medlem

Har Du tabellstrukturen i huvudet(exakt som den skall vara) som Du kan lägga in i tråden för wf_ladder? För där finns hopp för den men strukturfilen(FRM) accepteras inte.

Annars verkar det bara vara wf_user_league som jag fått igång som verkar ha 367248 poster.

wf_season_score.MYD som är störst är tyvärr tom . Bara luft i den. Indexfilen till den verkar ha data men det är MYD filen som innehåller faktisk data.

Och övriga går inte att fixa med dom verktyg som jag känner till.

Visa signatur

Grundregel för felsökning: Bryt och begränsa.

Permalänk
Skrivet av Veni:

Har Du tabellstrukturen i huvudet(exakt som den skall vara) som Du kan lägga in i tråden för wf_ladder? För där finns hopp för den men strukturfilen(FRM) accepteras inte.

Annars verkar det bara vara wf_user_league som jag fått igång som verkar ha 367248 poster.

wf_season_score.MYD som är störst är tyvärr tom . Bara luft i den. Indexfilen till den verkar ha data men det är MYD filen som innehåller faktisk data.

Och övriga går inte att fixa med dom verktyg som jag känner till.

Ajdå, detta var både goda och dåliga nyheter.
Hårddisken är så pass skadad och även flera olika filer, men jag kan försöka kolla om det går att hämta något mer.

Skulle det gå att reparera/fixa till en korrupt .sql-databasfil då?
Ser ut som att något har hänt med den så att flera rader är dekodade, typ.

Jag är verkligen tacksam för all hjälp.

Strukturen:
https://pastebin.com/bhwKiE58

Permalänk
Medlem
Skrivet av Guldstrand:

Ajdå, detta var både goda och dåliga nyheter.
Hårddisken är så pass skadad och även flera olika filer, men jag kan försöka kolla om det går att hämta något mer.

Skulle det gå att reparera/fixa till en korrupt .sql-databasfil då?
Ser ut som att något har hänt med den så att flera rader är dekodade, typ.

Jag är verkligen tacksam för all hjälp.

SQL filer är lättare för ögat. Om dom innehåller binär data så kan man urskilja den enklare än att jobba med ögat mot MYD, MYI, FRM filer.

Så kan Du lägga upp dom så kikar jag på det med.

Skrivet av Guldstrand:

Din CREATE fungerade. Vet inte hur många rader som förväntades i den tabellen, men 91 rader syns hos mig.

Visa signatur

Grundregel för felsökning: Bryt och begränsa.

Permalänk
Skrivet av Veni:

SQL filer är lättare för ögat. Om dom innehåller binär data så kan man urskilja den enklare än att jobba med ögat mot MYD, MYI, FRM filer.

Så kan Du lägga upp dom så kikar jag på det med.

Din CREATE fungerade. Vet inte hur många rader som förväntades i den tabellen, men 91 rader syns hos mig.

Jag uppskattar verkligen all din tid du lägger ner på att hjälpa mig med detta.
Tyvärr är 91 rader på tok för lite data, det ska vara närmare 3 000 rader i den filen.

Det jag menade med att flera rader i sql-filen är "dekodade", är att det kan se ut såhär:
Ð>A%ंÐ^A˜5àäƒÐ~B
ƒùå ¾BhQ I'[ЪÂØW!L2†%ÒÃhk!¼.‡púCÈbAˆÒ#DH¢L=‰Q>'E‡¢lSŠÑV,Dˆµ"ÜE‹±./EÈÅ
¸¤Jç
ð… 0q¼Úé…0û0ƒå÷&q ­ë„Þ¢ð^\pp™PBfëÐi°«P_11'Q1Ñ;/ñA?pA±QQ3QCÑ[Up30Yp7±iQ_qP'ðïÐ0Yp9ðO½PüQ€OÎ(o"MBÊ&±³bßOb>òÂ-bB¡ÑÉÏWQ
]AðM»¤Æ0ë®2l8 cÑîÆ# LìP1‘ú3ÒK¯1êDò !Ylu #|À2²!²) Ò01ø2’r#r1!À"2C<029"rM$2+%RQ#òEÒE’G%Ò!O$]#2="R_$²a'Ò/(m'òY(rI!R;!r3u%r…'ò£(KË)Ò«%²y)ò_(Ò¥(2»'D0R¾ rÃ$’É*ҁ,R¡-R½)Œe-’Ï+’Ó'ÒÍ+—-rÅ.’Ñ)’å+ò·-rg&2 r+RîÇCG)R.Ò›&C3$s'r—#Rû)2S2R¯(òk/s7,ëË2qý&òÚ4³-3Ó#R{00Qÿ4sU1óY3ó?"Ã)0qé1SM5’6³[5y4o5s%6‡43dLó#1Sa7/4357sŸ'2±.ó.2³#3‰93…;S³;’8„×P{p9B®Tå-<¯üùQ“¯
‘¿°UsÝ‘m±}>óå>‘QQ‹=‰‰q>3í4@”2y$10$A3CV63pojoeSkEXyHe5Al.Wph7cadDG47DwOqR2nnfFd09sc5vTGy

Vill helst inte ge "alla" tillträde till sql-filen, då den innehåller ett medlemsregister.

Permalänk
Medlem
Skrivet av Guldstrand:

Jag uppskattar verkligen all din tid du lägger ner på att hjälpa mig med detta.
Tyvärr är 91 rader på tok för lite data, det ska vara närmare 3 000 rader i den filen.

Det jag menade med att flera rader i sql-filen är "dekodade", är att det kan se ut såhär:
Ð>A%ंÐ^A˜5àäƒÐ~B
ƒùå ¾BhQ I'[ЪÂØW!L2†%ÒÃhk!¼.‡púCÈbAˆÒ#DH¢L=‰Q>'E‡¢lSŠÑV,Dˆµ"ÜE‹±./EÈÅ
¸¤Jç
ð… 0q¼Úé…0û0ƒå÷&q ­ë„Þ¢ð^\pp™PBfëÐi°«P_11'Q1Ñ;/ñA?pA±QQ3QCÑ[Up30Yp7±iQ_qP'ðïÐ0Yp9ðO½PüQ€OÎ(o"MBÊ&±³bßOb>òÂ-bB¡ÑÉÏWQ
]AðM»¤Æ0ë®2l8 cÑîÆ# LìP1‘ú3ÒK¯1êDò !Ylu #|À2²!²) Ò01ø2’r#r1!À"2C<029"rM$2+%RQ#òEÒE’G%Ò!O$]#2="R_$²a'Ò/(m'òY(rI!R;!r3u%r…'ò£(KË)Ò«%²y)ò_(Ò¥(2»'D0R¾ rÃ$’É*ҁ,R¡-R½)Œe-’Ï+’Ó'ÒÍ+—-rÅ.’Ñ)’å+ò·-rg&2 r+RîÇCG)R.Ò›&C3$s'r—#Rû)2S2R¯(òk/s7,ëË2qý&òÚ4³-3Ó#R{00Qÿ4sU1óY3ó?"Ã)0qé1SM5’6³[5y4o5s%6‡43dLó#1Sa7/4357sŸ'2±.ó.2³#3‰93…;S³;’8„×P{p9B®Tå-<¯üùQ“¯
‘¿°UsÝ‘m±}>óå>‘QQ‹=‰‰q>3í4@”2y$10$A3CV63pojoeSkEXyHe5Al.Wph7cadDG47DwOqR2nnfFd09sc5vTGy

Vill helst inte ge "alla" tillträde till sql-filen, då den innehåller ett medlemsregister.

Om det är ett medlemsregister så är den filen felaktigt ihopsatt utav filsystemet, eftersom det borde vara läsbart. Här på forumet ser det ut som en binär BLOB.

Här är i alla fall resultatet:
https://we.tl/t-8qUGeBLS2w

Där finns även en SQL fil, vilket är det korrekta sättet att importera en säkerhetskopia. Om Du föredrar att lägga filerna direkt själv på rätt plats så finns dom även med i länken.

Visa signatur

Grundregel för felsökning: Bryt och begränsa.

Permalänk
Skrivet av Veni:

Om det är ett medlemsregister så är den filen felaktigt ihopsatt utav filsystemet, eftersom det borde vara läsbart. Här på forumet ser det ut som en binär BLOB.

Här är i alla fall resultatet:
https://we.tl/t-8qUGeBLS2w

Där finns även en SQL fil, vilket är det korrekta sättet att importera en säkerhetskopia. Om Du föredrar att lägga filerna direkt själv på rätt plats så finns dom även med i länken.

Det är just det jag har försökt att påpeka flera gånger. De flesta filerna har blivit korrupta/oläsliga efter hårddiskkraschen.
Så jag är ganska glad att jag har lyckats att rädda något.

Med andra ord går det inte att reparera själva sql-filen som har delvis binär BLOB-data?

Och jag vet såklart att SQL-filer är det korrekta sättet att importera backuper.
Men nu finns inte den möjligheten i detta fallet.

Permalänk
Medlem
Skrivet av Guldstrand:

Det är just det jag har försökt att påpeka flera gånger. De flesta filerna har blivit korrupta/oläsliga efter hårddiskkraschen.
Så jag är ganska glad att jag har lyckats att rädda något.

Med andra ord går det inte att reparera själva sql-filen som har delvis binär BLOB-data?

Hade Du någon BLOB i någon tabell som Du inte skickat över?

Om ja, då kan man prova sig på dom på samma vis som jag gjorde med dom andra.

Om nej, så måste Du i så fall läsa på om det binära formatet för MYD filer. Och därefter antingen manuellt eller skriva ett program som letar efter markörer och plockar ut data och lägger dom på rätt ställe. Eller kolla om någon redan har byggt ett sådant program och i så fall prova det.

När filsystemet är hackat och malet så blir det väldigt manuellt.

Skrivet av Guldstrand:

Och jag vet såklart att SQL-filer är det korrekta sättet att importera backuper.
Men nu finns inte den möjligheten i detta fallet.

Det var innehållet i länken som jag lämnade instruktioner för. Den SQL fil som finns i ZIP-filen i länken skall gå att importera. Den länken innehåller vad jag har kunnat få ihop med det Du hade i din länk.

Visa signatur

Grundregel för felsökning: Bryt och begränsa.

Permalänk
Skrivet av Veni:

Hade Du någon BLOB i någon tabell som Du inte skickat över?
Om nej, så måste Du i så fall läsa på om det binära formatet för MYD filer. Och därefter antingen manuellt eller skriva ett program som letar efter markörer och plockar ut data och lägger dom på rätt ställe. Eller kolla om någon redan har byggt ett sådant program och i så fall prova det.

BLOB:en finns bara i själva sql-backupen, inte i någon av MYD-filerna.

Permalänk
Medlem

Om Du inte hade något BLOB fält i tabellerna så är det Du visat ifrån SQL filen inte data i ett BLOB fält, utan helt enkelt binär information som filsystemet ser på den platsen där det borde finnas troligtvis klar-text-data. Detta är i så fall ett typiskt tecken på ett filsystem som pekar till platser där det inte riktigt är den data man förväntar sig, ett trasslat filsystem.

Visa signatur

Grundregel för felsökning: Bryt och begränsa.

Permalänk
Skrivet av Veni:

Om Du inte hade något BLOB fält i tabellerna så är det Du visat ifrån SQL filen inte data i ett BLOB fält, utan helt enkelt binär information som filsystemet ser på den platsen där det borde finnas troligtvis klar-text-data. Detta är i så fall ett typiskt tecken på ett filsystem som pekar till platser där det inte riktigt är den data man förväntar sig, ett trasslat filsystem.

Ja, precis.
Så med andra ord går det inte att reparera just sql-filen?

Permalänk
Medlem
Skrivet av Guldstrand:

Ja, precis.
Så med andra ord går det inte att reparera just sql-filen?

Om Du kan med egna ögon se data som borde vara där så kan man försöka "klippa" ut delar ifrån den som inte skall vara där och få ihop den för hand, eftersom själva strukturen i en SQL fil är ren klar-text medan datan kan variera mellan klartext och binär beroende på fälttyperna som fanns i tabellen.

Men om Du inte kan se med egna ögon data som borde vara där, så är den filen tyvärr körd.

Visa signatur

Grundregel för felsökning: Bryt och begränsa.

Permalänk
Skrivet av Veni:

Om Du kan med egna ögon se data som borde vara där så kan man försöka "klippa" ut delar ifrån den som inte skall vara där och få ihop den för hand, eftersom själva strukturen i en SQL fil är ren klar-text medan datan kan variera mellan klartext och binär beroende på fälttyperna som fanns i tabellen.

Men om Du inte kan se med egna ögon data som borde vara där, så är den filen tyvärr körd.

Ok, jag förstår.
Jag kan se viss data, men inte så mycket, sen kommer all BLOB.

Permalänk
Medlem
Skrivet av Guldstrand:

Ok, jag förstår.
Jag kan se viss data, men inte så mycket, sen kommer all BLOB.

Om det verkligen var en SQL fil som var tänkt som säkerhetskopia så kan man "klippa" ihop den för att försöka få tillgång till så mycket data som möjligt.

Bättre något än inget.

Om Du vill att jag skall kika på det så kan Du lägga upp den någonstans och skicka uppgifterna för att komma åt den via meddelandefunktionen här på SweClockers.

Visa signatur

Grundregel för felsökning: Bryt och begränsa.