Jak zazálohovat, obnovit a přenést databázi

Databáze každého webu obsahuje data, jejichž ztráta znamená hodiny až dny práce navíc – produkty v e-shopu, články, komentáře, uživatelská data. Proto u Váš Hosting děláme každou noc automatický dump každé databáze, ale způsob uložení se liší podle typu hostingu:

  • Na webhostingu zálohy ukládáme zdarma do geograficky odděleného datacentra s retencí 21 dní zpětně. Obnovu provádíme přes podporu.
  • Na VPS se dumpy ukládají lokálně na server (do složky /root/backup) – denní zálohy s retencí 7 dní zpětně a navíc týdenní zálohy s retencí 30 dní zpětně. Ve VPS Centru V3 je vidíte přímo v UI v sekci Zálohování a můžete je obnovit nebo stáhnout jedním klikem. Platí to nezávisle na tom, zda máte aktivované placené zálohy celého serveru.

Pokud chcete dlouhodobou zálohu s vlastní frekvencí a retencí, je k dispozici placená služba systémových záloh (do geograficky odděleného datacentra, frekvence a retence dle vašeho přání). Podrobnosti o tom, co a jak Váš Hosting zálohuje, najdete v článku Jak je to se zálohováním ve Váš Hosting.

I tak se vyplatí umět si vlastní zálohu udělat sami. Hodí se v několika situacích: před úpravou webu nebo updatem CMS, před přenosem dat na jiný server, při migraci na jinou doménu, nebo prostě pro lokální kopii v rámci vlastní strategie zálohování.

Tento článek pokrývá všechny způsoby, jak databázi zazálohovat a následně obnovit:

  • přes Zákaznický portál (webhosting),
  • přes VPS Centrum V3 a V2 (VPS),
  • přes webové nástroje phpMyAdmin a Adminer (univerzální),
  • přes SSH (pro pokročilé).

Pokrývá MariaDB i PostgreSQL.

Rychlý přehled pro pokročilé

Tato část slouží pouze pro ověření pro velmi zkušené uživatele, kteří si chtějí pouze ověřit postup a nepotřebují číst celý článek. Pro všechny ostatní doporučujeme pokračovat další sekcí.

  1. Webhosting: Pro rychlé stažení SQL souboru do počítače otevřete v Zákaznickém portálu Domény > [doména] > Databáze, u konkrétní databáze klikněte na tříbodové menu a vyberte Stáhnout databázi. Pro perzistentní zálohu s možností obnovy z portálu přejděte na Domény > [doména] > Zálohy a v pravé části stránky vyberte v dropdownu Zvolte, co chcete zálohovat položku databáze a klikněte na Vytvořit zálohu.
  2. VPS Centrum V3: Automatické zálohy (denní + týdenní) běží ve výchozím stavu a jsou v UI sekce Zálohování – obnova z UI přes Možnosti obnovy, stažení přes ikonu. Pro jednorázový dump do počítače otevřete Databáze v levém panelu (nebo přes detail domény), u konkrétní databáze klikněte na ⋯ > Stáhnout jako SQL.
  3. VPS Centrum V2: V pravém zeleně orámovaném panelu vyberte doménu, otevřete Databáze > Seznam databází, u konkrétní databáze klikněte ve sloupci Nastavení na dropdown Nástroje a vyberte Stáhnout (okamžitý dump do počítače) nebo Zálohovat na FTP (záloha na FTP úložiště nastavené v VPS Centrum > Zálohování).
  4. phpMyAdmin / Adminer (univerzální): Otevřete přes tříbodové menu u databáze v Zákaznickém portálu nebo VPS Centru V3 (položky PhpMyAdmin / Adminer), případně přes Nástroje ve VPS Centru. V phpMyAdminu v levém panelu klikněte na databázi, pak na Export. V Admineru klikněte v levém panelu rovnou na Export.
  5. SSH (VPS): Nejjednodušší je vzít existující noční dump z /root/backup/domains/DOMENA/databases/NAZEV_DATABAZE/ (komprimovaný .zip, 7 denních + 30 dní u týdenních). Pro čerstvý dump aktuálního stavu spusťte mariadb-dump -u UZIVATEL -p NAZEV_DATABAZE > zaloha.sql (MariaDB) nebo pg_dump -h localhost -U UZIVATEL NAZEV_DATABAZE > zaloha.sql (PostgreSQL – -h localhost zabrání chybě peer authentication). Pro přenos stored procedures přidejte --routines.
  6. Přenos z jiného hostingu: export dumpu u původního poskytovatele → založení cílové databáze → import kteroukoli metodou ze sekce Obnova → přepis přihlašovacích údajů v konfiguraci webu na novou databázi (adresa serveru localhost, u PostgreSQL na webhostingu pgsql.vas-hosting.cz). Detaily v sekci Přenos databáze z jiného hostingu.

Obnova: stejnou cestou v opačném směru. Na webhostingu Možnosti obnovy u zálohy v sekci Zálohy. Ve VPS Centru V3 v sekci databáze klikněte na ⋯ > Importovat SQL soubor, ve VPS Centru V2 Databáze > Import databáze, ve phpMyAdmin/Admineru Import, přes SSH mariadb -u UZIVATEL -p NAZEV_DATABAZE < zaloha.sql.

Co je dobré vědět předem

Co budete potřebovat

  • Přístup do Zákaznického portálu (webhosting) nebo do VPS Centra (VPS).
  • Název databáze, kterou chcete zálohovat. Najdete ji v seznamu databází domény – pokud si nejste jisti jak se v rozhraní zorientovat, máme samostatný návod Jak založit a spravovat databáze.
  • Přihlašovací údaje k databázi – pouze pokud pracujete přímo s databází (phpMyAdmin, Adminer nebo SSH). Heslo k databázi se v rozhraní nikde nezobrazuje, lze ho pouze změnit. Pokud ho neznáte, najdete ho v aktivačním e-mailu, nebo si nastavte nové. Detaily v článku Jak se připojit k databázi.
  • Pro SSH přístup (volitelné, pouze VPS): root heslo serveru z aktivačního e-mailu. Pokud SSH neznáte, podívejte se na návod Jak se připojit na SSH pomocí WinSCP.
  • Pro obnovu: soubor zálohy (typicky .sql, někdy zabalený jako .sql.gz nebo .zip).

Časový odhad: Pro běžnou databázi do 100 MB obvykle 5–15 minut včetně stažení. U větších databází (1 GB a víc) trvá export i následné stažení déle (řády minut, podle rychlosti připojení).

Jak zjistíte verzi VPS Centra

Pokud používáte VPS, postup se mírně liší podle verze VPS Centra. V3 má číslo verze v pravém dolním rohu rozhraní (ve formátu 3.x.x). V2 má číslo verze v patičce u copyrightu (ve formátu 2.x). Pokud rozhraní vypadá jinak než ve vašem případě (zeleně orámovaný pravý panel s dropdownem pro výběr domény = V2; modernější UI s levým panelem Domény / Monitoring / Emaily / Databáze = V3), řiďte se podle vaší verze. Klienti webhostingu spravují databáze přes Zákaznický portál – VPS Centrum se jich netýká.

Pozor: Tento článek popisuje, jak si sami vytvořit a stáhnout zálohu databáze (například před úpravou webu nebo pro lokální archivaci). Pokud potřebujete pouze obnovit nedávný stav databáze, často stačí už existující automatický noční dump – na VPS s VPS Centrem V3 ho najdete přímo v UI v sekci Zálohování (denní + týdenní, retence 7+30 dní; obnova jedním klikem přes Možnosti obnovy). Na webhostingu se obraťte na naši podporu (retence 21 dní, zálohy uložené v geograficky odděleném datacentru).

Přenos databáze z jiného hostingu

Tato sekce je pro případ, kdy přecházíte na Váš Hosting z jiného poskytovatele a potřebujete přenést existující databázi. Pokud databázi nepřenášíte a chcete si ji jen zazálohovat nebo obnovit ze zálohy, pokračujte sekcí Záloha databáze na webhostingu. Přenos totiž stojí na stejném exportu a importu jako běžná záloha a obnova – přibývá jen poslední krok s úpravou konfigurace webu.

Přenos databáze probíhá ve třech krocích: vyexportujete databázi u původního poskytovatele, naimportujete ji u Váš Hosting a nakonec přepojíte web na novou databázi.

  1. Export u původního poskytovatele. Databáze zatím leží u vašeho stávajícího poskytovatele, takže export probíhá v jeho rozhraní, ne u Váš Hosting. Většina hostingů nabízí phpMyAdmin nebo Adminer – postup najdete v sekcích Export v phpMyAdminu a Export v Admineru platí pro tyto nástroje u kteréhokoli poskytovatele. Někteří poskytovatelé mají zálohu databáze přímo ve svém ovládacím panelu (cPanel, Plesk, DirectAdmin) nebo umožňují SSH s příkazem mysqldump či pg_dump. Cílem je získat soubor .sql, u větších databází ideálně komprimovaný .sql.gz. U velkých databází dejte přednost SSH nebo komprimovanému exportu – u webových nástrojů hrozí vypršení limitu (viz Velký dump přes webové rozhraní skončí chybou nebo timeoutem).
  2. Vytvoření cílové databáze a import u Váš Hosting. U Váš Hosting nejprve založte prázdnou databázi (ponechte výchozí kódování utf8mb4, které plně podporuje češtinu) – postup najdete v návodu Jak založit a spravovat databáze. Poté soubor .sql naimportujte kteroukoli cestou ze sekce Obnova databáze ze zálohy – přes phpMyAdmin nebo Adminer, přes VPS Centrum, nebo přes SSH. Soubor .sql je přenositelný, takže export můžete udělat jedním nástrojem a import jiným.
  3. Přepojení webu na novou databázi. Po importu web stále míří na starou databázi u původního poskytovatele. V konfiguračním souboru aplikace proto přepište přihlašovací údaje na novou databázi: název databáze, uživatelské jméno, heslo a adresu serveru. U Váš Hosting je adresa serveru pro MariaDB/MySQL vždy localhost (na webhostingu i na VPS); pro PostgreSQL je to na webhostingu pgsql.vas-hosting.cz a na VPS localhost. Uživatelské jméno se může od názvu databáze mírně lišit – detaily jsou v návodu Jak se připojit k databázi. U WordPressu jsou tyto údaje v souboru wp-config.php (konstanty DB_NAME, DB_USER, DB_PASSWORD a DB_HOST), u ostatních aplikací v jejich konfiguračním souboru.

Pokud přesouváte celý web (soubory, databázi i doménu najednou), řiďte se komplexním návodem Jak migrovat web – u WordPressu návodem Jak migrovat web na WordPressu. Oba pokrývají celý přesun včetně přepojení webu na databázi.

Pozor na kódování: Při přenosu mezi různými poskytovateli se někdy rozsypou české znaky. Pokud se to stane, podívejte se do sekce Po přenosu databáze se rozsypaly české znaky.

Záloha databáze na webhostingu

Tento postup platí pro klienty webhostingu a probíhá v Zákaznickém portálu. Funguje pro databáze MariaDB i PostgreSQL (PostgreSQL je dostupná pouze u vyšších tarifů). Pro zálohu a obnovu databáze na webhostingu existují dvě cesty:

  • Stáhnout databázi – akce v tříbodovém menu u databáze v sekci Databáze. Okamžitý dump, soubor SQL se stáhne přímo do prohlížeče. Vhodné, pokud chcete jen kopii databáze v počítači.
  • Uživatelská záloha – vytvořená v sekci Zálohy v per-doménové navigaci. Vhodné, pokud chcete zálohu pro pozdější obnovu přímo z portálu (přes tlačítko Možnosti obnovy), nebo pokud zálohu chcete archivovat.

U každé databáze najdete v sekci Domény > [doména] > Databáze tříbodové menu s několika akcemi (mimo jiné Editovat databázi, Smazat databázi nebo otevření PhpMyAdminu a Admineru) – ostatní akce se cestou zálohy a obnovy přímo netýkají.

Cesty jsou nezávislé a můžete použít obě – záleží na tom, k čemu zálohu potřebujete. Pokud chcete jen rychle dostat SQL soubor do počítače, je nejjednodušší Stáhnout databázi v menu ⋯. Pokud plánujete zálohu nechat v portálu pro pozdější obnovu jedním klikem, vytvořte uživatelskou zálohu v sekci Zálohy.

Stáhnout databázi na webhostingu

  1. Přihlaste se do Zákaznického portálu.
  2. V levém panelu klikněte na Domény a vyberte doménu z dropdownu „Vyberte doménu“.
  3. V per-doménové navigaci klikněte na Databáze. Otevře se tabulka všech databází domény.
  4. U konkrétní databáze klikněte na tříbodové menu ve sloupci Akce.
  5. V rozbaleném menu vyberte Stáhnout databázi. SQL soubor se začne stahovat do vašeho počítače.
Zákaznický portál, sekce Databáze, tříbodové menu s akcemi

Indikátor úspěchu: V prohlížeči se začne stahovat soubor NAZEV_DATABAZE.sql. Soubor otevřete v textovém editoru a měl by obsahovat příkazy CREATE TABLE, INSERT INTO a hlavičku s informací o databázi.

Zálohovat databázi na webhostingu

Tato cesta vytvoří uživatelskou zálohu v sekci Zálohy u domény. Zálohu lze později obnovit přímo z portálu (jedním klikem přes Možnosti obnovy) nebo stáhnout do počítače. Záloha je perzistentní – zůstane v portálu, dokud nevyprší její retence (zhruba 3 měsíce), nebo dokud ji nesmažete.

  1. Přihlaste se do Zákaznického portálu.
  2. V detailu domény přejděte v per-doménové navigaci na Zálohy. Otevře se stránka Uživatelské zálohy.
  3. V pravé části stránky najdete dropdown Zvolte, co chcete zálohovat a vedle něj zelené tlačítko Vytvořit zálohu.
  4. V dropdownu vyberte položku odpovídající dané databázi (například Databáze saldova_50618 (MariaDB)). Dropdown nabízí i další typy záloh (například Úložiště souborů), ty však spadají mimo téma tohoto článku.
  5. Klikněte na Vytvořit zálohu.
Zákaznický portál, sekce Uživatelské zálohy, výběr databáze pro zálohu

Indikátor úspěchu: Po kliknutí na Vytvořit zálohu se zobrazí zelený banner „Záloha byla úspěšně vytvořena. Zálohu můžete kdykoliv obnovit, můžete mít 3 uživatelské zálohy…“ a v tabulce Uživatelské zálohy níže na stránce se objeví nová položka. Současně přijde malý toast s textem „V sekci Zálohy u domény se zobrazí vytvořená záloha databáze [název]“.

Zákaznický portál, notifikace o vytvoření zálohy databáze

Tabulka Uživatelské zálohy obsahuje sloupce Cíl, Vytvořeno, Expiruje, Velikost zálohy, Velikost dat, Typ, Akce. U konkrétní zálohy máte k dispozici tři akce:

  • Možnosti obnovy (modré tlačítko) – obnova databáze ze zálohy přímo v portálu (viz sekce
    Obnova na webhostingu).
  • Ikona stažení – stažení komprimovaného souboru zálohy do počítače.
  • Ikona koše (červené) – odstranění zálohy.
Zákaznický portál, tabulka Uživatelské zálohy, akce u zálohy

Pozor – limit 3 uživatelské zálohy: Zákaznický portál vám umožní mít na webhostingu maximálně 3 uživatelské zálohy současně. Po vyčerpání limitu nejprve smažte starší zálohu, než vytvoříte novou. Datum expirace u každé zálohy najdete ve sloupci Expiruje (typicky zhruba 3 měsíce od vytvoření). Pokud chcete zálohu zachovat déle, stáhněte si ji do vlastního úložiště.

Záloha databáze ve VPS Centru V3

VPS Centrum V3 nabízí tři cesty zálohování:

  • Automatické zálohy – ve výchozím stavu spuštěné každý den brzy ráno, ukládají se na lokální disk serveru a klient je vidí přímo v UI (sekce Zálohování). Pro většinu situací stačí spoléhat na ně.
  • Stáhnout jako SQL v sekci Databáze – jednorázový dump, SQL soubor se stáhne přímo do prohlížeče. Vhodné, pokud chcete jen kopii databáze v počítači.
  • Vytvořit zálohu přes Zálohování per doména – ad-hoc manuální záloha v lokálním nebo vzdáleném úložišti (vedle automatických). Vhodné před významnou změnou webu.

Přehled automatických záloh ve VPS Centru V3

Pokud máte VPS s VPS Centrem V3, ve výchozím stavu se každý den brzy ráno vytvářejí automatické zálohy všech databází vašich domén na lokální disk serveru (do složky /root/backup). Tyto zálohy najdete v sekci Zálohování v detailu domény (nebo přes Zálohování v levém panelu).

  1. Ve VPS Centru V3 vyberte doménu v dropdownu Vyberte doménu vlevo nahoře.
  2. V per-doménové navigaci klikněte na Zálohování.
VPS Centrum V3, sekce Zálohování, tabulka záloh

Stránka obsahuje dva oddělené bloky:

  • Automatické zálohování (horní blok) – pouze pro nastavení vzdálených úložišť (Dropbox, SFTP, FTP, Amazon S3). Pokud chcete automatické zálohy ukládat i na vzdálené úložiště nad rámec lokálního disku, klikněte na + Vytvořit úložiště, nastavte ho a vyberte v dropdownu Vyberte úložiště, poté potvrďte tlačítkem Nastavit. Lokální zálohy fungují automaticky bez konfigurace – tento blok se jich netýká.
  • Přehled záloh (dolní blok) – tabulka všech existujících záloh této domény (automatických i ručně vytvořených).

Tabulka Přehled záloh obsahuje sloupce Název zálohy, Úložiště, Vytvořeno, Expiruje, Velikost zálohy, Velikost dat, Typ. V sloupci Typ rozlišujete:

Filtrovat lze pomocí dvou dropdownů: dropdown domény (vlevo) a dropdown objektu zálohování (vpravo). Druhý dropdown nabízí Zobrazit všechny zálohy (výchozí), Web, Emaily a samostatnou položku pro každou databázi domény (například Databáze wordpress_db (MariaDB)). Tabulka pak zobrazí pouze zálohy odpovídajícího objektu napříč všemi typy (denní, týdenní, uživatelské).

U každé zálohy najdete dvě akce:

  • Možnosti obnovy (modré tlačítko) – obnoví databázi přímo na serveru z této zálohy bez nutnosti stahování. Postup detailně v sekci Obnova ve VPS Centru V3.
  • Ikona stažení (s tooltipem Stáhnout jako .zip) – stáhne komprimovaný .zip soubor s SQL dumpem do počítače. Po stažení rozbalte přes unzip NAZEV_SOUBORU.zip pro získání samotného .sql souboru.

Tip: Automatické zálohy jsou aktivní ve výchozím stavu, nemusíte je nastavovat. Pokud sekce Zálohování zobrazuje prázdnou tabulku nebo zastaralé položky, podívejte se do sekce
Lokální zálohy na VPS chybí.

Záloha přes sekci Databáze ve VPS Centru V3

Toto je nejjednodušší a ve většině případů dostačující cesta – jeden klik a SQL soubor se vám stáhne do prohlížeče.

  1. Ve VPS Centru V3 klikněte v levém panelu na Databáze. Otevře se přehled obou DB serverů (MariaDB a PostgreSQL) a tabulka všech databází na serveru.
  2. V tabulce najděte databázi, kterou chcete zálohovat, a klikněte na tříbodové menu úplně vpravo.
  3. V rozbaleném menu vyberte Stáhnout jako SQL. SQL soubor se začne stahovat do vašeho počítače.

Alternativně lze sekci Databáze otevřít přes detail konkrétní domény – akce v tříbodovém menu jsou v obou pohledech stejné.

VPS Centrum V3, sekce Databáze, akce Stáhnout jako SQL

Indikátor úspěchu: V prohlížeči se začne stahovat soubor NAZEV_DATABAZE.sql. Soubor otevřete v textovém editoru a měl by obsahovat příkazy CREATE TABLE, INSERT INTO a hlavičku s informací o databázi.

Záloha přes Zálohování per doména ve VPS Centru V3

Pokud potřebujete vytvořit ad-hoc manuální zálohu (například před významnou změnou webu nebo updatem CMS), použijte tlačítko + Vytvořit zálohu v sekci Zálohování. Tato záloha se přidá do Přehledu záloh s typem Uživatelská vedle automatických denních a týdenních záloh.

  1. Otevřete detail domény ve VPS Centru.
  2. Přejděte na záložku Zálohování.
  3. Klikněte na + Vytvořit zálohu. Otevře se dialog se dvěma dropdowny.
  4. V dropdownu Typ zálohy vyberte Databáze [název_db] ([typ]) (například „Databáze wordpress_db (MariaDB)“). V tomto dropdownu jsou samostatné položky pro každou databázi domény. Dropdown nabízí i další typy záloh (například web nebo e-maily), ty však spadají mimo téma tohoto článku.
  5. V dropdownu Úložiště vyberte cílové úložiště. Výchozí je Lokální disk; pokud máte nastavené další úložiště (SFTP, FTP, Dropbox, Amazon S3), zobrazí se také v dropdownu.
  6. Klikněte na Vytvořit zálohu.
VPS Centrum V3, dialog Vytvořit zálohu, výběr Typ databáze

Indikátor úspěchu: Po kliknutí na Vytvořit zálohu se zobrazí potvrzovací notifikace a v Přehledu záloh níže na stránce se objeví nová položka s typem Uživatelská.

Pro nastavení vzdálených úložišť pro automatické zálohy (SFTP, FTP, Dropbox, S3) najdete v horním bloku stránky sekci Automatické zálohování s tlačítkem + Vytvořit úložiště. Pro detailní postup propojení s Dropboxem máme samostatný návod Jak zálohovat VPS na Dropbox. Frekvenci a rozsah lokálních automatických záloh lze upravit v sekci VPS Centrum > Zálohování > Úložiště a automatické zálohování.

Záloha databáze ve VPS Centru V2

VPS Centrum V2 má vlastní rozhraní v zeleně orámovaném pravém panelu. Záloha probíhá ve dvou variantách – buď okamžité stažení SQL souboru do počítače, nebo záloha na vzdálené FTP úložiště.

  1. Ve VPS Centru V2 vyberte doménu z dropdownu v horní části pravého zeleně orámovaného panelu.
  2. V per-doménové navigaci klikněte na Databáze, pak na Seznam databází.
  3. U konkrétní databáze klikněte ve sloupci Nastavení na dropdown Nástroje. Otevře se menu se čtyřmi položkami: Nastavení, Zálohovat na FTP, Klonovat, Stáhnout.
VPS Centrum V2, Seznam databází, dropdown Nástroje

Pro stažení do počítače vyberte Stáhnout. SQL soubor se začne stahovat do vašeho počítače.

Pro zálohu na FTP úložiště vyberte Zálohovat na FTP. Tato volba vyžaduje předem nakonfigurované FTP úložiště v sekci Zálohování (cesta viz odstavec o plánované záloze níže). Záloha na FTP je užitečná, pokud chcete zálohu uložit mimo server (například pro archivaci nebo přenos na jiný server).

Indikátor úspěchu: U akce Stáhnout se v prohlížeči začne stahovat soubor NAZEV_DATABAZE.sql. U akce Zálohovat na FTP se zobrazí potvrzovací notifikace o spuštění zálohy.

Pokud potřebujete plánovanou zálohu, nastavte ji v per-doménové navigaci přes Nastavení, kde v horní liště kliknete na třetí tlačítko Zálohování (vedle tlačítek Webserver a Základní nastavení). V2 nabízí dvě úložiště: Ftp a Dropbox (ve V3 je úložišť pět). Frekvence se nastavuje kombinací checkboxů: dny v měsíci, dny v týdnu, hodina.

Tip: Automatické denní a týdenní zálohy databází na lokální disk fungují i ve V2 (stejně jako ve V3) – ukládají se do /root/backup/domains/DOMENA/databases/NAZEV_DATABAZE/. V2 ale tyto zálohy nezobrazuje v UI – pro stažení nebo obnovu z lokálních záloh přes SSH viz sekce Použití existujícího automatického dumpu. Pro obnovu z lokální zálohy přes UI použijte Import databáze > Ze zálohy (popsáno v sekci Obnova ve VPS Centru V2).

Záloha přes phpMyAdmin nebo Adminer

phpMyAdmin a Adminer jsou webové nástroje pro správu databází. Pracují stejným způsobem na webhostingu i na VPS. phpMyAdmin pracuje pouze s MariaDB a MySQL, Adminer pokrývá i PostgreSQL přes přepínač System v přihlašovacím formuláři. Pokud chcete více informací o těchto nástrojích, podívejte se na článek
Nástroje pro správu webhostingu.

Otevření phpMyAdminu nebo Admineru

Doporučujeme otevírat oba nástroje přes rychlý odkaz v rozhraní – nemusíte si tak pamatovat per-server URL nástroje.

Z Zákaznického portálu (webhosting):

V detailu domény přejděte do Databáze. U konkrétní databáze otevřete tříbodové menu ve sloupci Akce – v menu najdete položky PhpMyAdmin a Adminer. Klik otevře nástroj v novém panelu, ale automaticky vás nepřihlásí – dovede vás na přihlašovací stránku, kam musíte zadat uživatelské jméno a heslo databáze (nikoli přihlašovací údaje do Zákaznického portálu).

Důležité: Pro PostgreSQL v Admineru musíte v přihlašovacím formuláři ještě v dropdownu System přepnout z výchozí MySQL na PostgreSQL. Bez toho se s PostgreSQL přihlašovacími údaji nepřihlásíte.

Pokud heslo databáze neznáte, najdete ho v aktivačním e-mailu při vytváření databáze, nebo si ho můžete změnit přes akci Editovat databázi ve stejném tříbodovém menu (heslo se v UI nikdy nezobrazuje, lze ho pouze nastavit nové).

Z VPS Centra V3:

V sekci Databáze otevřete tříbodové menu u konkrétní databáze – v menu jsou položky PhpMyAdmin a Adminer. Stejně jako u webhostingu klik otevře přihlašovací stránku v novém panelu, kam zadáte přihlašovací údaje databáze.

Z VPS Centra V2:

V horním menu Nástroje najdete odkazy na PhpMyAdmin, PhpPgAdmin (pokud máte PostgreSQL) a Adminer. Klik otevře přihlašovací stránku v novém panelu, kam zadáte přihlašovací údaje databáze.

PostgreSQL na webhostingu: phpPgAdmin u Váš Hosting webhostingu neexistuje. Pro správu PostgreSQL databáze používejte Adminer s přepínačem System – v přihlašovacím formuláři Admineru je dropdown System, kde přepnete z MySQL/MariaDB na PostgreSQL. Funkční je pouze pokud máte vyšší tarif webhostingu (PostgreSQL je dostupná jen u nich).

Export v phpMyAdminu

  1. Po přihlášení v levém panelu klikněte na název databáze.
  2. V horním navigačním panelu klikněte na Export.
  3. Zvolte způsob exportu: Rychlý (defaultní nastavení, formát SQL) pro většinu případů stačí. Pro velké databáze, kde hrozí timeout, zvolte Vlastní a v sekci Výstup zaškrtněte Uložit výstup do souboru a v dropdownu komprese vyberte gzipped – komprimovaný soubor se přenese rychleji a importuje stejně.
  4. Klikněte na Proveď. Soubor se stáhne do vašeho počítače.
phpMyAdmin, záložka Export databáze

Indikátor úspěchu: Po kliknutí na Export se SQL soubor začne stahovat do vašeho počítače. Otevřete ho v textovém editoru a měl by obsahovat příkazy CREATE TABLE a INSERT INTO.

Export v Admineru

  1. Po přihlášení v levém panelu klikněte na Export.
  2. V dropdownu Výstup zvolte uložit (stáhne se soubor) nebo gzip (komprimovaný).
  3. V dropdownu Format ponechte SQL – defaultní a univerzálně použitelný formát.
  4. Zaškrtněte, zda chcete zálohovat strukturu, data, nebo oboje (defaultně oboje).
  5. Klikněte na Export dole na stránce.
Adminer, sekce Export databáze

Indikátor úspěchu: Po kliknutí na Export se SQL soubor začne stahovat do vašeho počítače. Otevřete ho v textovém editoru a měl by obsahovat příkazy CREATE TABLE a INSERT INTO.

Záloha přes SSH

Tato varianta je určená pro pokročilé uživatele s VPS a root SSH přístupem. Máte dvě cesty: použít už existující automatický noční dump z /root/backup (nemusíte vytvářet nic nového), nebo vytvořit čerstvý dump aktuálního stavu pomocí mariadb-dump či pg_dump. Cesta přes SSH je obecně nejrychlejší pro velké databáze a umožňuje plnou kontrolu (například přenos stored procedures, který ne všechny GUI nástroje zvládnou).

Použití existujícího automatického dumpu

Tip: Jednodušší cestou je obnovit nebo stáhnout zálohu přímo z UI VPS Centra V3 – sekce Přehled automatických záloh ve VPS Centru V3. SSH cesta níže je užitečná pro pokročilé klienty, kteří chtějí pracovat s dumpem v terminálu (například pro automatizaci nebo úpravu před importem).

Pokud potřebujete jen stáhnout zálohu z nedávného dne přes SSH, nemusíte spouštět žádný export – noční zálohy už na serveru existují. Jejich přesná lokace je:

/root/backup/domains/DOMENA/databases/NAZEV_DATABAZE/

Kde DOMENA je vaše doména (například saldova.cz) a NAZEV_DATABAZE je název databáze (například wordpress_db).

V této složce najdete soubory typu .zip s názvy obsahujícími doménu, datum a čas zálohy, typ intervalu (daily nebo weekly), typ databáze (mdb = MariaDB) a název databáze. Konkrétní příklad:

saldova-cz_2026-05-11-04-00-09_0_0_daily_mdb_test_anna_1.zip

V názvu vidíte: doména (saldova-cz), datum a čas zálohy (2026-05-11-04-00-09), interval (daily) a název databáze (test_anna_1). Číselné identifikátory (0_0) jsou interní značky zálohovacího systému – můžete je ignorovat.

V názvu rozlišujete dva typy záloh:

  • daily – denní záloha (k dispozici posledních 7 dní)
  • weekly – týdenní záloha (k dispozici 30 dní zpětně)

Tip – pojmenovávejte stažené dumpy popisně: Když si dumpy stahujete do home adresáře nebo na lokální stroj, vyhněte se generickému názvu typu zaloha.sql. Pokud spustíte pg_dump ... > zaloha.sql po předchozím mariadb-dump ... > zaloha.sql, druhý příkaz přepíše první bez varování (znak > v terminálu vždy přepíše cílový soubor). Použijte popisné názvy s identifikátorem technologie a domény, například zaloha-mariadb-saldova_cz.sql a zaloha-postgres-saldova_postgre.sql.

Postup stažení a obnovy z existujícího dumpu:

1. Najděte cestu k aktuálnímu dumpu

Připojte se na server přes SSH a vypište obsah složky. Vyberte nejnovější soubor (typicky daily s datem dnešního nebo včerejšího rána):

ls -lh /root/backup/domains/DOMENA/databases/NAZEV_DATABAZE/

2. Stáhněte zvolený .zip soubor do počítače

Buď z lokálního terminálu pomocí scp (přepněte se zpět na lokální stroj příkazem exit, nebo otevřete nový terminál), nebo přes FTP/SFTP klienta (FileZilla, WinSCP). Příklad scp z lokálního terminálu:

scp root@IP_SERVERU:/root/backup/domains/DOMENA/databases/NAZEV_DATABAZE/NAZEV_SOUBORU.zip ./

3. Rozbalte soubor

V .zip archivu je samotný .sql dump, který se vždy jmenuje backup.sql (nezávisle na názvu .zip archivu):

unzip NAZEV_SOUBORU.zip

Po rozbalení vznikne ve stejném adresáři soubor backup.sql.

Pozor – přepisování při rozbalení více archivů: Protože soubor uvnitř každého .zip archivu se jmenuje stejně (backup.sql), při rozbalení druhého archivu ve stejném adresáři budete dotázáni, zda existující backup.sql přepsat. Pokud potřebujete pracovat s více zálohami současně, rozbalte každou do samostatného adresáře, nebo po rozbalení soubor okamžitě přejmenujte:

unzip NAZEV_SOUBORU.zip && mv backup.sql NAZEV_SOUBORU.sql

4. Importujte podle potřeby

Buď zpět na původní server, nebo na nový server po migraci, nebo na lokální vývojové prostředí. Konkrétní postupy pro různé cesty najdete v sekci Obnova databáze ze zálohy.

Pokud chcete dump rovnou importovat zpátky na serveru (typicky pro rychlé vrácení do včerejšího stavu po nějaké nešťastné úpravě), můžete .zip rozbalit přímo na serveru a importovat bez stahování do počítače:

cd ~
unzip /root/backup/domains/DOMENA/databases/NAZEV_DATABAZE/NAZEV_SOUBORU.zip
mariadb -u UZIVATEL -p NAZEV_DATABAZE < backup.sql

Pozor – pokud zálohy chybí: Pokud složka /root/backup/domains/DOMENA/databases/NAZEV_DATABAZE/ neexistuje nebo je prázdná, situace záleží na verzi VPS Centra. Ve V3 je možné, že je automatické zálohování vypnuté – návod na zapnutí najdete v sekci
Lokální zálohy na VPS chybí. Ve V2 automatické zálohy běží vždy a klient je nemůže vypnout.

Vytvoření čerstvého dumpu MariaDB nebo MySQL

Pokud potřebujete dump aktuálního stavu (s daty, která vznikla od posledního nočního dumpu), připojte se k serveru přes SSH a spusťte:

mariadb-dump -u UZIVATEL -p NAZEV_DATABAZE > zaloha.sql

Kde:

  • UZIVATEL – uživatelské jméno databáze (najdete v seznamu databází ve VPS Centru),
  • NAZEV_DATABAZE – název databáze, kterou zálohujete.

Po zadání příkazu systém požádá o heslo databáze. Po jeho zadání běží export. Výstupní soubor zaloha.sql vznikne v aktuálním pracovním adresáři (typicky /root/, pokud jste se přihlásili jako root). Pokud chcete soubor uložit jinam, použijte plnou cestu, například > /tmp/zaloha.sql.

Tip pro starší distribuce: Příkaz mariadb-dump je dostupný od MariaDB 10.4.6. Na Debianu Buster a starších verzích, kde běží starší MariaDB, použijte ekvivalentní mysqldump se stejnými argumenty.

Indikátor úspěchu: Po dokončení se prompt vrátí bez chybové hlášky. Existenci a velikost souboru ověříte příkazem:

ls -lh zaloha.sql

Pro přenos stored procedures (uložených procedur) přidejte přepínač --routines:

mariadb-dump --routines -u UZIVATEL -p NAZEV_DATABAZE > zaloha.sql

To je důležité při migraci databází, protože migrační nástroj VPS Centra stored procedures nepřenáší.

Pro komprimovanou zálohu rovnou v jednom kroku:

mariadb-dump -u UZIVATEL -p NAZEV_DATABAZE | gzip > zaloha.sql.gz

Pokud chcete zálohu udělat z vlastního počítače (ne přímo ze serveru), připojení k databázi je nutné předem povolit – návod najdete v článku Vzdálené přihlášení k MySQL.

Vytvoření čerstvého dumpu PostgreSQL

Pro PostgreSQL existuje obdobný nástroj pg_dump. Pozor – PostgreSQL na rozdíl od MariaDB neumožňuje rootu přihlášení bez hesla. Pokud spustíte pg_dump -U saldova_postgre saldova_postgre > zaloha.sql jako root, dostanete chybu Peer authentication failed for user. Důvodem je výchozí způsob autentizace přes lokální Unix socket, kde se musí jméno Linux uživatele shodovat s názvem PostgreSQL uživatele. Řešením je přepínač -h localhost, který přinutí PostgreSQL k autentizaci přes TCP s heslem:

pg_dump -h localhost -U UZIVATEL NAZEV_DATABAZE > zaloha.sql

Po spuštění budete vyzváni k zadání hesla databázového uživatele (najdete ho v aktivačním e-mailu k databázi).

Pro komprimovaný výstup:

pg_dump -h localhost -U UZIVATEL -Fc NAZEV_DATABAZE > zaloha.dump

Přepínač -Fc produkuje vlastní binární formát PostgreSQL (custom dump), který je menší a importuje se nástrojem pg_restore.

Alternativa pro root: Pokud jste přihlášeni jako root a chcete dump bez zadávání hesla, můžete použít systémového uživatele postgres (PostgreSQL superuser):

sudo -u postgres pg_dump NAZEV_DATABAZE > zaloha.sql

Tímto postupem se peer authentication podaří, protože Linux uživatel postgres se shoduje s PostgreSQL superuserem postgres.

Indikátor úspěchu: Po dokončení se prompt vrátí bez chybové hlášky. Existenci a velikost souboru ověříte příkazem ls -lh zaloha.sql (případně ls -lh zaloha.dump pro custom dump).

Obnova databáze ze zálohy

Obnova je zrcadlový postup k záloze. Před importem se ujistěte, že importujete do správné databáze – import obvykle přepíše tabulky se stejným názvem.

Důležité: Při importu se data ve stávající databázi přepíší. Pokud je v cílové databázi cokoliv, co chcete zachovat, zazálohujte ji před importem.

Pokud chcete obnovit kompletní web (například po havárii), máme dedikovaný návod Jak obnovit web a databázi.

Jak poznáte úspěšnou obnovu: Po každém z níže uvedených postupů byste měli vidět v rozhraní zelenou notifikaci o úspěšném importu (případně se prompt vrátí bez chybové hlášky u SSH). Obsah databáze nakonec ověřte v phpMyAdmin nebo Admineru – měli byste tam najít všechny tabulky a data z původní zálohy.

Obnova na webhostingu

Pokud máte na webhostingu uživatelskou zálohu vytvořenou postupem výše (sekce Záloha databáze na webhostingu), můžete ji obnovit přímo z portálu:

  1. V detailu domény klikněte v per-doménové navigaci na Zálohy.
  2. Najděte v tabulce zálohu, kterou chcete obnovit (filtrovat lze podle domény nebo objektu zálohování).
  3. Ve sloupci Akce klikněte na tlačítko Možnosti obnovy. Otevře se dialog Obnova ze zálohy se dvěma dropdowny: Doména, na kterou bude záloha obnovena a Databáze, na kterou bude záloha obnovena.
  4. Standardně jsou předvyplněny doména a databáze, ze kterých záloha pochází. Pokud chcete zálohu obnovit do jiné domény nebo databáze ve vašem účtu, změňte hodnoty v dropdownech.
  5. Klikněte na Obnovit zálohu.
Zákaznický portál, dialog Obnova ze zálohy

Tip: Možnost obnovit na jinou databázi nebo doménu je užitečná v několika situacích – například pro vytvoření testovacího klonu produkční databáze, pro přesun dat mezi doménami ve stejném účtu, nebo pro obnovu jen jedné z více databází jedné domény. Cílová databáze musí být ve vašem účtu předem založena.

Pokud máte zálohu jako SQL soubor v počítači (například po stažení přes akci Stáhnout databázi), použijte phpMyAdmin nebo Adminer pro import – postup je níže v sekcích Obnova přes phpMyAdmin a
Obnova přes Adminer.

Obnova ve VPS Centru V3

VPS Centrum V3 nabízí dvě cesty obnovy podle toho, odkud zálohu obnovujete:

  • Z existující zálohy v sekci Zálohování (automatické nebo dříve ručně vytvořené) – jeden klik přes Možnosti obnovy, není potřeba mít SQL soubor v počítači.
  • Z SQL souboru v počítači – přes akci Importovat SQL soubor v sekci Databáze.

Obnova z existující zálohy:

  1. Otevřete detail domény > Zálohování (per-doménové zobrazení, kde najdete filtraci).
  2. V tabulce Přehled záloh najděte zálohu, ze které chcete obnovit (filtrovat lze podle objektu zálohování). Alternativně lze obnovu spustit i z globální sekce VPS Centrum > Zálohování v levém panelu, kde najdete přehled všech záloh napříč doménami (bez filtrace).
  3. Ve sloupci akcí klikněte na modré tlačítko Možnosti obnovy. Otevře se dialog Obnova ze zálohy se dvěma dropdowny: Doména, na kterou bude záloha obnovena a Databáze, na kterou bude záloha obnovena.
  4. Standardně jsou předvyplněny doména a databáze, ze kterých záloha pochází. Pokud chcete zálohu obnovit do jiné domény nebo databáze ve VPS, změňte hodnoty v dropdownech.
  5. Klikněte na modré tlačítko Obnovit zálohu.
VPS Centrum V3, dialog Obnova ze zálohy

Obnova ze SQL souboru v počítači:

  1. V sekci Databáze najděte cílovou databázi a klikněte na tříbodové menu .
  2. Vyberte Importovat SQL soubor.
  3. Vyberte SQL soubor zálohy z počítače a potvrďte.
VPS Centrum V3, akce Importovat SQL soubor

Obnova ve VPS Centru V2

VPS Centrum V2 nabízí pro obnovu databáze samostatnou sekci Import databáze, kterou najdete v horní liště sekce Databáze (vedle tlačítek Vytvořit Databázi a Seznam Databází). Import má dva režimy podle toho, odkud zálohu obnovujete:

  • Soubor na FTP – obnova z SQL souboru, který je dostupný na FTP serveru. V2 nepřijímá přímé nahrání souboru z počítače přes prohlížeč – soubor musíte nejprve nahrát na FTP server (například přes FileZilla nebo WinSCP) a v Import databáze pak zadat cestu k němu.
  • Ze zálohy – obnova z automatické denní nebo týdenní zálohy, kterou systém vytvořil v /root/backup. V dropdownu Záloha ze dne vyberete konkrétní datum dostupné zálohy.

Postup pro obnovu Ze zálohy (z automatické denní/týdenní):

  1. Ve VPS Centru V2 vyberte doménu z dropdownu v pravém zeleně orámovaném panelu.
  2. V per-doménové navigaci klikněte na Databáze, pak v horní liště na Import databáze.
  3. V dropdownu Název databáze vyberte cílovou databázi.
  4. V Typ importu zaškrtněte radio button Ze zálohy. Objeví se další pole Záloha ze dne s dropdownem dostupných záloh.
  5. V dropdownu Záloha ze dne vyberte konkrétní datum.
  6. Volitelně zaškrtněte Smazat obsah databáze před importem, pokud chcete cílovou databázi nejprve vyprázdnit (jinak se nová data připojí k existujícím).
  7. Klikněte na zelené tlačítko Importovat.
VPS Centrum V2, formulář Import databáze, obnova ze zálohy

Postup pro obnovu Soubor na FTP (z vlastního SQL souboru):

  1. Nahrajte SQL soubor zálohy na FTP server (například přes FileZilla, WinSCP, nebo Správce souborů v Zákaznickém portálu).
  2. Ve VPS Centru V2 otevřete Databáze > Import databáze.
  3. V dropdownu Název databáze vyberte cílovou databázi.
  4. V Typ importu ponechte výchozí Soubor na FTP.
  5. Do pole Soubor na disku zadejte cestu k SQL souboru na FTP (například /www/domains/example.cz/zaloha.sql).
  6. Volitelně zaškrtněte Smazat obsah databáze před importem.
  7. Klikněte na Importovat.
VPS Centrum V2, formulář Import databáze, obnova ze souboru na FTP

Tip: Pokud máte SQL soubor přímo na serveru (například z příkazu mariadb-dump přes SSH) a chcete ho importovat přes UI V2, můžete ho nahrát na FTP server, ale jednodušší je provést import přímo přes SSH příkazem mariadb -u UZIVATEL -p NAZEV_DATABAZE < zaloha.sql (viz sekce Obnova přes SSH).

Obnova přes phpMyAdmin

  1. Otevřete phpMyAdmin a v levém panelu klikněte na název cílové databáze.
  2. V horním navigačním panelu klikněte na Import.
  3. Vyberte SQL soubor a klikněte na Import.

phpMyAdmin podporuje import i pro komprimované soubory (.sql.gz, .sql.zip) – rozpozná je automaticky.

Obnova přes Adminer

  1. Otevřete Adminer a vyberte cílovou databázi.
  2. V levém panelu klikněte na Import.
  3. Vyberte SQL soubor a klikněte na Spustit.

Obnova přes SSH

Pro MariaDB / MySQL:

mariadb -u UZIVATEL -p NAZEV_DATABAZE < zaloha.sql

Pro komprimovanou zálohu:

zcat zaloha.sql.gz | mariadb -u UZIVATEL -p NAZEV_DATABAZE

Pro PostgreSQL (textový SQL dump):

psql -h localhost -U UZIVATEL NAZEV_DATABAZE < zaloha.sql

Pro PostgreSQL custom dump (z pg_dump -Fc):

pg_restore -h localhost -U UZIVATEL -d NAZEV_DATABAZE zaloha.dump

Stejně jako u zálohy, -h localhost zabrání chybě peer authentication. Alternativně pokud jste přihlášeni jako root, můžete použít sudo -u postgres (viz Vytvoření čerstvého dumpu PostgreSQL).

Indikátor úspěchu (SSH): Příkaz se vrátí na nový prompt bez chybové hlášky. Ověřte počet tabulek v cílové databázi přes phpMyAdmin / Adminer, nebo přes SSH:

mariadb -u UZIVATEL -p -e "SHOW TABLES;" NAZEV_DATABAZE

Pro PostgreSQL:

psql -h localhost -U UZIVATEL -d NAZEV_DATABAZE -c "\dt"

MariaDB – obnova jedné tabulky

Extrahujte konkrétní tabulku ze SQL dumpu

Soubor zálohy obsahuje pro každou tabulku blok začínající příkazem CREATE TABLE, následovaný daty v INSERT INTO. Postup závisí na velikosti souboru:

  • Pro menší zálohy (do desítek MB) otevřete soubor v textovém editoru (například nano, vim, nebo lokální editor) a zkopírujte celý blok dané tabulky do samostatného souboru tabulka.sql.
  • Pro větší zálohy (stovky MB až GB) je textový editor pomalý nebo nezvládá soubor otevřít. Použijte příkaz sed, který extrahuje blok tabulky podle komentářů, které mariadb-dump přidává automaticky:
sed -n '/-- Table structure for table .NAZEV_TABULKY./,/-- Table structure for table /p' zaloha.sql > tabulka.sql

Kde NAZEV_TABULKY je název tabulky, kterou chcete vytáhnout (například wp_posts). Výsledný soubor tabulka.sql bude obsahovat CREATE TABLE i všechna data tabulky.

Importujte tabulku do databáze

Import probíhá stejně jako u celé databáze:

mariadb -u UZIVATEL -p NAZEV_DATABAZE < tabulka.sql

Pozor: Pokud tabulka v cílové databázi již existuje, příkaz CREATE TABLE v souboru může selhat („Table already exists“). V takovém případě nejprve cílovou tabulku smažte (DROP TABLE NAZEV_TABULKY; v phpMyAdmin nebo Admineru), nebo z extrahovaného souboru ručně odstraňte CREATE TABLE blok a ponechte jen INSERT INTO řádky – pak se data připojí ke stávající tabulce (pozor na duplicitní primární klíče).

PostgreSQL – obnova jedné tabulky

PostgreSQL má pro tento účel vestavěný nástroj pg_restore s přepínačem --table, který funguje na custom dump (formát z pg_dump -Fc). To je výrazně jednodušší než ruční extrakce přes sed. Pokud máte ale jen plain SQL dump, lze použít i sed, jen s jiným patternem.

Varianta A – Custom dump (doporučeno):

Pokud máte zálohu ve formátu custom dump (typicky soubor .dump vytvořený přes pg_dump -Fc), obnovte jednu tabulku přímo přes pg_restore:

pg_restore -h localhost -U UZIVATEL -d NAZEV_DATABAZE --table=NAZEV_TABULKY zaloha.dump

Přepínač --table říká pg_restore, aby z dumpu obnovil pouze danou tabulku se vším potřebným (struktura, data, indexy). Lze ho zkombinovat s --data-only (pouze data, bez CREATE TABLE) nebo --clean (před importem cílovou tabulku smazat):

pg_restore -h localhost -U UZIVATEL -d NAZEV_DATABAZE --clean --table=NAZEV_TABULKY zaloha.dump

Varianta B – Plain SQL dump:

Pokud máte zálohu jako plain SQL (například z /root/backup nebo z pg_dump bez -Fc), pg_restore ji nepřijme. Postup je analogický k MariaDB, ale sed musí použít jiný pattern – pg_dump přidává komentáře ve formátu -- Name: NAZEV; Type: TABLE; Schema: public;:

sed -n '/-- Name: NAZEV_TABULKY; Type: TABLE/,/-- Name: .*; Type: /p' zaloha.sql > tabulka.sql

PostgreSQL dump používá pro data formát COPY ... FROM stdin; (ne INSERT INTO jako MariaDB), takže výsledný tabulka.sql bude obsahovat CREATE TABLE blok plus COPY blok s daty.

3. Importujte tabulku do databáze (varianta B):

psql -h localhost -U UZIVATEL -d NAZEV_DATABAZE < tabulka.sql

Pozor: Stejně jako u MariaDB, pokud tabulka v cílové databázi existuje, CREATE TABLE selže. Před importem ji smažte přes DROP TABLE NAZEV_TABULKY; v Admineru, nebo z extrahovaného souboru ručně odstraňte CREATE TABLE blok a ponechte jen COPY ... FROM stdin; blok. Pozor na cizí klíče (foreign keys) – pokud tabulka odkazuje na jiné tabulky, postup nemusí stačit a je třeba obnovit i závislé objekty.

Řešení problémů

Velký dump přes webové rozhraní skončí chybou nebo timeoutem

Symptom: Při exportu velké databáze (stovky MB) přes phpMyAdmin (MariaDB) nebo Adminer (MariaDB i PostgreSQL) prohlížeč hlásí timeout, chybu 504 Gateway Timeout, nebo se proces přeruší uprostřed.

Příčina: Webové nástroje běží na PHP a mají limity na dobu zpracování skriptu (typicky 60 nebo 300 sekund). Pro velkou databázi nestihne export dokončit.

Řešení: Použijte zálohu přes SSH, která limity nemá. Pro MariaDB příkaz mariadb-dump, pro PostgreSQL pg_dump -h localhost (viz Vytvoření čerstvého dumpu MariaDB nebo MySQL a Vytvoření čerstvého dumpu PostgreSQL).

Ve VPS Centru V3 můžete také použít akci Stáhnout jako SQL přímo v sekci Databáze – ta zpracovává export na serveru bez PHP limitů. Alternativně v phpMyAdminu nebo Admineru zvolte Vlastní export a v dropdownu komprese vyberte gzipped – komprimovaný výstup je menší a stihne se dokončit dřív.

Import velkého souboru selže s chybou o ztrátě připojení

Symptom (MariaDB): Import velkého souboru přes phpMyAdmin nebo příkaz mariadb < soubor.sql skončí hláškou ERROR 2006 (HY000): MySQL server has gone away nebo Lost connection to MySQL server.

Symptom (PostgreSQL): Import velkého souboru přes Adminer nebo příkaz psql < soubor.sql skončí hláškou typu server closed the connection unexpectedly nebo terminating connection due to statement timeout.

Příčina: SQL příkaz v zálohovacím souboru je větší než povolený limit serveru, nebo zpracování trvá déle než timeout. U MariaDB jde typicky o direktivu max_allowed_packet, u PostgreSQL o statement_timeout nebo idle_in_transaction_session_timeout. Často se to děje u tabulek s BLOB sloupci, velkými JSON daty nebo dlouhými hromadnými inserty.

Řešení pro MariaDB: Pro import přes SSH dočasně zvyšte limit příkazem:

mariadb -u UZIVATEL -p --max-allowed-packet=512M NAZEV_DATABAZE < zaloha.sql

Řešení pro PostgreSQL: Pro import přes SSH dočasně zvyšte timeout proměnnou prostředí:

PGOPTIONS="-c statement_timeout=0" psql -h localhost -U UZIVATEL NAZEV_DATABAZE < zaloha.sql

Hodnota 0 zakáže timeout úplně. Alternativně lze použít custom dump a pg_restore, který lépe zvládá velké datové sady (importuje po jednotlivých objektech, ne jako jeden velký skript):

pg_restore -h localhost -U UZIVATEL -d NAZEV_DATABAZE zaloha.dump

Pokud problém přetrvává, kontaktujte podporu – limity lze zvýšit na úrovni serveru.

Při importu chybí stored procedures, funkce nebo triggery

Symptom: Po importu chybí v databázi uložené procedury, funkce nebo triggery, které byly v originální databázi.

Příčina (MariaDB): Defaultní mariadb-dump ukládá pouze tabulky a data. Stored procedures, funkce a triggery se musí explicitně zahrnout přepínači.

Řešení pro MariaDB: Při exportu přes SSH použijte:

mariadb-dump --routines --triggers --events -u UZIVATEL -p NAZEV_DATABAZE > zaloha.sql

Pokud zálohujete přes phpMyAdmin, ve Vlastním exportu v sekci Object creation options zaškrtněte Add CREATE PROCEDURE / FUNCTION a Add CREATE TRIGGER.

PostgreSQL: pg_dump ukládá funkce, triggery a stored procedures standardně – pokud něco chybí, problém je typicky jinde (například chybějící extensions, custom typy, nebo objekty v jiném schématu než public). Zkontrolujte, že dump obsahuje extensions:

grep "CREATE EXTENSION" zaloha.sql

A že importujete do databáze, kde má uživatel právo extensions vytvořit (typicky vyžaduje superuser nebo CREATEROLE).

Peer authentication failed při pg_dump nebo psql

Symptom: Při spuštění pg_dump nebo psql přes SSH dostanete chybovou hlášku:

pg_dump: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL:  Peer authentication failed for user "UZIVATEL"

Příčina: PostgreSQL ve výchozím nastavení používá peer authentication pro připojení přes lokální Unix socket. To znamená, že Linux uživatel se musí jmenovat stejně jako PostgreSQL uživatel. Pokud jste přihlášeni jako root (nebo libovolný jiný Linux uživatel) a snažíte se přihlásit do PostgreSQL pod jiným jménem, peer auth selže. MariaDB tímto problémem netrpí, protože používá unix_socket plugin, který rootu povolí přihlášení bez hesla.

Řešení 1 (doporučeno): Přidejte přepínač -h localhost, který přinutí PostgreSQL k autentizaci přes TCP s heslem:

pg_dump -h localhost -U UZIVATEL NAZEV_DATABAZE > zaloha.sql

Po spuštění budete vyzváni k zadání hesla databázového uživatele (najdete v aktivačním e-mailu k databázi).

Řešení 2 (pro root, bez hesla): Použijte systémového uživatele postgres, který má v PostgreSQL superuser práva:

sudo -u postgres pg_dump NAZEV_DATABAZE > zaloha.sql

Tady peer auth funguje, protože Linux uživatel postgres se shoduje s PostgreSQL superuserem postgres.

Po importu PostgreSQL zálohy chybí oprávnění nebo schémata

Symptom: Aplikace po obnově PostgreSQL databáze hlásí chyby typu permission denied nebo nenalezené tabulky.

Příčina: Defaultní pg_dump neukládá role a oprávnění mimo aktuální databázi. Při obnově do nové databáze s jiným uživatelem mohou chybět GRANT záznamy.

Řešení: Při exportu PostgreSQL přidejte přepínače --no-owner a --no-privileges pro přenositelný dump:

pg_dump -h localhost -U UZIVATEL --no-owner --no-privileges NAZEV_DATABAZE > zaloha.sql

Po importu nastavte oprávnění ručně podle potřeb aplikace.

Chyba „Unknown server host“ při importu .sql souboru

Symptom: Při spuštění mariadb -u UZIVATEL -p NAZEV_DATABAZE < zaloha.sql (nebo opačně) dostanete chybovou hlášku typu:

ERROR 2005 (HY000) at line X: Unknown server host 'NĚJAKÝ_NÁHODNÝ_ŘETĚZEC' (-5)

Příčina: Importujete dump nesprávným klientem – například PostgreSQL dump (vytvořený přes pg_dump) se snažíte importovat klientem mariadb, nebo naopak MariaDB dump posíláte do psql. Klient narazí na lomítkovou direktivu z druhé databáze (například \restrict v PostgreSQL dumpech nebo \! v MariaDB) a interpretuje ji jako svou interní direktivu pro připojení k jinému serveru. Hodnotu za direktivou pak považuje za hostname.

Řešení: Ověřte typ dumpu a použijte odpovídajícího klienta

Pro identifikaci, jakého typu dump je:

head -5 zaloha.sql
  • Pokud začíná -- MySQL dump nebo -- MariaDB dump → importujte přes mariadb:
mariadb -u UZIVATEL -p NAZEV_DATABAZE < zaloha.sql
psql -h localhost -U UZIVATEL NAZEV_DATABAZE < zaloha.sql

Typickým zdrojem této chyby jsou automatické zálohy z /root/backup – pokud má klient na serveru jak MariaDB, tak PostgreSQL databáze, dumpy obou se ukládají do stejné struktury složek (každá databáze ale ve své vlastní složce podle názvu). Pro jistotu rozlišení slouží identifikátor typu databáze v názvu souboru: mdb pro MariaDB / MySQL, pgs pro PostgreSQL.

Lokální zálohy na VPS chybí

Symptom: Očekáváte denní automatickou lokální zálohu v adresáři /root/backup, ale soubory tam nejsou nebo jsou zastaralé.

Příčina: Závisí na verzi VPS Centra:

  • VPS Centrum V3 – automatické zálohy lze klientem vypnout v nastavení úložiště. Pokud chybí, je možné, že je zálohování vypnuté nebo má nestandardní frekvenci.
  • VPS Centrum V2 – automatické denní a týdenní zálohy databází běží vždy a klient je nemůže vypnout. Pokud chybí, jde o technický problém serveru.

Řešení pro VPS Centrum V3: Otevřete Zálohování > Úložiště a automatické zálohování v levém panelu VPS Centra, zkontrolujte, že je úložiště Lokální disk zapnuté, a ověřte nastavenou frekvenci. Pokud máte větší počet domén a chcete zálohovat všechny do lokálního úložiště, ve V3 lze nastavit hromadně přes „Automaticky použít pro nové domény“.

Řešení pro VPS Centrum V2: Protože lokální automatické zálohy nelze klientem ovlivnit, jejich chybějící přítomnost obvykle indikuje technický problém serveru. Ve V2 si můžete přidat další úložiště (FTP nebo Dropbox) pro vlastní zálohy přes per-doménovou cestu Nastavení > Zálohování (třetí tlačítko v horní liště Nastavení), ale lokální dumpy v /root/backup odtud nezapnete. V tomto případě kontaktujte naši podporu – prověříme stav zálohovacího procesu.

Po přenosu databáze se rozsypaly české znaky

Symptom: Po přenosu databáze z jiného hostingu se na webu nebo v phpMyAdminu místo českých znaků (á, č, ž, ř) zobrazují podivné dvojice znaků, například á, ž nebo é.

Příčina: Nesouhlasí znaková sada (charset) a collation mezi původní a cílovou databází. Dump vznikl v jednom kódování a naimportoval se do databáze s jiným kódováním, takže se bajty přečetly špatně. Plnou podporu češtiny a dalších znaků má kódování utf8mb4; problém typicky nastane, když původní hosting používal starší kódování nebo když export kódování nedeklaroval.

Řešení: Klíčové je, aby cílová databáze u Váš Hosting používala kódování utf8mb4. Váš Hosting ho při zakládání databáze nabízí jako výchozí („nejlepší“) volbu, takže ho stačí ponechat. Při importu přes phpMyAdmin nebo Adminer se UTF-8 použije automaticky. Při importu přes SSH vynuťte kódování připojení, aby se data přečetla správně:

mariadb --default-character-set=utf8mb4 -u UZIVATEL -p NAZEV_DATABAZE < zaloha.sql

Pokud jsou znaky rozsypané i po importu, vznikl problém už při exportu u původního poskytovatele – dump se vytvořil v jiném kódování, než v jakém jsou data uložená. Vyexportujte zdroj znovu v UTF-8 (u mariadb-dump nebo mysqldump přepínačem --default-character-set=utf8mb4, v phpMyAdminu ponechte při exportu výchozí kódování utf-8), cílovou databázi vyprázdněte a import zopakujte.


Pokud váš problém v seznamu výše není, nebo se vám ho nedaří vyřešit, kontaktujte naši podporu – pomůžeme s diagnostikou i s konkrétní obnovou dat.


Chcete mít zálohy řešené automaticky a bez starostí? U našich managed serverů se o pravidelné zálohy databází i kompletní správu serveru postaráme za vás – od konfigurace přes monitoring až po obnovu v případě potřeby.

Pomohl vám tento článek?

Podobné články

Nápověda