Vraag


Acties:
  • 0 Henk 'm!

  • Thijsmans
  • Registratie: Juli 2001
  • Nu online

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Topicstarter
Door een softwareupdate is mijn VPS defect geraakt (Debian 9). Mijn webhost heeft een oude standaard image over de server heen gezet, omdat er systeembestanden ontbraken. Daarmee startte de VPS weer op en kon ik wat bestanden veiligstellen, waaronder de .ibd en .frm-bestanden van mijn MariaDB database (mariadb 10.1).

Nu heb ik helaas niet het bestand ibdata1 veiliggesteld; ik wist niet dat deze ook relevant was. Als ik het goed begrijp, wordt in dat bestand data over de tabellen in de onderliggende databases bijgehouden. Na enig zoekwerk blijkt dit niet zeer cruciaal te zijn. Ik heb een actuele structuur-export van de database, dus ik kon deze truc uithalen:

- nieuwe, blanco database maken;
- CREATE-query's draaien;
- de table-spaces verwijderen met "ALTER TABLE filename DISCARD TABLESPACE";
- de oude .ibd-bestanden in de data-map plaatsen;
- de table-spaces importeren met "ALTER TABLE finename IMPORT TABLESPACE";

Zo heb ik 19 van de 20 tabellen zonder moeite weer werkend gekregen. Maar één tabel weigert dienst. En dat is helaas de meest cruciale van allemaal.

Bij het importeren van de tablespace krijg ik de volgende foutmelding:
#1034 - Verkeerde zoeksleutel file voor tabel: 'b_ebooks'; probeer het te repareren
Mariadb draait in een docker-container. De logs van de container vermelden:

code:
1
2
2020-07-26 12:24:37 139683723880192 [Warning] InnoDB: ./boogsy_nl/b_ebooks.ibd: Page 11072 at offset 181403648 looks corrupted.,
2020-07-26 12:24:37 139683723880192 [Note] InnoDB: Discarding tablespace of table "boogsy_nl"."b_ebooks": Data structure corruption


Geweldig: een corrupte page. Hier eindigt mijn kennis van databases...

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
root@...:/var/lib/mysql/boogsy_nl# innochecksum -v b_ebooks.ibd

Variables (--variable-name=value)
and boolean options {FALSE|TRUE}  Value (after reading options)
--------------------------------- ----------------------------------------
verbose                           TRUE
count                             FALSE
start-page                        0
end-page                          0
page                              0
strict-check                      crc32
no-check                          FALSE
allow-mismatches                  0
write                             crc32
page-type-summary                 FALSE
page-type-dump                    (No default value)
per-page-details                  FALSE
log                               (No default value)
leaf                              FALSE
merge                             0
Fail: page::11085 invalid
Exceeded the maximum allowed checksum mismatch count::1 current::0


Dat bevestigt eigenlijk alleen maar wat al bekend was uit de docker-log.

Bij deze stackexchange wordt voor het repareren of repliceren van de data verwezen naar undrop-for-innodb. De online dienst bestaat al ruim twee jaar niet meer, de ontwikkelaar wil er niets meer mee te maken hebben en de tool is ook nooit goed gedocumenteerd. Daar raak ik dus ook niet wijzer van...

* Thijsmans staat op het punt om de handdoek in de ring te gooien.

Of heeft iemand nog een idee om de tabel te recoveren?

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.

Alle reacties


Acties:
  • 0 Henk 'm!

  • MainframeX
  • Registratie: September 2017
  • Laatst online: 14:50
Heb je geen backups?

Idempotent.


Acties:
  • 0 Henk 'm!

  • Thijsmans
  • Registratie: Juli 2001
  • Nu online

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Topicstarter
Nee :)

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


Acties:
  • 0 Henk 'm!

  • BCC
  • Registratie: Juli 2000
  • Laatst online: 12:31

BCC

Heeft je hoster geen backups op tape?

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


Acties:
  • 0 Henk 'm!

  • AW_Bos
  • Registratie: April 2002
  • Laatst online: 15:04

AW_Bos

Liefhebber van nostalgie... 🕰️

Ik neem aan dat je hosting wel backups maakt, al is het een snapshot van een paar dagen geleden, waar mogelijk en hopelijk de data in zit. Anders vrees ik het ergste. Backuppen is gewoon echt van groot belang.
En dan bij voorkeur naar een apart netwerk.

.ibd en .frm bestanden zijn ook zeker niet bedoeld om te backuppen. Je zou altijd een dump moeten maken via mysqldump. Deze kan je altijd weer importeren. Een .ibd en .frm is niet bedoeld om uit te wisselen tussen verschillende versies.

De undrop-for-innodb staat gewoon in de GitHub repo.
En als websites niet meer werken, dan stap je toch in de 'web timemachine'?

https://web.archive.org/w...r-corrupt-mysql-database/

Lang leve Archive.org, mits het geïndexeerd is. :)

[ Voor 53% gewijzigd door AW_Bos op 08-08-2020 12:40 ]

Telecommunicatie van vroeger
🚅Alles over spoor en treintjes


Acties:
  • 0 Henk 'm!

  • Thijsmans
  • Registratie: Juli 2001
  • Nu online

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Topicstarter
Ik heb de vraag naar tape-backups zojuist bij mijn host neergelegd, maar gezien ik een knaken-unmanaged-vps gebruik vraag ik me af of dit onder de SLA valt :+ Anderzijds: zij hebben besloten tot de kernelupgrade die dit probleem heeft veroorzaakt.

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


Acties:
  • 0 Henk 'm!

  • Thijsmans
  • Registratie: Juli 2001
  • Nu online

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Topicstarter
Helaas: geen (tape-)backup door de hoster. We zullen het dus met het corrupte ibd-bestand moeten doen. Iemand enig idee of daar nog iets mee kan?

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


Acties:
  • +1 Henk 'm!

  • EvH
  • Registratie: Juli 2014
  • Laatst online: 13:51

EvH

Thijsmans schreef op zaterdag 8 augustus 2020 @ 20:46:
Helaas: geen (tape-)backup door de hoster.
Hoster en geen backup? Wegwezen daar.

Acties:
  • 0 Henk 'm!

  • pennywiser
  • Registratie: November 2002
  • Laatst online: 13:17
Kan je hier wat mee?

https://www.nullalo.com/e...les-without-ibdata1-file/

Zelf misschien al gevonden.

Werkt alleen als je file_per_table aan had staan, dus data verspreid over meerdere files had.

Kijk even in my.cnf

[ Voor 31% gewijzigd door pennywiser op 09-08-2020 10:55 ]


Acties:
  • +1 Henk 'm!

  • pennywiser
  • Registratie: November 2002
  • Laatst online: 13:17
AW_Bos schreef op zaterdag 8 augustus 2020 @ 12:31:

En als websites niet meer werken, dan stap je toch in de 'web timemachine'?

https://web.archive.org/w...r-corrupt-mysql-database/

Lang leve Archive.org, mits het geïndexeerd is. :)
Zo heb ik ook al weleens data teruggehaald haha :)

Jouw site is ook geïndexeerd: https://web.archive.org/web/*/boogsy.nl

Mogelijk kan je hiermee met het handje klik en plakwerk je tabel herstellen.

Maak vanaf nu dagelijks meerdere backups (mysqldump).

Ik vind het niet normaal dat een hoster een kernel upgrade zelfstandig erdoor trapt. Ligt ook aan je type vps, maar volgens mij heb je iets anders nodig. Een AWS ec2 instance misschien? Ik denk net zo duur als nu, maar stukje flexibeler. Eerste jaar free-tier, misschien heb je daar genoeg aan zelfs.

Ik vond hier ook nog wat: YouTube: Recover database myql innodb with frm and idb, without file ibdata1,...

[ Voor 52% gewijzigd door pennywiser op 09-08-2020 11:42 ]


Acties:
  • 0 Henk 'm!

  • Thijsmans
  • Registratie: Juli 2001
  • Nu online

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Topicstarter
EvH schreef op zondag 9 augustus 2020 @ 10:48:
[...]
Hoster en geen backup? Wegwezen daar.
Mijn hoster staat niet ter discussie, maar bedankt voor de overweging.
Offtopic: het is mijn keuze om een unmanaged VPS af te nemen, waarbij de hoster erop heeft gewezen dat alleen de managed VPS'en worden gebackupt. Ik had dit zelf moeten regelen.

@pennywiser: de methode die je linkt, heb ik kunnen toepassen op 19 van de 20 tabellen. Het gaat nu nog slechts om de laatste, corrupte tabel. Overigens valt de data niet te scrapen van Webarchive: los van het aantal geindexeerde pagina's (< 81.000) is niet de zichtbare informatie, maar de interne informatie het kostbaarst :)

@AW_Bos: dank voor de tip, had ik niet aan gedacht :) Ik ga kijken of ik hier iets mee kan.

[ Voor 12% gewijzigd door Thijsmans op 09-08-2020 13:11 ]

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


Acties:
  • 0 Henk 'm!

  • MainframeX
  • Registratie: September 2017
  • Laatst online: 14:50
:)

Heb je al eens een mysqlcheck -A geprobeerd? Dan wordt de table opnieuw gebouwd en gaat ie hopelijk ook weer e.e.a. in de nieuwe ibdata vastleggen/bijhouden.

Idempotent.

Pagina: 1