
Minecraft Dünyasını Başka Sunucuya Taşıma
Minecraft haritanızı, oyuncu envanterlerini ve yapılandırma dosyalarını veri kaybı olmadan yeni bir sunucuya aktarmanın yöntemlerini öğrenin.
Minecraft dünyasını başka sunucuya taşıma işlemi; harita kayıtlarını, oyuncu envanterlerini ve yapılandırma dosyalarını yeni bir ortama aktarma sürecidir. Süreç, mevcut sunucuyu güvenli biçimde durdurup ilgili dizinleri arşivlemeyi ve yeni makinede aynı çalışma ortamını kurmayı gerektirir. Altyapınızı güçlendirmek ve gecikme sürelerini düşürmek istiyorsanız, dünyanızı taşıyabileceğiniz Minecraft sunucu paketleri arasından ihtiyacınıza uygun bir donanımı tercih edebilirsiniz.
Kısa cevap:
- Mevcut sunucunuzda dünya kaydını tamamlamak için konsoldan kaydetme komutlarını verin ve sunucu sürecini durdurun.
- Sunucu mimarinize göre dünya klasörlerini, oyuncu verilerini, eklenti, mod ve yapılandırma dosyalarını tek bir arşivde toplayın.
- Arşiv dosyasını SCP veya rsync protokolleri üzerinden yeni sunucunuza aktarın.
- Yeni sunucuda Java sürümü, sunucu yazılımı ve dosya sahiplik izinlerini doğruladıktan sonra dünyayı başlatın.
Minecraft Sürümünü ve Sunucu Yazılımını Eşleştirme
Başarılı bir taşıma operasyonunun ilk kuralı, hedef sunucudaki çalışma ortamının kaynak sunucuyla tam uyumlu olmasıdır. Kaynak sunucuda kullanılan Minecraft sürümü ile hedef sunucunun sürümü birebir örtüşmelidir. Sürüm yükseltmeleri taşıma ile aynı anda yapılmamalıdır. Önce mevcut sürüm taşınmalı, sunucunun beklenen şekilde açıldığı doğrulandıktan sonra sürüm yükseltme adımı planlanmalıdır. Farklı sürümler arasında doğrudan dosya taşımak dünya bloklarının bozulmasına (chunk corruption) yol açabilir.
Sunucu yazılımının (server jar) türü, dosya hiyerarşisini doğrudan belirler. Resmi Vanilla sunucularda tüm boyutlar tek bir ana klasör içinde yer alır. Nether boyutu DIM-1, End boyutu ise DIM1 alt dizinlerinde tutulur. Paper, Purpur veya Spigot gibi optimize edilmiş yazılımlar ise bu boyutları ana dizinden ayırır. Bu yazılımlarda world, world_nether ve world_the_end adında üç bağımsız klasör oluşur. Dolayısıyla Vanilla ortamından Paper altyapısına geçerken klasörlerin doğru konumlandırılması gerekir.
| Sunucu Türü | Boyut Dizin Yapısı | Java Uyumluluğu | Tipik Kullanım |
|---|---|---|---|
| Vanilla | world/DIM-1, world/DIM1 |
Sürüme göre Java 8 / 16 / 17 / 21 | Sade, modifikasyonsuz oyun |
| Paper / Purpur | world, world_nether, world_the_end |
Sürüme göre Java 17 / 21 | Yüksek optimizasyon, eklenti desteği |
| Fabric | world/DIM-1, world/DIM1 |
Sürüme göre Java 8 / 16 / 17 / 21 | Hafif mod paketleri, teknik sunucular |
| Forge / NeoForge | world/DIM-1, world/DIM1 |
Sürüme göre Java 8 / 16 / 17 / 21 | Kapsamlı mod paketleri |
Yazılım mimarinizi seçerken doğru Java sürümünün kurulu olduğundan emin olmanız gerekir. Minecraft 1.16 ve öncesi Java 8, 1.17 Java 16, 1.18 ile 1.20.4 arası Java 17, 1.20.5 ve sonrası ise Java 21 gerektirir. Hedef sunucuda Java sürümünü doğrulamak için uçbirimden şu komutu çalıştırabilirsiniz:
java -version
Sunucu çekirdeğini yapılandırmak için sıfırdan bir ortam hazırlıyorsanız VDS ile oyun sunucusu kurma rehberi üzerindeki temel parametreleri inceleyebilirsiniz. Uyumsuz bir Java sürümü sunucunun hiç başlamamasına veya başlangıç aşamasında JVM çökme hatası vererek durmasına yol açar. Farklı sanallaştırma kaynaklarını kıyaslamak adına Türkiye VDS satın alma rehberi içeriğini de inceleyerek işlemci ve bellek planlamanızı yapabilirsiniz.
Donanım kaynaklarının yeterliliği de yazılım uyumu kadar kritiktir. Yetersiz bellek ayrıldığında Java sanal makinesi bellek yetersizliği hatası (OutOfMemoryError) vererek dünyayı kapatabilir. Bu nedenle başlangıç komut dosyasındaki -Xms ve -Xmx bayrakları yeni sunucunun RAM kapasitesine göre düzenlenmelidir.
Dünya, Oyuncu Verisi ve Yapılandırmaları Yedekleme
Taşıma öncesinde kaynak sunucuda veri kaybını önlemek için açık oturumların kapatılması ve açık dosyaların diske yazılması şarttır. Sunucu çalışırken alınan tutarsız kopyalar blok bozulmalarına ve veri kayıplarına yol açabilir.
Sunucuyu Güvenli Şekilde Durdurma
Sunucu konsoluna erişim sağlayarak arka plandaki yazma işlemlerini tamamlayın:
save-all
stop
Bu iki komut, RAM üzerinde bekleyen tüm dünya değişikliklerini diske yazar ve Java sürecini güvenli şekilde sonlandırır. Arka plandaki sürecin tamamen kapandığını doğrulamadan dosya kopyalama işlemine başlamayın. Sürecin kapanıp kapanmadığını Linux üzerinde sunucuyu çalıştıran gerçek servis kullanıcısını belirterek pgrep -u <kullanici_adi> java komutuyla veya ilgili servis yöneticisinin (systemd gibi) durumunu sorgulayarak kontrol edebilirsiniz.
Kritik Dosyaların Belirlenmesi
Eksiksiz bir taşıma işlemi için sunucu ana dizininden alınması gereken temel bileşenler şunlardır:
- Dünya Dizinleri: Kurulumunuza bağlı olarak
world,world_nether,world_the_enddizinleri veya özel olarak adlandırılmış dünya klasörleri (Vanilla altyapısında yalnızcaworld). - Oyuncu Kayıtları: Dünya klasörünün içindeki
playerdata(envanterler, deneyim puanları, koordinatlar),stats(oyun istatistikleri) veadvancements(başarımlar). - Sistem Listeleri:
ops.json,whitelist.json,banned-players.json,banned-ips.json. - Sunucu ve Eklenti Ayarları:
server.properties,bukkit.yml,spigot.yml,paper-global.ymlgibi yapılandırma dosyaları ileplugins,modsveconfigklasörleri.
Tüm bu dosyalara ek olarak, eğer sunucunuzda ikon tanımlıysa server-icon.png dosyasını da yedeğe dahil etmelisiniz. Kayıt dosyalarının eksik aktarılması oyuncuların eşyalarını kaybetmesine yol açabilir.
Verileri Arşivleme
Dosyaları yüzlerce küçük parça halinde ağ üzerinden aktarmak transfer süresini uzatır. Bu nedenle Linux ortamında tar aracını kullanarak sıkıştırılmış tek bir arşiv oluşturmak en pratik yaklaşımdır. Yedekleme komutunu çalıştırmadan önce sunucunuzda var olan dosya ve dizinleri belirlemelisiniz. Bulunmayan bir klasörü komuta eklemek arşivleme sürecinde hata almanıza neden olabilir:
tar -czvf minecraft_yedek.tar.gz <dunya_dizinleri> server.properties *.json *.yml plugins config
Komutta yer alan <dunya_dizinleri> kısmına server.properties dosyasındaki level-name parametresinde tanımlı ana dünya ve kullanılan diğer boyut/dünya dizinlerinin gerçek adları yazılmalıdır.
Eğer modlu bir sunucu kullanıyorsanız komuta mods dizinini de ekleyebilirsiniz. Bu komut; dünya verilerini, eklentileri, kök dizindeki ayar dosyalarını ve yapılandırma dizinlerini minecraft_yedek.tar.gz adında tek bir paket haline getirir.
Yedekleme dosyasını oluşturduktan sonra ls -lh minecraft_yedek.tar.gz komutunu çalıştırarak dosya boyutunun beklentinizle örtüştüğünü kontrol edin. Boş veya eksik bir arşiv paketi taşımayı başarısız kılacaktır.
Dosyaları Yeni Sunucuya Aktarma
Oluşturulan arşiv dosyasını hedef makineye taşırken güvenli ağ protokolleri kullanılır. İki Linux sunucu arasında doğrudan aktarım yapmak için rsync veya scp komutları tercih edilir.
Hedef makineye doğrudan bağlanmak için öncelikle Linux sunucuya SSH bağlantısı kurma adımlarını tamamlamış olmanız gerekir. Kaynak sunucu terminalinden hedef sunucuya aktarım başlatmak için aşağıdaki yöntemlerden birini kullanabilirsiniz.
SCP ile Dosya Aktarımı
Kaynak sunucunuzun terminaline şu komutu yazarak arşivi hedef sunucunun ilgili dizinine gönderebilirsiniz:
scp -P 22 minecraft_yedek.tar.gz root@yeni_sunucu_ip_adresi:/home/minecraft/
Komuttaki -P parametresi hedef sunucunun SSH portunu belirtir. Eğer varsayılan port 22 dışında bir port kullanıyorsanız bu değeri değiştirmelisiniz. Şifre doğrulamasının ardından aktarım süreci başlar ve transfer hızı konsolda görüntülenir.
Rsync ile Kesintisiz Aktarım
Büyük boyutlu dünyalarda bağlantı kopmalarına karşı rsync kullanmak daha avantajlıdır. Parametre olarak eklenen P bayrağı aktarım sırasında kısmen indirilen dosyayı korur; bağlantı koptuğunda aynı komut yeniden çalıştırılarak işlem baştan başlamak yerine kaldığı yerden devam ettirilebilir:
rsync -avzP -e 'ssh -p 22' minecraft_yedek.tar.gz root@yeni_sunucu_ip_adresi:/home/minecraft/
Bu komuttaki P parametresi ilerleme çubuğunu gösterir ve aktarım yarıda kaldığında yeniden başlatma imkanı verir. Alternatif dosya transfer teknikleri ve büyük boyutlu arşiv taşıma prensipleri hakkında daha fazla detaya sunucudan sunucuya dosya taşıma yöntemleri içeriğinden erişebilirsiniz.
Arşivi Yeni Sunucuda Açma
Arşivi açmadan önce hedef sunucudaki Minecraft sürecini tamamen durdurun. Hedef dizinde önceden oluşturulmuş varsayılan dünya klasörleri varsa, yeni dosyalarla çakışmaması ve eski harita parçalarının yeni dünyaya karışmaması için hedefteki tüm ilgili dünya dizinlerini yedekleyip çalışma alanından uzaklaştırın. Aşağıdaki komut varsayılan dünya klasörlerini (world, world_nether, world_the_end) taşır. level-name ayarını değiştirdiyseniz o dünya klasörünün adını da komuta eklemeniz gerekir:
cd /home/minecraft/
mkdir -p eski_dunya_yedekleri
mv world* eski_dunya_yedekleri/
# Taşımanın başarıyla tamamlandığı doğrulandıktan sonra arşiv açılmalıdır
tar -xzvf minecraft_yedek.tar.gz
Özel adlı dünyaları yedeklemek için mv world* eski_dunya_yedekleri/ komutundaki world* yerine level-name ile belirlenen ana dünya ve kullanılan diğer dünya veya boyut dizinlerinin gerçek adları yazılarak yedek konumuna taşınmalıdır. Arşiv temiz dizine açıldıktan sonra dizin içeriğini ls -la komutuyla kontrol ederek tüm klasörlerin eksiksiz çıkarıldığını teyit edin. Böylece eski dosyaların üzerine yazılması veya harita katmanlarının birbirine karışması önlenir.
Modları, Eklentileri ve Dosya İzinlerini Kontrol Etme
Taşınan sunucuda eklenti (plugin) veya mod bulunuyorsa, bu bileşenlerin çalışması için gereken bağımlılıklar gözden geçirilmelidir. Spigot veya Paper altyapısında plugins klasörü taşınırken, eklentilerin SQLite veya yerel dosya tabanlı veritabanı dosyalarının eksiksiz aktarıldığından emin olun. Eğer harici bir MySQL veya MariaDB sunucusu kullanılıyorsa, yeni sunucu IP adresinin bu veritabanına erişim yetkisi doğrulanmalıdır.
Modlu sunucularda (Forge veya Fabric) hem sunucuda hem de istemcide bulunması zorunlu olan modların sürüm uyumu denetlenmelidir. Yalnızca sunucu tarafında çalışan optimizasyon modlarının istemcide bulunması gerekmez. Ancak blok, eşya veya varlık ekleyen modlarda ve config dosyalarında oluşabilecek sürümsel farklar, oyuncuların bağlantı aşamasında uyumsuzluk hatası almasına neden olur.
Dosya izinleri, sunucunun çökmesine veya haritanın diske kaydedilememesine neden olan en yaygın problemlerden biridir. Sunucu sürecini çalıştıran kullanıcının (örneğin minecraft kullanıcısı) dosyalar üzerinde okuma ve yazma hakkı bulunmalıdır. Ancak tüm dosyalara genel çalıştırma izni vermek yerine dizin ve dosya izinleri ayrılmalıdır:
chown -R minecraft:minecraft /home/minecraft/
find /home/minecraft/ -type d -exec chmod 750 {} +
find /home/minecraft/ -type f ! -perm /111 -exec chmod 640 {} +
find /home/minecraft/ -type f -perm /111 -exec chmod 750 {} +
Bu yapılandırma, dizinleri gezinilebilir kılarken parola içeren yapılandırma dosyalarını diğer yerel kullanıcılardan korur; uzantısız başlatıcılar ve yerel Java ikili dosyaları dahil yürütme iznine sahip dosyaların izinlerini muhafaza eder. Yüksek oyuncu sayısı barındıran sunucularda güçlü işlemci performansı ve hızlı NVMe diskler tercih etmek, donanım kaynaklı yetersizliklerden doğabilecek gecikmeleri azaltır. Bu doğrultuda yüksek performanslı Minecraft sunucu altyapısı seçerek dünyanız için uygun çalışma ortamını oluşturabilirsiniz.
server.properties dosyası içerisindeki level-name parametresinin, taşıdığınız ana dünya klasörünün adıyla (world) birebir aynı olduğundan emin olun. Bu parametre farklı bir isim taşırsa, sunucu eski dünyayı görmezden gelerek sıfırdan yeni bir harita oluşturur.
Test Bağlantısı ve Geri Dönüş Planı Hazırlama
Tüm ayarlar tamamlandıktan sonra sunucuyu başlatma betiğiniz (start.sh) ile çalıştırın. Konsol çıktısını canlı takip etmek için aşağıdaki komutu kullanabilirsiniz:
tail -f logs/latest.log
Log ekranında Done! mesajını gördüğünüzde sunucu başarıyla ayağa kalkmış demektir. Bu aşamada sunucunun IP adresi üzerinden doğrudan bir istemci (client) ile oyuna giriş yapın.
Kontrol etmeniz gereken kritik test adımları şunlardır:
- Koordinatlarınızı kontrol edin ve yapıların eksiksiz yüklendiğini inceleyin.
- Envanter, Ender sandığı (Ender Chest) ve deneyim puanlarınızın yerinde olduğunu doğrulayın.
- Nether ve End portallarından geçiş yaparak boyutlar arası aktarımın düzgün işlediğini test edin.
- Eklenti komutlarının (
/plugins,/help) beklenen yanıtı verdiğini gözlemleyin.
Sunucunuz bir alan adına bağlıysa, oyuncuları yeni IP adresine yönlendirmek için A kaydını veya SRV kayıtlarını güncellemeniz gerekir. DNS kayıtlarının küresel olarak oturması internet servis sağlayıcılarına bağlı olarak birkaç saat sürebilir. Alan adı yönetim süreçleri için alan adı yönlendirme adımları rehberine göz atabilirsiniz.
Doğrulama adımlarını eksiksiz tamamladıktan sonra oyuncularınızı yeni IP adresine davet edebilir ve eski makinedeki servisleri kapatabilirsiniz. Olası bir aksilik durumunda hızlı geri dönüş yapabilmek için kaynak sunucudaki orijinal yedekleri en az 48 saat boyunca silmeden muhafaza edin.
Sık Sorulan Sorular
Taşımadan sonra oyuncuların envanterleri neden sıfırlandı?
Oyuncu envanterleri world/playerdata klasöründeki UUID tabanlı .dat dosyalarında saklanır. Sunucu server.properties dosyasında online-mode=true ayarından false değerine geçerse (veya tersi olursa), oyuncuların UUID değerleri değişir. Bu durum oyunun oyuncuları yeni bir profil gibi algılamasına ve envanterlerin boş görünmesine neden olur.
Vanilla dünyasını Paper sunucuya aktarırken nelere dikkat edilmeli?
Vanilla dünyalarındaki Nether (DIM-1) ve The End (DIM1) klasörleri tek bir world klasörü içindedir. Paper sunucu ilk kez başladığında bu boyutları otomatik olarak world_nether ve world_the_end dizinlerine dönüştürür. Taşıma öncesinde boyut dosyalarının doğru konumlarda bulunduğundan emin olunmalıdır.
Harita taşıma sonrası chunk sınırlarında bozulma olur mu?
Aynı oyun sürümü ve tohum (seed) korunduğunda bile dünya üreticisi (generator), üretim ayarları veya harita modları değiştiğinde chunk sınırlarında uyumsuzluk oluşabilir. Eski bir sürümden yeni bir sürüme geçildiğinde veya harita oluşturucu yapılandırmalar farklılaştığında keşfedilmemiş alanların kesişim noktalarında arazi kırılmaları görülebilir.
Konsolda "Read timed out" veya dosya izin hatası alırsam ne yapmalıyım?
Read timed out uyarısı ağ bağlantısında veri paketinin zamanında teslim alınamadığını veya sunucunun aşırı yük altında olduğunu gösterir; ağ gecikmesi ve kaynak kullanımı incelenmelidir. Dosya izinleriyle ilgili Permission denied hatalarında ise sunucu dizinindeki dosya sahiplikleri chown komutuyla servis kullanıcısına yeniden tanımlanmalıdır.
Oyun Sunucuları İlgili Hizmetlerimiz
Bu yazıda anlatılan teknik konuyu profesyonel altyapıyla deneyimleyin
Etiketler:

