Jak migrovat web na VPS: Průvodce bez výpadku

migrace VPS rsync MySQL DNS WordPress

Migrace webu na nový VPS server je jeden z nejrizikovějších provozních úkonů — pokud se udělá špatně, výsledkem je výpadek, ztráta dat nebo rozsynchronizovaná databáze. Pokud se udělá správně, uživatelé si vůbec nevšimnou, že server přesunuli. Tento průvodce vás provede kompletním procesem krok za krokem.

Fáze 1: Příprava před migrací

Uspěchaná migrace je špatná migrace. Připravte si vše, než sáhnete na produkci:

Checklist před spuštěním

Kritický krok: Snižte DNS TTL min. 24 hodin předem. Pokud to uděláte těsně před migrací, část uživatelů bude ještě hodiny ukazovat na starý server s odlišnou databází — a ty databáze se rozejdou.

Fáze 2: Přesun souborů pomocí rsync

rsync je standardní nástroj pro efektivní přesun souborů — kopíruje pouze změněné soubory, podporuje delta přenosy a zachovává oprávnění. Pro migraci webu je vždy lepší než SCP nebo FTP.

Základní příkaz pro přesun webových souborů ze starého serveru na nový:

rsync -avz --progress \
-e "ssh -p 22" \
/var/www/html/vas-web/ \
user@NOVA_IP:/var/www/html/vas-web/

Přepínač -a (archive) zachovává oprávnění, symbolicke linky a časy souborů. Přepínač -z komprimuje data přes síť. Pro velké weby (stovky MB) doporučujeme přidat --bwlimit=10000 pro omezení přenosové rychlosti — zabrání zahlcení produkčního serveru.

Přírůstkový rsync těsně před přepnutím

Poprvé rsync spustíte hodiny nebo dny před migrací — přesune bulk dat. Těsně před přepnutím DNS spustíte rsync znovu. Druhý rsync je výrazně rychlejší (kopíruje jen soubory změněné od prvního běhu) a zajistí, že nový server má nejnovější stav souborů.

Fáze 3: Export a import databáze

Databáze je nejkritičtější část migrace. Ztráta nebo nekonzistence databáze je nejčastější příčina problémů po migraci.

Export MySQL/MariaDB pomocí mysqldump

mysqldump -u root -p \
--single-transaction \
--routines \
--triggers \
--hex-blob \
nazev_databaze > backup_$(date +%Y%m%d_%H%M).sql

Přepínač --single-transaction je klíčový pro InnoDB tabulky — provede export bez zamykání tabulek, takže web může fungovat i během exportu. Pro MyISAM tabulky toto nefunguje a musíte použít --lock-tables.

Import na novém serveru

# Vytvoření databáze a uživatele
mysql -u root -p -e "CREATE DATABASE nazev_databaze CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mysql -u root -p -e "CREATE USER 'db_user'@'localhost' IDENTIFIED BY 'silne_heslo';"
mysql -u root -p -e "GRANT ALL ON nazev_databaze.* TO 'db_user'@'localhost';"

# Import dat
mysql -u root -p nazev_databaze < backup_20260118_0200.sql

Fáze 4: Konfigurace nového serveru

Soubory a databáze jsou přesunuty — nyní musíte nový server nastavit identicky jako starý.

PHP verze a rozšíření

Zkontrolujte verzi PHP na starém serveru (php --version) a nainstalujte stejnou na novém. Rozdíl verze PHP je nejčastější příčina "funguje na starém, nefunguje na novém". Zkontrolujte také PHP rozšíření (php -m) — zejména mbstring, curl, gd, intl a zip.

WordPress specifika

Ověření před přepnutím DNS

Otestujte web na novém serveru přes /etc/hosts — dočasně přidejte záznam:

NOVA_IP vas-web.cz www.vas-web.cz

Tím váš počítač bude přistupovat na nový server, i když DNS ještě ukazuje na starý. Projděte celý web — přihlášení, formuláře, platební brána, admin panel. Pokud vše funguje, jste připraveni přepnout DNS.

Fáze 5: Blue-Green strategie pro kritické weby

Pro weby s vysokou návštěvností nebo e-shopy doporučujeme blue-green deployment. Princip je jednoduchý: oba servery (starý = blue, nový = green) běží paralelně. Přepnutí je jen změna DNS — pokud cokoliv selže, stačí DNS vrátit zpět.

Klíčový detail: v době přepnutí DNS musíte zastavit zápisy do staré databáze (přepnout web do maintenance módu) a provést finální export-import. Bez toho se databáze rozejdou.

Postup blue-green přepnutí: 1) Zapněte maintenance mód na starém serveru. 2) Spusťte finální mysqldump. 3) Importujte do nové DB. 4) Spusťte finální rsync. 5) Ověřte nový server přes /etc/hosts. 6) Změňte DNS A záznamy. 7) Čekejte na propagaci TTL. 8) Ověřte přes veřejný DNS. 9) Vypněte maintenance mód.

Fáze 6: Rollback plán

Vždy mějte připravený rollback — postup pro návrat k původnímu serveru, pokud migrace selže. Starý server nechte běžet minimálně 48 hodin po migraci. Pokud najdete problém na novém serveru, stačí DNS vrátit na starou IP — a máte čas problém v klidu opravit.

Po úspěšné 48hodinové verifikaci na novém serveru teprve ruší starý VPS.

Exascale.cz: Podpora při migraci

Migrace webu je technicky náročná a chybně provedená migrace může znamenat výpadek v hodinách. Tým Exascale.cz poskytuje asistenci při migraci — od technické konzultace po aktivní pomoc s přenosem dat. Pokud si nejste jisti jakýmkoliv krokem, kontaktujte nás předem, ne až při výpadku.

VPS s migrační asistencí

Exascale.cz pomůže s migrací webu na nový VPS — technická podpora v češtině, NVMe storage a KVM virtualizace v českém datacentru.

Vybrat VPS →