Prodám výdělečný web ZelenyTiket.cz 1.2Mil/rok
Zobrazují se odpovědi 1 až 17 z 17

Jak přenést velkou databázi?

  1. Ahoj, mám databázi která má přes 1,5 GB a potřebuji ji přenést na jiný server v krátkém čase.

    export proběhne OK a teď jak na import:

    1. zkoušel jsem přes phpmyadmin ale tam mi to vyhazuje chybu. Rozděluji dump databáze na 100MB soubory a pokaždé když uploaduji soubor tak mi vyhodí server chybu internal error chyba serveru.

    2. zkoušel jsem dump databáze nahrát na server kde mám přístup root a přes shell příkaz naimportovat na cílový server. Bohužel to trvalo 4 dny, což je pro mne velký časový výpadek, tak dlouho nemůžu mít server mimo provoz.

    3. zkoušel jsem nahrát přes FTP sql soubor s daty na cílový server a tam přes PHP script importovat data pomocí příkazu exec

    Kód:
    exec("/usr/local/bin/mysql --user=user --password=pass databaze < soubor.sql");
    nebo
    exec("mysql --user=user --password=pass databaze < soubor.sql");
    ale to mi nic neprovede ani žádnou chybu to nevypíše

    4. pokusil jsem se napsat script který načte soubor a vykoná příkazy uvnitř, ale při pokusu o
    Kód:
    $sql = file_get_contents('mysqldump.sql');
    to skončí na velikosti paměti

    má někdo nějaký nápad ?

    ---------- Příspěvek doplněn 05.05.2019 v 22:27 ----------

    5. zkoušel jsem i externí program HeidiSQL, který umí načíst tak velký soubor a odeslat to na server, ale zas doba cca 4 dny.

  2. Co se právě děje na Webtrhu?
  3. 4 dny na import sql je trochu moc. Já 10 GB rval do MySQL okolo 1,5 minuty.

    Jaké jsou parametry toho serveru?
    Naposledy upravil filipsedivy : 06.05.2019 v 00:04

  4. Vyzkousej Adminer misto PMA a kdyz ne tak napis na podporu hostingu, oni ten import udelaji.

  5. Pokud mas root v cili tak mysql klienta na prikazove radce (mysql) a

    use jmeno_db;
    \. cesta_k_dump\dump.sql

  6. Citace Původně odeslal Oleg Zobrazit příspěvek
    Vyzkousej Adminer misto PMA a kdyz ne tak napis na podporu hostingu, oni ten import udelaji.
    Vyzkoušeno na souboru s 450MB, výsledek minutu šrotoval a pak chyba
    Service Unavailable
    The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

    ---------- Příspěvek doplněn 05.05.2019 v 23:19 ----------

    Citace Původně odeslal vdusek Zobrazit příspěvek
    Pokud mas root v cili tak mysql klienta na prikazove radce (mysql) a

    use jmeno_db;
    \. cesta_k_dump\dump.sql
    bohužel v cíli root nemám

  7. Tak zadat spravci at ti to udela, pokud tam nemas zadny shell ucet

  8. Nebo změnit hosting. Protože pokud to má 1,5 GB db, mělo by to být něco lepšího než nějaký lowcost. A pokud to není lowcost, tak by to mělo zase zvládnout.

  9. Citace Původně odeslal filipsedivy Zobrazit příspěvek
    4 dny na import sql je trochu moc. Já 10 GB rval do MySQL okolo 1,5 minuty.

    Jaké jsou parametry toho serveru?
    a mohu vědět jak ?

  10. Asi je třeba na úvod říct že používám jako úložiště InnoDB.

    Já vždy dočasně navýším na serveru parametry pro InnoDB.

    Kód:
    innodb_buffer_pool_size = 4G
    innodb_log_buffer_size = 256M
    innodb_log_file_size = 1G
    innodb_write_io_threads = 16
    innodb_flush_log_at_trx_commit = 0
    Poté restartuji databázi

    Kód:
    service mysql restart --innodb-doublewrite=0
    Následně naimportuji SQL soubor

    Kód:
    mysql --max_allowed_packet=512M -u root -p < "database-file.sql"
    A následně ještě jednou restartuji databázi

    Kód:
    service mysql restart
    ---

    Rozhodně se nespoléhat při těchto velikostech na nějaké Adminery nebo PhpMyAdminery... Ty nikdy nedokážou zpracovat takové velikosti. K tomu už právě existují CLI rozhraní.

    Tyhle webový adminéři jsou dobrý pro soubory do velikost PHP konstanty upload_max_filesize. Což bývá okolo 64 MB - 512 MB.

    ---------- Příspěvek doplněn 06.05.2019 v 08:09 ----------

    Ještě co mě napadá, tak vypnout indexy nad všemi tabulky. Protože při importu probíhá zároveň i indexování, tak že zda nemá smysl nejdříve naimportovat čistá data a následně poté postupně zapnout indexy nad tabulky aby server to zpracoval.

  11. Adminer umí nahrát data ze serveru. Stačí do složky, kde je adminer.php nahrát databázi pojmenovanou jako adminer.sql a pak dát nahrát ze serveru. Obejde se tím upload_max_filesize. Už jsem tak importoval databáze i větší než 1 GB. Vždy v pohodě, ale hosting nebyl žádný Wedos atp...

  12. Konfigurace serveru:
    1U SuperMicro X9SCL-F
    1 x Intel Xeon CPU E3-1230 @ 3.20Ghz
    4 x 4GB RAM DDR3 ECC NREG
    2x 1TB SATA

    je komplet ve správě společnosti IGNUM, bohužel nemám k němu root přístup, vše je řešeno pouze klientským rozhraním ISPConfig

    ---------- Příspěvek doplněn 06.05.2019 v 09:36 ----------

    Citace Původně odeslal Whispere Zobrazit příspěvek
    Adminer umí nahrát data ze serveru. Stačí do složky, kde je adminer.php nahrát databázi pojmenovanou jako adminer.sql a pak dát nahrát ze serveru. Obejde se tím upload_max_filesize. Už jsem tak importoval databáze i větší než 1 GB. Vždy v pohodě, ale hosting nebyl žádný Wedos atp...
    ano již jsem z koušel s výsledkem:
    The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

  13. Pristup do konzole nemas?

  14. Citace Původně odeslal Whispere Zobrazit příspěvek
    Adminer umí nahrát data ze serveru. Stačí do složky, kde je adminer.php nahrát databázi pojmenovanou jako adminer.sql a pak dát nahrát ze serveru. Obejde se tím upload_max_filesize. Už jsem tak importoval databáze i větší než 1 GB. Vždy v pohodě, ale hosting nebyl žádný Wedos atp...
    Zrovna Wedos umí přes phpMyAdmin až 1 GB importy. Je to oddělené od hostingu. Odzkoušeno na 700 MB tabulce.

  15. Wedos uvadej jako standard toho, co nefunguje, a ne toho, co se obcas povede ;)

  16. Pokud si u nich platíš server, a předpokládám i management tak nevidím důvod proč jim neposlat soubor a nechat zodpovědnost na ně. Sysadmini by měli být přesně na tohle trénováni a věřím že řešili i složitější případy než jen import několika GB souboru.

    Ještě co mě napadá, co nastavit replikaci databáze? Nastavit starou databázi jako master a novou jako slave. Ono by si poté databáze měla poradit s nejrychlejším kopírováním dat.

    Jenom co koukám na server, tak RAMka by měla být v pohodě. Ale divím se že ještě běží na SATA. Tam bych možná viděl problém v tom, že pokud databázi nahráváš a zároveň sestavuješ indexy, tak tam to může někde škytat. Otázkou je zda je to RAM nebo CPU. Chtělo by to se mrknout alespoň na nějakou statistiku serveru když to tam nahráváš.

  17. napis si na podporu a oni ta uz nasmeruju. Na forpsi my bez problemov technik spravil obnovu db zadarmo a to sa jednalo o blby hosting za 3€ na mesiac

  18. Tak závěr:
    nastavil jsem si na cílovém serveru připojení do DB ze vzdálené IP adresy
    na jiném linuxovém stroji jsem se přes terminál připojil do DB a spustil import.
    po 30 min naimportoval 45 tis záznamů, z 10 mil :)
    pak jsem zrušil všechny indexy, a zkusil to znovu = stejný výsledek

    pak jsem si založil zkušební VPS a tam jsem to zkusil do lokální DB přímo přes terminál, výsledek celá DB do 3 min

    tak jsem napsal na podporu, zda by to tam nahráli, ale stejně mi to vrtá hlavou proč je to tak pomalé.

Hostujeme u Server powered by TELE3