BigDump SQL backup feltöltéséhez

Amikor saját gépedről szeretnéd visszatölteni az előzőleg lementett SQL fájlodat, adódhatnak kisebb problémák az 1MB (esetleg 2MB) feletti méret esetében. A legtöbb szolgáltató esetében van egy bizonyos fájlméret korlátozás, mikor nem tudsz XY méretnél nagyobb fájlt feltölteni, illetve a PHP-nak is van egy max. futási ideje.

A “Biztonsági mentés phpMyAdmin-nal” c. tutorial kapcsán már szóba került, hogy nagyobb SQL fájlokat fel is lehet darabolni kisebb egységekre (rfsplitter, Make Chunks), ez a script tulajdonképpen egy újabb megoldással szolgál.

A scriptről

honlapja: http://www.ozerov.de/bigdump.php
Big Dump ver. 0.19b (beta) (6,0 KB ZIP-Archive)
letöltés: http://www.ozerov.de/bigdump.zip

Amire szükséged lesz

  1. a fenti linkről letöltött bigdump.php scriptre
  2. az adatbázisodra (*.sql), melyet remélhetőleg phpMyAdmin-nal mentettél el (akár tömörítve is, GZip formátumban). Tömörítetlen mentés esetében a fájlod neve pl. dump.sql lesz, GZip-es tömörítés esetében viszont dump.gz.gzip, melyet csak a PHP csak a 4.3.0-tól támogat.
    megjegyzés: a tényleg nagy fájlok esetében nem biztos, hogy szerencsés lesz a gzip tömörítést választani, mert a scriptnek minden egyes session start esetében ki kell bontani a fájlt, ami akár hibát is okozhat.
  3. hozzáférés (cím/név/jelszó) a My SQL? adatbázishoz
  4. hozzáférés a szerverhez FTP-n keresztül, hogy feltöltsd az sql fájlodat. Ez az szerver természetesen ugyanaz, mint amelyiken az SQL is van, és kapcsolatban is kell lennie (tehát az SQL elérhető a szerveren lévő fájlok számára, pl. localhost címen).
  5. valamilyen szövegszerkesztő/texteditor program, mellyel módosíthatod a bigdump.php script tartalmát
  6. FTP kliens programra, mellyel feltöltheted az sql mentésedet a szerverre

Beállítások
A scriptet megnyitva a texteditor programban az alábbi részt kell megkeresned (69.-82. sor). A sorok végén a magyar szöveget már én írtam be, az alapján kell majd neked is kitöltened a megfelelő adatokkal.

// Database configuration
$db_server = "localhost"; // az SQL szerver elérési útvonala, általában localhost.
$db_name = ""; // az SQL adatbázis neve
$db_username = ""; // az SQL hozzáférés név+jelszavából a név
$db_password = ""; // az SQL hozzáférés név+jelszavából a jelszó
// Other Settings
$filename = ""; // ide beírhatod az FTP-n feltöltött SQL fájlod nevét (nem kötelező, de ajánlott)
$linespersession = 3000; // az egy 1 import session alatt feldolgozott sorok száma, nem módosítsd
$delaypersession = 0; // minden egyes session után be lehet iktatni egy kis várakozást, de alapesetben ez az érték 0 (nem szoktam módosítani). Felhasználói részről engedélyezni kell a javascriptek futását. Célja, hogy a szerver terhelését csökkentsd.

Használat

  1. Ha kitöltötted/konfiguráltad a bigdump.php scriptet megfelelő módon, töltsd fel FTP-n az SQL fájloddal együtt egy közös könyvtárba
  2. Ha az SQL mentésed nem tartalmazza a “DROP TABLE”, akkor figyelj arra is hogy előtte phpmyadmin-on keresztül takarítsd ki az ott lévő – felülírásra szánt – tartalmat.
  3. A böngőszőprogramodba nyisd meg a feltöltött bigdump.php fájlt, pl. http://www.domainneved.hu/konyvtar/bigdump.php
  4. Ha a scriptbe beírtad az importálandó SQL fájl nevét, akkor egyből rá lehet kattintani az ott lévő szövegre («Start Import from …»)
  5. Innentől kezdve a bigdump.php folyamatosan dolgozik addig, amíg csak kész nem lesz. Ha a böngősződben engedélyezted a javascriptek futtatását, magától újra fog indulni minden session elején, és feltölti 3000 soronként az SQL fájlodat.
  6. Amint kész vagy és minden felért (észre fogod venni, mert zöld színű szöveggel kiírja a lapra), töröld le FTP-n keresztül a bigdump.php fájlodat, illetve ha már nincs rá szükséged, akkor az SQL fájlodat is.

Figyelem: a Big Dump nem fog megfelelően lefutni, ha az SQL fájlban túl nagy táblák szerepelnek kiterjesztett beszúrásként (extended insert). Ennek oka, hogy az “extended”-ben az egész tábla egy “insert”-ben van, így így a Big Dump sem tudja részekre szétvágni.
Hogy ezt elkerüld, a phpMyAdmin-ban az exportálás során kapcsold ki az “extended inserts” opciót.

Gyakran Ismétlődő Kérdések

Kérdés: ezt a hibát kapom: “My SQL?: Table ‘some_tbl_name’ already exists”. Miért?
Válasz: mert az SQL fájlod nem tartalmaz DROP kéréseket (query), így a már fent lévő tartalmat nem tudja felülírni az újjal az import alatt. Hatsd végre a Használat / 2. lépést.

Kérdés: Ezt az üzenetet kaptam: “Fatal error: Allowed memory size of xxx bytes exhausted” vagy ezt “My SQL? server has gone away”.
Válasz: az SQL fájlod valószínűleg “extended inserts”-t (kiterjesztett beillesztés) tartalmaz. Exportáláskor a phpMyAdmin-ban kapcsold ki ezt a funkciót.

Kérdés: Miért okoz a bigdump.php furcsa SQL hibákat, ha a Windows PC-n futtatom localhost-on keresztül?
Válasz: ez szvsz. egy hiba a PHP 4.3.x-ben, mely a bigdump hibás működését eredményezi Windows környezetben abban az esetben, ha az SQL fájlod DOS-os sortöréseket tartalmaz. Próbáld meg, hogy egy texteditorral konvertáld UNIX-os formátumra, valószínűleg működni fog.

Kérdés: Használhatok olyan SQL mentéseket is, melyet nem phpMyAdmin-nal készítettem?
Válasz: Elvileg bármilyen SQL fájlt használhatsz, de csak saját felelősségedre. Ajánlom a phpMyAdmin-t inkább… :)

Kérdés: Miért kell kitölteni a bigdump.php fájlban az adatokat feltöltés előtt, miért nem lehet ezeket megadni a böngészőn keresztül?
Válasz: Mivel biztonság szempontjából nem tartom megfelelő megoldásnak, hogy az adatokat pl. le kellene menteni pl. cookie-kba, hogy a session-k közötti váltáskor nem kérdezze meg újra és újra.

1 hozzászólás

HOZZÁSZÓLOK A CIKKHEZ

Kérjük, írja be véleményét!
írja be ide nevét