Óriás mysql adatbázis mentése

Óriás mysql adatbázis mentése
2012-12-04T16:05:43+01:00
2013-01-24T19:05:41+01:00
2022-10-24T09:55:33+02:00
  • Sziasztok, ha jól értelmezem ezt a kavalkádot akkor egy egyszerű megoldást mondanék, a neve mysqldumper, ez az eszköz tutibiztos, a mysqldumper.net-ről letöltöd, s aztán fel ftp-n, vagy ha van a szerveren ahonnét menteni kell ssh, akkor oda mented egy wget paranccsal, unzip, aztán telepít..., de szerintem neked a legegyszerűbb az ha letöltöd magadnak, aztán feltöltöd a kicsomagolt állományt az ftp-dre, böngészőben megnyitod az install.php fájlját, telepíted, telepítéskor a menteni kívánt adatbázis adataid adod meg, ha kész tudsz menteni vele, rengeteg a lehetőség.
    Nézd át ezt a 2 oldalt ezzel kapcsolatban:
    mysqldumper.net
    http://web-neked.tk/2013/01/nagy-az-adatbazisod-es-nem-tudod-hasznal..

    Mutasd a teljes hozzászólást!
  • Nem vagyok én alapból ilyen..
    De amit az utóbbi időben itt tapasztaltam az ezt hozta ki belőlem sajnos. Igy utólag elismerem hogy túlreagáltam a dolgot.
    Aki valóban segíteni akart azzal nem is viselkedtem igy.

    Azért szögezzük le azt hogy egy percig sem vitatom, hogy van jónéhány hiányosságom ezen a téren, ezért is kértem segítséget.
    Elismerem és tiszteletben tartom én azoknak a tudását is akik nyilvánvalóan sokkal jobban értenek ehhez a témához.
    Én azt nem szeretem ha (ahogy itt is történt nem egyszer) elbeszélünk egymás mellett és ezért én vagyok a hulye.
    Arra alergiás vagyok.
    Ha nem érti mit szeretnék mondja azt .. nagyon szivesen leírom akár 3féleképp is.
    Ha félreért semmi gond válaszolok, hogy nem az a célom(ez is megtörtént itt) és erre is mi volt a válasz?
    Na nemlényeg mostmár..

    Látod te mit csináltál és az előttedlévők mit csináltak(akinek nem inge, ne vegye magára)?
    1.- Te normálisan érthetően és ami a lényeg nem sértő módon mondtad el a véleményedet.
    2.- Noha a véleményed egy negatív kritika volt nem álltál meg itt, irtál javaslatot a problémámra is.

    Ezzel igy ilyen formában nincs is bajom..
    Érdekes módon a te hozzászólásodban nem éreztem támadást, sem hogy le lettem volna hulyézve (magatartásügyileg le lettem, de azt megérdemeltem :) )
    Megértettem, köszönöm.

    A probléma azóta megoldódott.
    Mutasd a teljes hozzászólást!
  • Flame on:
    nézz már magadra ember, és próbáld valami más szemüvegen keresztül visszaolvasni, hogyan viselkedsz.

    kvázi mindenki segíteni próbál, de minden olyan megoldás, ami használható lenne, csak azért, mert nem értesz hozzá, és alapfogalmakkal, működésekkel nem vagy tisztában, olyan megoldást akarsz, ami copy/paste.
    Flame off

    most megmondom neked, hogy a mysqldump -nál jobb megoldás nincs, ha már egyszer azok írták, akik magát a mysql szervert.

    csinálsz egy config fájlt, amiben egy konstansban a szerver url-je alapján eldöntöd, hogy ez most dev vagy prod környezet.
    így az utvonalakkal sincs gond.

    a getcwd parancs megmondja neked, hogy hol állsz, de ahogyan előbbiekben írták, relatív utvonalat is tudsz neki adni.

    és szerintem változtass ezen a hozzáálláson, mert ezzel a mentalitással egy közösségben sem leszel vele túl népszerű.

    próbálj többet utánaolvansi, megérteni a miért/hogyan -okat, fektess bele egy kis energiát (mondjuk a php.ini változóinak megismerésére), és gondolkozz el azon, amit írnak neked, ne csípőből lövöldözz olyan támadásokra, amelyek nem léteznek.
    Mutasd a teljes hozzászólást!
  • oké

    bocs király
    akkor a továbbiakban kerüljük egymást légyszi

    köszi
    Mutasd a teljes hozzászólást!
  • Nálunk ez úgy van megoldva, hogy van egy.bat file. Abba mentjük el a mysql dump parancsot programból. Minden éjjel a windows feladtkezelője indítja el ezt a bat filet. (Minden èjjel 1:00) 02:00 kor ugyanilyen módszerrel lefuttatunk egy tömörítést majd 02:30 -kor goodsync progival ftp- re készítünk a dumpról még egy biztonsági másolatot. Így 2 fizikailag különböző helyen van az adatbázisokról biztonsági mentésünk.
    Mutasd a teljes hozzászólást!
  • azóta utánaolvastam helyesen gondoltam.. előtte , utána vagy helyette futtat mást.. lényegében engedélyezi vagy sem..


    Akkor olvass utána még1x, mert rosszul gondolod.

    tényleg ez a segítség? ráadásul egy moditól?


    Én tehetek arról, hogy nem tudod az olvasott szöveget értelmezni?

    de most a közösség felének az a célja hogy elüldözzék a másikat?
    rosszul értettem? azt hittem a célja az oldalnak többek közt az hogy segítsünk egymásnak..
    nem az hogy kvázi lehülyézzük az embereket mert nem értenek bennünket vagy egyet velünk..


    Hol hülyéztelek le kvázi? Ha én le akarok hülyézni valakit, akkor lehülyézem. Nem tettem. Ha meg szerinted az elüldözésnek számít, hogy leírtam, a lehető legrosszabb megoldást választottad a felsoroltak közül, akkor vállalom: elüldözöm az embereket innen!

    légyszíves érvelj és/vagy magyarázz


    Érveltem és magyaráztam is. Szövegértés láthatólag nem az erősséged, ahogy a gugli használata sem.

    cli is jó lett volna de mint mondtam ha nem muszáj nem mentem mindig az egészet


    Egyrészt ezt már jóval a cli téma bedobása után írtad le először,másrészt a cli használatának az égegyadta világon semmi köze sincs ahhoz, hogy teljes vagy inkrementális mentést végezel-e. Mindkettő megoldható egy php cli segítségével futtatott php szkript segítségével.

    sajnos a cli-ről nem találtam magyar leírást az angolnak nem értem a felét se sajnos (tudom ez azén gondom) példakódot pedig senki se adott (mintha fájna 5-10 sor kódot írni (nem hiszem h több kell az illusztrációhoz))


    Egyrészt eddig nem írtad le, hogy nem érted a php cli-vel kapcsolatban talált dokumentumokat, másrészt meg korlátozd le a gugli keresést a magyar oldalakra, egyből lesz magyar nyelvű példaprogram és leírás.
    Mutasd a teljes hozzászólást!
  • Lehet, hogy igazad van.

    Nem gondoltam végig a különböző megoldások hatékonyságát, mert nem ez volt a kérdés/cél szerintem.

    Anno egy hírgép rendszert csináltunk, ami elég tetemes adatbázis igényt támasztott.

    Ezt(is) tükrüztük több szerverre folyamatosan (nem online hot)backup céllal. Erre csináltuk ezt a mirror funkciót.

    Hangsúlyozom a cél az adatok többszörös duplikálása volt.
    A local query az SQL-eket mentette sorban.
    A remote kliensek leszedegették a logolt queryket és szépen végrhajtották magukon, majd a logolt queryket törölték a mirror után.

    Biztosan van ettől elegánsabb megoldás, de akkor 4 külön szerverre mirroroztuk a teljes webes tartalmat (fileok, db, email...), amik különböző képességekkel voltak ellátva, így nem jöhetett szóba egy-egy összedrótozott fast_dump.

    Amolyan para helyzetre megoldás... Ha kinyírják a szervert, van másik! és másik...és másik :)
    Mutasd a teljes hozzászólást!
  • Igazad van ezzel kapcsolatban, a trigger simán megoldja a log dolgot.

    Mikor ezt csináltam az volt a koncvepció, hogy mindennel én akartam megbírkózni, látni, szabályozni és nem akartam az sql motorra testálni ilyesmiket a könnyű költöztethetőség miatt.

    Tartottam egy esetleges félresikerülő migrációtól, ezért lett a saját query segéd funkciókkal.
    Mutasd a teljes hozzászólást!
  • Előbb olvass utána, aztán esküdözz bármire is!

    vs
    nem esküszöm meg rá


    azóta utánaolvastam helyesen gondoltam.. előtte , utána vagy helyette futtat mást.. lényegében engedélyezi vagy sem..
    tényleg ez a segítség? ráadásul egy moditól?

    de most a közösség felének az a célja hogy elüldözzék a másikat?
    rosszul értettem? azt hittem a célja az oldalnak többek közt az hogy segítsünk egymásnak..
    nem az hogy kvázi lehülyézzük az embereket mert nem értenek bennünket vagy egyet velünk..

    légyszíves érvelj és/vagy magyarázz..
    az nem segítség hogy: öreg hülyeséget választottál..

    mért?
    ha nem muszáj az egész adatbázist menteni és visszaállítani mindig, akkor mért ne lenne jó megoldás?

    cli is jó lett volna de mint mondtam ha nem muszáj nem mentem mindig az egészet.. egyrészt
    másrészt jóindulattal is alapfokon értek anolul..
    sajnos a cli-ről nem találtam magyar leírást az angolnak nem értem a felét se sajnos (tudom ez azén gondom) példakódot pedig senki se adott (mintha fájna 5-10 sor kódot írni (nem hiszem h több kell az illusztrációhoz)).

    Egyre gyakrabban és nagyobbat csalódok az oldalban..
    Azt hittem ez egy közösség nem horda.. :(
    Mutasd a teljes hozzászólást!
  • Előbb olvass utána, aztán esküdözz bármire is!

    A friss adatbázist meg nem logolással kapod meg. Több jó javaslatot is kaptál, de neked sikerült a kérdésed szempontjából a legrosszabb mellett letenned a voksod. Ha meg logolás kell neked mégis, akkor kapcsold be a mysql bináris logját. Még a mysql replikációs képességeit is bevetheted a célod érdekében.

    @Vargab: hangsúlyozottan ezen kérdés szempontjából a legrosszabb választás, mielőtt félreérted!
    Mutasd a teljes hozzászólást!
  • nem logolást akarok hanem friss adatbázist.. és ha ehhez logolás kell akkor logolok..
    az se mind1 hogy 10 percig fut a dámp vagy 3x-4x 30mp-ig a logok futtatása

    nem esküszöm meg rá de a trigger az nem egy ellenőrzőfüggvény? engedélyez vagy elvet egy-egy sql kérést.. az hogy segít nekem?
    Mutasd a teljes hozzászólást!
  • az ápdétek is logolva vannak..
    nem az sql-t mentem a táblába hanem magát a kveri sztringjét

    teljes dámp helyett egy táblát kell dámpolni ami már elfér egy 2 mb-os sql fájlban ami már nem fut 30mp-nél tovább, de ha nagyon összegyűlik akkor is el lehet vagdosni amekkorára kell hiszen dátummal idővel van mentve.. kimentem ettől-eddig (mert ez belefér 2 mb-ba)
    és ez maga a megoldás hisz a.) állapotbol b.) állapotba kerül az adatbázis úgy hogy egyszerűen a különbséget lefuttatom..
    különbség = log tábla tartalma

    ez miért redundancia? ha tele lenne ápdétekkel akkor tényleg lehetne ismétlődés de ápdét nagyon kevés van..

    megnéztem nem engedik az ini_set()-et csak alapokat mint pl karakterkódolás
    Mutasd a teljes hozzászólást!
  • Ha sql logolást akarsz, akkor annak minek php? Trigger, oszt csókolom.
    Mutasd a teljes hozzászólást!
  • Bocsi, de ez hogy oldja meg a problémád?

    Ha átinserteled egy másik táblába magát az sql-t akkor az miért jobb mintha nem csinálnám semmit? Hisz nem tudod kimenteni. Plusz az update utasításokkal mi lesz? Azok elvesznek.

    Ha ennyire fontos, akkor:
    bérelj saját szervert, ott futtathatsz bármit
    redundanciát vezethetsz be a szerverbe
    egyszerűen kipróbálnád hogy engedik-e a tárhelyeden a set time limitet (vagy mi a neve)
    Mutasd a teljes hozzászólást!
  • A te megoldásod fogadtam volna el ha nem pakolják át a társalgóba a cuccot..
    nem igazán értem az okát..
    az sql log bejövős köszönöm a segítséget
    Mutasd a teljes hozzászólást!
  • úúú ez is jó kis cucc nézegetem épp..
    jó anyag..
    csak az nem tiszta hogy miben nyilvánul meg az hogy ingyenes vagy fizetős..
    Nem látok próbaidőre való figyelmeztetést, sem használati korlátozást..
    meg tudnád mondani a különbséget?
    Mutasd a teljes hozzászólást!
  • Free MySQL backup GUI tool

    Én ezt a szoftvert használom Windows7-en. Nagyon jó. Küld smtp-n keresztül emailt, hogy sikeres vagy sikertelen a backup.
    Mutasd a teljes hozzászólást!
  • Igen.
    van egy egyedi db.class -om.

    Abban van egy qurey(), ami fel van tuningolva többféle logolással INFO/WARNING/ERROR/DEBUG ami file-ba, képernsőre ...stb logol, ahogy paraméterben, konfigban megadom.

    Az SQL-t megnézem stristr-el, ha INSERT, UPDATE, DELETE, akkor a sikeres végrehajtás után egy INSERT-el betolja egy log táblába az SQL utasítást.
    Mutasd a teljes hozzászólást!
  • Na ez jól hangzik..
    a második megoldás jó lenne..
    és hogy oldottad meg a query logolást?
    minden query után mégegy insert query az első tartalmával egy log táblába?
    Mutasd a teljes hozzászólást!
  • Ez neked tényleg megért egy kommentet?
    Látom nagyon unatkozol..
    még ha figyelmetlenül is olvastad hogy többek közt ezt is tartalmazza, akkor is elég szűk látókörre vall vagy meggondolatlanságra a kérdésed.
    inkább maradtál volna csöndben..
    ezért fölösleges ide járnod...
    ilyesmivel menj a chat.hu -ra. Ott szeretik a hozzád hasonlókat.
    Ne itt rondíts bele légy olyan bűbály mások dolgába..
    Mutasd a teljes hozzászólást!
  • 2 alternatívát tudok ajánlani, én mindkettőt alkalmaztam.
    Külső szerverekr emirroroztam az adatbázist.

    1: a sqldump.php -t ajaxosan, refresh-el hívogattam a böngészőből és pl. táblánként átküldtem külső szerverekre. Olyan is volt, hogy egy cache file-ba kiírtam, melyok táblánál tartok és cron-al hivogattam. Óránként és naponta tolta a mirrorokat.

    2: Egy kimondottan nagy adatbázis használató rendzserhez csináltam azt, hogy minden módosító SQL (update, insert, delete) bekerült egy sql_log táblába és azt az sql_log táblát átdumpoltam php+cron-al a másik n szerverre, ahol lefuttattam és így biztosítottam a folyamatos db mirror-t. Ez sokkal kissebb adatmennyiséget jelent, mint mindíg dumpolni a cuccot.

    Persze mivel nem tranzakciónkénti mirro, ezért van egy kis veszteségi lehetőség, ha pl. akkor szál el, amikor még az utolsó pl. 10 percet nem szinkronolta le.

    A 2. alkalmazás elég jól sikeredett, érdemes használni
    Mutasd a teljes hozzászólást!
  • nekem viszont friss adat kell..


    Olyan gyakran változnak az európai városok? :)
    Mutasd a teljes hozzászólást!
  • igen a szolgáltató kinál ilyen lehetőséget természetesen..
    de ő éjfélkor ment..
    nekem viszont friss adat kell..
    Eldöntenéd, hogy akkor mit is szeretnél?

    mondtam többször is..
    csak a nemjó részét helyezted te is az előtérbe..
    a kiemelendő rész:
    Egy elég terjedelmes adatbázist szeretnék fájlba kimenteni php kód segítségével mert automatizálni szeretném

    lehet hogy kár is volt írnom h automatizálni szeretném.. nem ide vág.. azt én megoldom majd énmódra..

    a lényeg, hoyg lehet hogy nem aza legjobb megoldás én mégis php-t szeretnék..
    de én is böszme vagyok ugyanúgy nem láttam a fától az erdőt..
    php cli
    ez kell nekem elég jó esély van rá..
    utánaolvasok hogy is van ez, mert még csak hírből ismerem..
    Mutasd a teljes hozzászólást!
  • A legtöbb szolgáltató eleve kínál valamilyen biztonsági mentési lehetőséget, nem kéne megnézned, hogy nincs-e szolgáltatás benne már a csomagodban? Gyakran már a cpanle/plesk-ben ott van ez az opció!

    és nem is az automatizálás a gond


    vs

    Egy elég terjedelmes adatbázist szeretnék fájlba kimenteni php kód segítségével mert automatizálni szeretném


    Eldöntenéd, hogy akkor mit is szeretnél?


    A cron-t nem csak azért nyomjuk, hogy a mentéseidet automatikusan időzítve tudd futtatni (bár szvsz ez sokkal jobb lenne, de ez már a te dolgod), hanem azért, amit már leírtam az 1. hozzászólásomban:
    Nagy méretű adatbázist vagy nem php-val kéne menteni (pl. mysqldump, mysqlhotcopy), de ha php-vel is, akkor sem a böngészőből meghívott szkripttel, hanem php parancssori felületét használva (php cli), ahol a max execution time paraméter nem játszik.
    Mutasd a teljes hozzászólást!
  • Igen ez már hasonlit...
    a szerven linuksz rohangál igen csak nem tudom melyik fajta sql ..
    kétlem hogy a komoly tárhelyek LAMPP-al nyomnák.. (bár ki tudja)
    éppen ezért nem tudom az ottani útvonalat..

    ergo hogy hol találtaho ott a mysqldump..
    ez az én bajom..
    szükségem lesz majd menet közben is a friss adatbázisra ezért kellene nekem egy automatán mentő cucc, hogy ne kelljen minden áldott nap a cpanelről letölteni az aznapi ő(server) mentését ..
    többek közt..

    úgy látom mindenki leragadt a cron-nál..
    semmi szükségem a cron-ra hogy automatizáljam és nem is az automatizálás a gond..

    az a gond hogy nálam windóz futkos és ottfent meg linuksz :D
    akár relativ akár abszolút lesz az útvonal amit beírok helytelen lesz..

    erre kéne nekem vagy 5let hogyan cselezhetem ki vagy ha nem lehet akkor esetleg egyéb módszer..
    így a legmenőbb 5letem az hogy telcsizek a szolgáltatónak hogy ugyanmár adja meg legyen kedves a dump elérési útját..
    de ezt nem szeretném ( ha egyáltalán kiadná )
    Mutasd a teljes hozzászólást!
  • Ahogy azt korábban javasolták, egy olyan php-t kell írnod amit konzolban futtatsz cron segítségével. A phpn belül pedig meg tudod határozni az absolút útvonalat, realpath függvénnyel asszem. Tehát valami ilyesmi kell neked szerintem:


    <?php $dir = realpath(dirname(__FILE__)); $exec = "mysqldump -u root -pjelszo adatbazis > $dir/dump.sql"; exec($exec); ?>

    Nem próbáltam ki, de szerintem jó. Aztán már csak a cron-t kell belőni. Gondolom linuxos szerveren fut. IIS-en én spec nem tudom hogyan kell időzített parancsokat futtatni.
    Mutasd a teljes hozzászólást!
  • 1. miért ne tudnál bele fix útvonalat tenni?
    2. továbbra sem lesz jó, ha ezt böngészőből futtatod, cron-nal időzítve lefuttatod és kész!
    Mutasd a teljes hozzászólást!
  • Sikerült kibogarásznom hogy mukodik ez a mysqldump.
    az a bibi vele hogy fix útvonal kell neki..
    simán nem ment ugye ill. ment de üres volt az sql fájl
    exec(mysqldump -u root -pjelszo adatbazis > dump.sql);
    egyenlőre úgy megy hogy írtam egy bat fájlt:
    cd c:\xampp\mysql\bin mysqldump -u root -pjelszo adatbazis > C:\dump.sql
    ez mind szép és jó.. gondolom exec()-el futtatható is php-ből..
    DE
    ha fellövöm a szerverre az már nem lesz jó az útvonal miatt..
    ott nincs xampp stb..

    ezért szerettem volna egy példakódot kérni..

    meg lehet oldani valahogy hogy ne kelljen neki a fix utvonal? lehetőleg php ból inditva hogy napi egyszer futtathassam?
    Mutasd a teljes hozzászólást!
  • @: köszi árnyék a javítást.

    @Phresh: ajánlom figyelmedbe EZT.

    Ezzel meg tudod már csinálni a cront.
    Mutasd a teljes hozzászólást!
  • Ne haragudj, de mindkettő eszköznek megtalálod a részletes leírását belinkelve az általam mutatott linkről kiindulva. A mysqldump-ra mutató közvetlen linket és példát benken is adott. Php-t cli módban cron-ból is tudsz futtatni, szal php-val is megoldható a kérdés, csak ahogy írtam, ne a böngészőből hívd meg.
    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