Vietnes pārcelšana uz jaunu VPS: rsync un datubāze

20 Apr 2026 Autors: Olga Naumova

Vietnes pārcelšana uz jaunu serveri sastāv no trim lietām: nokopēt failus, pārcelt datubāzi un pārslēgt domēnu. Ja visu darīsiet pēc kārtas un pārbaudīsiet vietni pirms DNS maiņas, migrācija noritēs gandrīz bez dīkstāves.

Migrācijas plāns

  1. Sagatavot jauno VPS (tīmekļa serveris, PHP, datubāze).
  2. Nokopēt vietnes failus ar rsync.
  3. Pārcelt datubāzi ar dump failu.
  4. Pārbaudīt vietni jaunajā serverī pēc IP adreses.
  5. Pārslēgt DNS un sagaidīt izplatīšanos.

1. solis. Jaunā servera sagatavošana

Uzstādiet to pašu vidi, kas ir vecajā serverī (piemēram, LEMP), un izveidojiet tukšu datubāzi ar lietotāju. Iestatiet SSH piekļuvi starp serveriem — ērti ģenerēt atslēgu vecajā serverī un pievienot to jaunajam:

ssh-keygen -t ed25519
ssh-copy-id user@NEW_SERVER_IP

2. solis. Failu kopēšana ar rsync

rsync pārceļ tikai mainītos failus un saglabā tiesības. Palaidiet to no vecā servera:

rsync -avz --progress /var/www/example.com/ \
  user@NEW_SERVER_IP:/var/www/example.com/

Karogi: -a — saglabāt tiesības, īpašniekus un simboliskās saites, -z — saspiešana kanālā, -v — detalizēts izvads. Slīpsvītra avota ceļa beigās nozīmē «kataloga saturs».

Lielai vietnei veiciet iepriekšēju sinhronizāciju laikus, bet gala sinhronizāciju — tieši pirms pārslēgšanas, lai panāktu svaigākās izmaiņas.

3. solis. Datubāzes pārcelšana

Vecajā serverī izveidojiet dump failu. MySQL un MariaDB gadījumā:

mysqldump --single-transaction -u root -p app_db | gzip > app_db.sql.gz

Nokopējiet dump failu uz jauno serveri:

rsync -avz app_db.sql.gz user@NEW_SERVER_IP:/tmp/

Jaunajā serverī importējiet to:

gunzip < /tmp/app_db.sql.gz | mysql -u root -p app_db

PostgreSQL komandas ir līdzīgas:

pg_dump -Fc app_db > app_db.dump
# jaunajā serverī:
pg_restore -d app_db --clean app_db.dump

4. solis. Vietnes konfigurācijas labošana

Atjauniniet datubāzes savienojuma rindu lietotnes konfigurācijā (piemēram, wp-config.php, .env) — hosts, datubāzes nosaukums, lietotājs, parole. Pārbaudiet katalogu tiesības:

sudo chown -R www-data:www-data /var/www/example.com

5. solis. Pārbaude pirms DNS pārslēgšanas

Nemainot DNS, pārbaudiet vietni jaunajā serverī, aizstājot domēnu savā datorā failā hosts:

NEW_SERVER_IP  example.com

(Linux un macOS sistēmā tas ir /etc/hosts.) Atveriet vietni — ja viss strādā, var pārslēgt domēnu. Pēc pārbaudes rindu no hosts noņemiet.

6. solis. DNS pārslēgšana

Diennakti pirms pārcelšanas samaziniet A ieraksta TTL (piemēram, līdz 300 sekundēm) — tad pārslēgšanās izplatīsies ātrāk. Nomainiet A ierakstu uz jaunā servera IP un sekojiet līdzi:

dig +short example.com

Kamēr DNS atjaunojas pie pakalpojumu sniedzējiem, daļa trafika vēl iet uz veco serveri — tāpēc neizslēdziet to vismaz diennakti.

Kontrolsaraksts pēc pārcelšanas

Pārbaude
Vietne atveras pēc domēna, kad DNS nomainīts
Datubāze pieslēgta žurnālos nav savienojuma kļūdu
Failu tiesības chown www-data, augšupielādes strādā
SSL izdot certbot sertifikātu no jauna jaunajā serverī
Cron uzdevumi crontab jāpārceļ manuāli

Biežākie jautājumi

Kā pārcelt vietni bez dīkstāves? Sinhronizējiet failus un datubāzi laikus, pārbaudiet vietni caur hosts, tad veiciet gala sinhronizāciju un pārslēdziet DNS. Veco serveri turiet ieslēgtu vēl diennakti.

Kāpēc rsync nesaglabā tiesības? Palaidiet to ar karogu -a (arhīva režīms) un no lietotāja ar pietiekamām tiesībām; pilnai īpašnieku saglabāšanai var būt vajadzīgs sudo un --numeric-ids.

Vai SSL sertifikāts ir jāpārceļ? Vienkāršāk to izdot no jauna ar certbot jaunajā serverī pēc DNS pārslēgšanas — tas aizņem minūti.

Kāpēc pēc pārcelšanas daļa apmeklētāju redz veco vietni? DNS tiek kešots pie pakalpojumu sniedzējiem atbilstoši TTL. Samaziniet TTL laikus un pagaidiet dažas stundas pēc ieraksta maiņas.

Jaunajam serverim izvēlieties konfigurāciju ar rezervi: skatiet VPS serveru noma, bet CMS vietnēm — WordPress VPS.

Olga Naumova