[mySQL] InnoDB - ibdata1 geeft toepassingsfout *

Pagina: 1
Acties:
  • 155 views sinds 30-01-2008
  • Reageer

  • YoupY
  • Registratie: Oktober 2002
  • Laatst online: 08-06-2024
Misschien dat iemand bekend is met dit probleem...

Sinds kort krijg ik bij het starten van mysql een leuk windows venstertje te zien met een toepassings fout. (null pointer exception van mysql te zien aan de geheugen adressen)

Na wat speurwerk ben ik erachter gekomen dat deze fout wordt verzoorzaakt door het volgende bestand : ibdata1

Ik heb geprobeerd een nieuwe install van mysql te maken, gaat zonder problemen verder, maar zodra ik de databases (files in de data dir) weer terug zet dan kom ik die toepassingfout weer tegen.

Met de originele bestanden die mysql (ibdata, logfiles enz...) aanmaakt draaien de databases weer, maar kan ik niet meer bij m'n InnoDB tabellen. phpmyadmin geeft dan aan dat ze in gebruik zijn :| Wanneer ik 1 van die tabellen ga openen dan geeft mysql fout 1016.

Ik heb er al wat mysql documentatie op nageslagen, maar kan tot op heden nog weinig vinden over dit probleem met innodb bestanden. Wat ik al geprobeerd heb is om een recovery te forcen door in my.ini bij [mysqld] hetvolgende op te nemen : innodb_force_recovery = 4 Volgens de documentatie zou ik hiermee op basis van de log bestanden de db weer moeten kunnen recoveren.

De laatste entry in het log van mysql is wanneer ik die toepassings fout krijg :
code:
1
2
3
4
5
6
7
8
9
10
11
12
040728 14:26:18  InnoDB: Database was not shut down normally.
InnoDB: Starting recovery from log files...
InnoDB: Starting log scan based on checkpoint at
InnoDB: log sequence number 0 12467873
InnoDB: Doing recovery: scanned up to log sequence number 0 12467873
040728 14:26:18  InnoDB: Flushing modified pages from the buffer pool...
040728 14:26:18  InnoDB: Started
MySql: ready for connections.
Version: '4.0.20a-nt'  socket: ''  port: 3306
040728 14:26:54  InnoDB: Started
MySql: ready for connections.
Version: '4.0.20a-nt'  socket: ''  port: 3306


Wanneer ik met een nieuw ibdata1 bestand begin en de tabel in gebruik is wordt er hetvolgende in het error log gedumpt:

code:
1
2
3
4
5
6
7
8
040728 14:27:05  InnoDB error:
Cannot find table ministry/contests_banlist 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?
Look from section 15.1 of http://www.innodb.com/ibman.html
how you can resolve the problem.


Dat paragraafje 15.1 linkt hiernaar door : http://dev.mysql.com/doc/...bleshooting_datadict.html

Waarvan het volgende stukje van belang is :
Another symptom of an out-of-sync data dictionary is that MySQL prints an error that it cannot open an `.InnoDB' file:

ERROR 1016: Can't open file: 'child2.InnoDB'. (errno: 1)

In the error log you will find a message like this:

InnoDB: Cannot find table test/child2 from the internal data dictionary
InnoDB: of InnoDB though the .frm file for the table exists. Maybe you
InnoDB: have deleted and recreated InnoDB data files but have forgotten
InnoDB: to delete the corresponding .frm files of InnoDB tables?

This means that there is an orphaned `.frm' file without a corresponding table inside InnoDB. You can drop the orphaned `.frm' file by deleting it manually.
Ik zou dus m'n frm file weg moeten donderden zegt ie, maar dat verwijderd meteen de tabel, terwijl ik juist m'n data terug wil krijgen.

Wat is dus zou willen is op 1 of andere manier m'n oude ibdata1 bestand weer zien te gebruiken (degene die nu dus een toepassingsfout geeft), maar hoe die te fixen heb ik nog niets over gevonden...

Mijn vraag is dus : Hoe krijg ik m'n data weer tevoorschijn getoverd

offtopic:
Ergens een keer te vroeg op enter geramd. topic was er al voordat de startpost klaar was :X

[ Voor 82% gewijzigd door YoupY op 28-07-2004 15:04 ]


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

In overleg en op verzoek schuif ik deze door naar PW in de hoop dat er daar meer mensen zitten die eventueel ervaringen hebben met dit soort problemen. Ik had zelf ook al een tijd zitten Googlen; maar er is eigenlijk erg weinig over te vinden.

Ik pas je topictitel nog even aan om het wat duidelijker te maken :)

[mysql] Toepassingfout > [mySQL] InnoDB - ibdata1 geeft toepassingsfout *
SA > PW

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • YoupY
  • Registratie: Oktober 2002
  • Laatst online: 08-06-2024
offtopic:
Thanx _/-\o_

  • YoupY
  • Registratie: Oktober 2002
  • Laatst online: 08-06-2024
^^ Schop ^^

  • YoupY
  • Registratie: Oktober 2002
  • Laatst online: 08-06-2024
De laatste poging dan maar. Als iemand enig id heeft, theorien ideeen of whatever, ik ben happy met alles wat me kan helpen.

Ik loop nu al 4 dagen deze draad omhoog te trappen, maar nog erg weinig resultaat tot nu toe :'(

  • Shadowman
  • Registratie: Januari 2002
  • Niet online
Je kunt die file ipv weg te gooien ook ff ergens anders neerzetten.

Ff nog gekeken wat die foutmelding inhoud, maar het lijkt erop dat je tabel incl inhoud al weg is uitgezondert die .frm-file.

http://www.google.nl/sear...ing+it+manually.%22&hl=nl

^ hier ff linkje van mysql-doc met die error (in cache van google aangezien anders een 404 :P)

  • igmar
  • Registratie: April 2000
  • Laatst online: 12-05 15:46

igmar

ISO20022

Wat zegt een mysqlcheck -c --all-databases ? De database moet dan wel draaien (lees : geen null-pointer exceptions ed). Indien de data geen bedrijfsgeheimen bevat kun je 'm eens proberen online te zetten, d'r lopen hier vast wel een aantal mensen rond met BDB recovery tools :)

  • YoupY
  • Registratie: Oktober 2002
  • Laatst online: 08-06-2024
Shadowman schreef op 01 augustus 2004 @ 21:43:
Je kunt die file ipv weg te gooien ook ff ergens anders neerzetten.

Ff nog gekeken wat die foutmelding inhoud, maar het lijkt erop dat je tabel incl inhoud al weg is uitgezondert die .frm-file.

http://www.google.nl/sear...ing+it+manually.%22&hl=nl

^ hier ff linkje van mysql-doc met die error (in cache van google aangezien anders een 404 :P)
Die link die je geeft beschrijft precies hetzelfde als de mysql pagina. De data zit geloof ik opgeslagen in dat ibdata bestand, samen met alle data. Ik geloof dat de frm file alleen de beschrijving bevat.
M'n oude ibdata1 bestand is in ieder geval 18 MB en de originele maar 10 MB, dus er moet nog wel ergens een berg data zitten ;)

Alleen moet dan wel ff die ibdata1 file niet die null pointer exeption opleveren.
igmar schreef op 01 augustus 2004 @ 23:15:
Wat zegt een mysqlcheck -c --all-databases ? De database moet dan wel draaien (lees : geen null-pointer exceptions ed). Indien de data geen bedrijfsgeheimen bevat kun je 'm eens proberen online te zetten, d'r lopen hier vast wel een aantal mensen rond met BDB recovery tools :)
MySql start alleen wanneer ik de originele ibdata file gebruik. mysqlcheck heeft ook weinig zin verder. Die controleert voornamelijk de myisam tabellen, maar geeft geen info weer over de innodb tabellen.

Ik ga deze file niet online gooien, maar neem even contact op als je een id hebt en er valt wel wat te regelen. Als je verder een recovery tooltje kent laat maar weten. Heb al gegoogled op innodb / ibdata1 en recovery, maar dat leverde nog geen bruikbare tooltjes op om de db te fixen :(
Pagina: 1