Ana içeriğe geç
Kategoriye Dön

Sunucu Taşıma Rehberi

Mevcut sunucunuzdaki verileri, web sitelerini ve uygulamaları REXE sunucusuna güvenli şekilde taşıma adımları ve en iyi uygulamalar.

Okuma süresi: 15 dk Genel Bilgiler
sunucu taşımamigrasyonveri transferiweb sitesi taşımayedeklemersync

İçindekiler

Giriş

Sunucu taşıma (migrasyon), mevcut sunucunuzdaki tüm verileri, uygulamaları ve yapılandırmaları yeni sunucuya aktarma sürecidir. Doğru planlama ile kesinti süresini minimize edebilir ve veri kaybını önleyebilirsiniz.

Taşıma Öncesi Hazırlık

1. Envanter Çıkarma

Taşımadan önce mevcut sunucudaki her şeyi belgeleyin:

hljs bash
# Çalışan servisler
systemctl list-units --type=service --state=running

# Kurulu paketler
dpkg --get-selections > /tmp/packages.txt  # Debian/Ubuntu
rpm -qa > /tmp/packages.txt               # RHEL/CentOS

# Açık portlar
ss -tlnp

# Crontab
crontab -l > /tmp/crontab_backup.txt

# Disk kullanımı
df -h
du -sh /var/www/ /home/ /etc/ /opt/

# Veritabanları
mysql -e "SHOW DATABASES;"

2. Yedek Alma

hljs bash
# Tam sistem yedeği
tar -czf /tmp/full_backup_$(date +%Y%m%d).tar.gz \
    --exclude=/proc --exclude=/sys --exclude=/dev \
    --exclude=/tmp --exclude=/run /

# Web dosyaları
tar -czf /tmp/www_backup.tar.gz /var/www/

# Veritabanı yedeği
mysqldump --all-databases -u root -p > /tmp/all_databases.sql

# Yapılandırma dosyaları
tar -czf /tmp/etc_backup.tar.gz /etc/

3. DNS TTL'yi Düşürme

Taşımadan 24-48 saat önce DNS TTL değerini düşürün:

Mevcut TTL: 86400 (24 saat)
Yeni TTL: 300 (5 dakika)

Bu sayede DNS değişikliği hızlı yayılır ve kesinti süresi azalır.

Taşıma Yöntemleri

Yöntem 1: rsync ile Canlı Taşıma (Önerilen)

hljs bash
# Yeni sunucudan eski sunucuya bağlan ve dosyaları çek
rsync -avz --progress \
    -e "ssh -p 22" \
    root@eski_sunucu_ip:/var/www/ \
    /var/www/

# Yapılandırma dosyaları
rsync -avz --progress \
    -e "ssh -p 22" \
    root@eski_sunucu_ip:/etc/nginx/ \
    /etc/nginx/

# Veritabanı
rsync -avz --progress \
    -e "ssh -p 22" \
    root@eski_sunucu_ip:/tmp/all_databases.sql \
    /tmp/

Yöntem 2: SCP ile Dosya Transferi

hljs bash
# Tek dosya transferi
scp root@eski_sunucu_ip:/tmp/backup.tar.gz /tmp/

# Dizin transferi
scp -r root@eski_sunucu_ip:/var/www/ /var/www/

Yöntem 3: Snapshot/Görüntü Taşıma

Eğer aynı sanallaştırma platformundaysanız (örn: KVM → KVM):

  1. Eski sunucunun snapshot'ını alın
  2. Snapshot'ı yeni sunucuya aktarın
  3. Yeni sunucuyu snapshot'tan başlatın

Uygulama Bazlı Taşıma

Web Sitesi (Nginx/Apache)

hljs bash
# 1. Web dosyalarını taşı
rsync -avz root@eski_ip:/var/www/ /var/www/

# 2. Nginx yapılandırmasını taşı
rsync -avz root@eski_ip:/etc/nginx/sites-available/ /etc/nginx/sites-available/

# 3. SSL sertifikalarını taşı
rsync -avz root@eski_ip:/etc/letsencrypt/ /etc/letsencrypt/

# 4. Nginx'i yeniden başlat
nginx -t && systemctl restart nginx

Veritabanı (MySQL/MariaDB)

hljs bash
# Eski sunucuda: dump al
mysqldump --all-databases -u root -p > /tmp/all_db.sql

# Yeni sunucuda: import et
mysql -u root -p < /tmp/all_db.sql

# Kullanıcı yetkilerini kontrol et
mysql -e "SELECT user, host FROM mysql.user;"

Docker Uygulamaları

hljs bash
# Eski sunucuda: image'ları kaydet
docker save myapp:latest | gzip > /tmp/myapp.tar.gz

# Yeni sunucuya aktar
rsync -avz root@eski_ip:/tmp/myapp.tar.gz /tmp/

# Yeni sunucuda: image'ı yükle
docker load < /tmp/myapp.tar.gz

# Volume'ları taşı
docker run --rm -v myvolume:/data -v /tmp:/backup \
    alpine tar czf /backup/volume_backup.tar.gz /data

DNS Geçişi

Geçiş Adımları

  1. Yeni sunucuyu tamamen hazırlayın ve test edin
  2. DNS A kaydını yeni IP'ye güncelleyin
  3. TTL süresini bekleyin (önceden 300'e düşürdüyseniz 5 dakika)
  4. Yeni sunucunun çalıştığını doğrulayın
  5. Eski sunucuyu birkaç gün daha aktif tutun (geri dönüş için)
hljs bash
# DNS yayılımını kontrol et
nslookup domain.com 8.8.8.8
nslookup domain.com 1.1.1.1

# Hangi IP'ye gidildiğini kontrol et
curl -I https://domain.com

Taşıma Sonrası Kontroller

hljs bash
# Tüm servislerin çalıştığını kontrol et
systemctl status nginx mysql php8.2-fpm

# Web sitesini test et
curl -I https://domain.com

# Veritabanı bağlantısını test et
mysql -u kullanici -p -e "SELECT 1;"

# SSL sertifikasını kontrol et
curl -vI https://domain.com 2>&1 | grep -E '(SSL|expire|issuer)'

# E-posta gönderimini test et
echo "Test" | mail -s "Test" test@example.com

# Logları kontrol et
tail -f /var/log/nginx/error.log

Taşıma sonrası eski sunucuyu hemen kapatmayın. En az 1 hafta aktif tutun. DNS önbellekleme nedeniyle bazı kullanıcılar hala eski sunucuya gelebilir.

Sonuç

Başarılı bir sunucu taşıması için planlama kritiktir. Taşıma öncesi tam yedek alın, DNS TTL'yi düşürün ve yeni sunucuyu canlıya almadan önce kapsamlı test yapın. Taşıma sırasında sorun yaşarsanız teknik destek ekibimiz yardımcı olabilir.