Elveszett MySQL adatbázis újraépítése
2009-08-28T11:05:31+02:00
2009-08-29T11:39:40+02:00
2022-07-25T11:31:16+02:00
  • Én 'üres struktúrából' indulnék ki, és a mysql hibaüzeneteit próbálnám valahogy feldolgozni. Az viszonylag egyszerű támpontokat ad, hogy milyen tábla, vagy milyen mező lenne szükséges, ami nem létezik, és akkor az létrehozható.

    Nekem sem kellett még ilyet sosem csinálnom, de azért azt látom, hogy pl. a mezők típusai bizonyosan elvesznek, bármilyen módszerrel kísérelnénk meg helyreállítani az adatstruktúrát a kódból. A mezők típusai ugyanis onnan nem látszódnak. Tehát midnenképpen szükség lesz emberi munkára még az adatstruktúra kódból való 'helyreállítása' után is.
    Mutasd a teljes hozzászólást!
  • Ezt még néhány ingyenes is tudja.. (pl. extra.hu). Az a titka, hogy a wwwroot-on kívül kell keresgélni.
    Mutasd a teljes hozzászólást!
  • és az sem biztos, hogy felsorolják egy insert esetén a mezőneveket. HA fizetős tárhelyről van szó,
    biztonsági mentésből helyreállítás szokott lenni.
    Mutasd a teljes hozzászólást!
  • Ez természetesen nagyon vázlatos


    viszonylag egyszerű



    Nem mélyültem bele a kérdésbe. Ha az én feladatom lenne megcsinálni, akkor belemélyülnék. Voltaképpen nem bonyolult visszaállítani, csak sok meló van vele. Ezért jobb a prevenció.
    Mutasd a teljes hozzászólást!
  • Aha. És mi a helyzet a sunselectekkel, táblák helyén szereplő subselect-ekkel, fügvényekkel, netán csak where, group by, having részekben szereplő dolgokkal...
    Mutasd a teljes hozzászólást!
  • Igazából rengeteg megoldással ki lehet ezt küszöbölni. Adatbázismentés, a struktúra kimásolása, db install fájl megőrzése stb..
    Ha már megtörtént az elvesztés, és nincs mentés, akkor viszont csak hosszas munkával lehet kibogarászni a táblák neveit és a mezőket, a mezők jellemzőit meg sehogy.

    Ilyen program létezéséről nem tudok, de viszonylag egyszerű algoritmusa van.
    -forráskód beolvasása
    -megkeresni a 'mysql_query("' és a következő '");' közé eső részeket, és eltárolni
    -megkeresni a 'FROM ' és a következő ' ' közé eső részeket - ezek a táblák nevei
    -ezeket eltárolni egy asszociatív tömbben (a létezőket természetesen nem kell még egyszer)
    -a 'SELECT ' és ' FROM', valamint "('" és "')" közé eső részt eltárolni a tömbben a megfelelő táblák neveihez hozzárendelve (kivéve, hogyha a SELECT és a FROM között csillag van vagy nincs semmi)
    -a tömb újonnan hozzárendelt elemeiből kiszűrni a ", " és "', '" elemeket, és mondjuk egy szóközre cserélni
    -kiszűrni a tömbből az ismétlődő mezőneveket egyazon táblánál

    Ezek után ha kiíratod a tömböt, megjelenik a tábla neve, mellette pedig a hozzá tartozó mezők nevei. Ez természetesen nagyon vázlatos, de én valahogy így oldanám meg. Akár PHP-vel is megoldható.
    Mutasd a teljes hozzászólást!
  • Elveszett egy soktáblás adatbázis, és újra kéne építeni a struktúráját a PHP kód alapján, sajnos egy elég nagy projektről van szó, sok adatbázist használó osztállyal.

    Létezik erre valamiféle automatizáció, akár részleges is, vagy program?
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd