Minecraft sunucu taşıma işleminin özeti şudur: dünya klasörlerini, plugins (ya da mods) dizinini, server.properties ile birlikte JSON yetki dosyalarını ve varsa MySQL veritabanını yeni sunucuya kopyalarsınız; sunucu jar’ını, logs, cache ve libraries klasörlerini taşımaz, yeni sunucuda sıfırdan oluşturursunuz. Doğru sırayla yapıldığında oyuncular yalnızca birkaç dakikalık bir kesinti görür.
Hosting değiştirirken en sık yaşanan üç kayıp şu üçüdür: çalışan sunucudan kopyalandığı için bozulan chunk’lar, unutulan MySQL veritabanı ve yüksek TTL yüzünden saatlerce eski IP’ye giden oyuncular. Bu rehber üçünü de önlemek üzere kurgulandı. Anlatım işletim sisteminden bağımsızdır; komutların hem Linux hem Windows karşılığı verilir, derin işletim sistemi ayrıntısı için ilgili sayfalara bağlantı bulacaksınız.
Taşıma Öncesi Envanter: Neyi Taşıyorsunuz?#
Taşımaya başlamadan önce mevcut kurulumun bir envanterini çıkarın. Bu beş bilgiyi bir yere not edin; yeni sunucuyu kurarken hepsine ihtiyacınız olacak:
- Sunucu yazılımı ve sürümü
- Konsolda
versionyazın. Örnek çıktı: "This server is running Paper version 26.2-112". Yeni sunucuda birebir aynı build’i kullanın. - Java sürümü
java -versionile öğrenin. 26.1 ve sonrası Java 25 ister; 1.20.5-1.21.11 Java 21, 1.17-1.20.4 Java 17, 1.16.5 ve öncesi Java 8. Ayrıntı: hangi Java sürümü gerekir.- Tahsis edilen bellek
- Başlatma betiğindeki
-Xms/-Xmxdeğerleri. Yeni pakette daha az bellek varsa taşımadan önce paketi büyütün. - Eklenti listesi
- Konsolda
pluginsyazın, çıktıyı kopyalayın. Taşıma sonrası aynı listenin yeşil (etkin) döndüğünü doğrulayacaksınız. - Veritabanı bağlantıları
pluginsaltındaki config dosyalarındamysql,host:ya dajdbc:geçen satırları arayın. Harici veritabanı varsa dump almanız şart.
Hangi Dosyalar Taşınır, Hangileri Taşınmaz?#
Sunucu dizinini olduğu gibi kopyalamak çalışır ama gereksizdir; yüzlerce megabayt önbellek ve log dosyasını da beraberinde taşırsınız. Aşağıdaki tablo Paper/Spigot tabanlı bir sunucu için hazırlanmıştır, Forge ve Fabric kurulumlarında plugins yerine mods ve config klasörlerini düşünün.
| Dosya / Klasör | İçerik | Taşınsın mı? |
|---|---|---|
world/, world_nether/, world_the_end/ | Harita, oyuncu envanterleri, playerdata | Evet, zorunlu |
plugins/ | Eklenti jar’ları ve tüm yapılandırmaları | Evet, tamamı |
mods/ + config/ | Forge / Fabric mod dosyaları ve ayarları | Evet (modlu sunucu) |
server.properties | Port, gamemode, view-distance, online-mode | Evet |
ops.json, whitelist.json | Yetkili ve beyaz liste kayıtları | Evet |
banned-players.json, banned-ips.json | Yasaklı oyuncu ve IP listesi | Evet |
bukkit.yml, spigot.yml, config/paper-*.yml | Sunucu ince ayarları | Evet |
eula.txt | EULA onayı | Evet (yoksa yeniden onaylanır) |
| MySQL / MariaDB veritabanı | LuckPerms, CoreProtect, ekonomi verisi | Evet, dump ile |
paper-26.2-112.jar / server.jar | Sunucu yazılımı | Hayır, yeniden indirin |
logs/, crash-reports/ | Geçmiş kayıtlar | Hayır (arşive alın) |
cache/, libraries/, versions/ | Paper’ın indirdiği bağımlılıklar | Hayır, ilk açılışta oluşur |
*/session.lock | Dünya kilit dosyası | Hayır, mutlaka silin |
usercache.json | UUID-isim önbelleği | İsteğe bağlı |
world/playerdata/ dizininde UUID adıyla tutulur. Dünyayı taşıdığınızda envanterler, konumlar ve ilerleme (advancements) otomatik olarak gelir.Yeni Sunucuyu Hazırlama#
Dosyaları kopyalamadan önce hedef sunucunun hazır olması gerekir. Bu aşamayı taşıma gününden önce bitirin; böylece bakım penceresinde yalnızca veri aktarımıyla uğraşırsınız.
Donanımı doğru seçin#
Taşıma, donanımı büyütmek için iyi bir fırsattır. Minecraft’ın ana tick döngüsü tek çekirdekte çalıştığı için belirleyici olan çekirdek sayısı değil saat hızıdır. Bu yüzden AMD Ryzen 9 7900X / 7950X sınıfı yüksek frekanslı işlemciler tercih edilir; alt sınır Ryzen 9 3900X’tir. Disk daima NVMe SSD olmalıdır, chunk okuma/yazma gecikmesi doğrudan TPS’e yansır.
| Oyuncu / Kurulum | RAM | Java heap | Disk |
|---|---|---|---|
| 2-10 oyuncu, vanilla veya hafif eklentili | 8 GB | -Xms6G -Xmx6G | 50 GB NVMe |
| 10-30 oyuncu, eklentili Paper | 10-12 GB | -Xms10G -Xmx10G | 50 GB NVMe |
| 30-60 oyuncu, minigame / çok dünyalı | 16 GB | -Xms14G -Xmx14G | 100 GB NVMe |
| Forge / Fabric modpack | 16 GB (büyük modpackte 24-32 GB) | -Xms14G -Xmx14G | 100 GB+ NVMe |
| 60+ oyuncu veya proxy’li sunucu ağı | 32 GB ve üzeri | -Xms28G -Xmx28G | 100 GB+ NVMe |
Yeni sunucuda önce Java 25 kurun, ardından eskisiyle aynı sunucu yazılımını indirin. Paket seçiminde kararsızsanız Minecraft sunucu paketlerine bakabilir, sıfırdan kurulum adımları için Minecraft sunucu kurulumu rehberini izleyebilirsiniz.
-
Eclipse Temurin JDK 25LTSİndir
-
Paper 26.2 sunucu jarÖnerilenİndir
-
WinSCP (SFTP istemcisi)İndir
-
FileZilla Clientİndir
-
7-Zip (arşivleme)İndir
Bağlantılar resmî kaynaklara gider. Üçüncü taraf sitelerden jar indirmeyin.
Adım Adım Taşıma Süreci#
-
Ön senkronu sunucu açıkken yapın#
Kesintiyi kısaltmanın anahtarı budur. Sunucu oyunculara açıkken dosyaların büyük bölümünü yeni sunucuya kopyalayın. Bu kopya tutarsız olacaktır ama sorun değil; ikinci geçişte yalnızca değişen bloklar aktarılacağı için kapalı geçen süre dakikalara iner.
rsync -avz --progress /opt/minecraft/server/ root@YENI_SUNUCU_IP:/opt/minecraft/server/ -
Oyunculara bakım duyurusu yapın#
Konsoldan uyarı gönderin ve girişleri kapatın.
whitelist onkomutu yeni bağlantıları engeller, mevcut oyuncular oyunda kalır.say Sunucu 5 dakika icinde bakima aliniyor, guvenli bir yere gecin. whitelist on save-all -
Sunucuyu doğru sırayla kapatın#
Bu üç komut taşımanın en kritik parçasıdır.
save-offotomatik kaydetmeyi durdurur,save-all flushbellekteki tüm chunk’ları diske yazar,stopise sunucuyu düzgün kapatır. Süreci sonlandırarak (kill / Görev Yöneticisi) kapatmayın, bozuk region dosyası riski yüksektir.save-off save-all flush stop -
Kilit dosyalarını silin ve arşivi oluşturun#
Her dünya klasöründe bir
session.lockdosyası bulunur. Bu dosya yeni sunucuya giderse "world is already in use" hatası alırsınız. Silin, sonra arşivi hazırlayın.rm -f world*/session.lock tar -czf mc-goc-2026-08-11.tar.gz \ world world_nether world_the_end plugins \ server.properties ops.json whitelist.json \ banned-players.json banned-ips.json \ bukkit.yml spigot.yml config eula.txtWindows tarafında aynı işi PowerShell ile yapabilirsiniz:
Remove-Item C:\minecraft\server\world*\session.lock -Force Compress-Archive -Path C:\minecraft\server\* -DestinationPath C:\mc-goc-2026-08-11.zip -
Delta senkronu çalıştırın#
Sunucu kapalıyken ikinci rsync geçişini yapın. Bu sefer yalnızca son dakikalarda değişen dosyalar gider ve işlem genelde bir iki dakika sürer.
rsync -avz --delete --progress \ --exclude 'logs/' --exclude 'cache/' --exclude 'libraries/' --exclude 'versions/' \ /opt/minecraft/server/ root@YENI_SUNUCU_IP:/opt/minecraft/server/ -
Bütünlüğü sağlama toplamıyla doğrulayın#
Arşiv yöntemini kullandıysanız iki tarafta da özet değeri alıp karşılaştırın. Değerler farklıysa aktarım eksik demektir, tekrarlayın.
sha256sum mc-goc-2026-08-11.tar.gzGet-FileHash .\mc-goc-2026-08-11.zip -Algorithm SHA256 -
Yeni sunucuda başlatın ve test edin#
Sunucu yazılımını indirip başlatma betiğini yeni yola göre düzenleyin, sunucuyu açın. Konsolda
pluginsveversionkomutlarını çalıştırıp her şeyin yerinde olduğunu doğrulayın. DNS’i henüz değiştirmeyin, doğrudan yeni IP ile bağlanıp test edin.
Veritabanı Taşıma: LuckPerms, CoreProtect ve Ekonomi#
Eklentilerin bir kısmı verisini dosyada değil MySQL veya MariaDB’de tutar. plugins klasörünü kopyalamak bu veriyi getirmez; ayrı bir dışa aktarma gerekir. Hangi eklentilerin veritabanı kullandığını anlamak için config dosyalarında storage-method ya da jdbc:mysql satırlarını arayın.
Eski sunucuda dump alın:
mysqldump -u mcuser -p --single-transaction --routines --triggers \
minecraft_db > minecraft_db-2026-08-11.sql
Yeni sunucuda veritabanını ve kullanıcıyı oluşturup dosyayı içe aktarın:
mysql -u root -p -e "CREATE DATABASE minecraft_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mysql -u root -p minecraft_db < minecraft_db-2026-08-11.sql
İçe aktarma bitince eklenti config dosyalarındaki bağlantı bilgilerini güncellemeyi unutmayın. LuckPerms için ilgili satır plugins/LuckPerms/config.yml içindedir:
storage-method: mysql
data:
address: 127.0.0.1:3306
database: minecraft_db
username: mcuser
password: 'yeni-guclu-parola'
127.0.0.1 üzerinden dinletin. Eski sunucuda dış dünyaya açık bir MySQL portu bırakırsanız, siz orayı kapatana kadar veriniz erişilebilir kalır. Yetki yapılandırmasının ayrıntıları için LuckPerms yetki sistemi rehberine bakın.Başlatma Betiği ve Yol Düzeltmeleri#
Dosyalar taşındıktan sonra çalışmayan tek şey genellikle başlatma betiğidir; içindeki dosya yolu ve jar adı eski sunucuya aittir. Yeni ortama göre düzenleyin ve bellek değerlerini yeni paketin RAM miktarına uydurun. 12 GB’lık bir pakette işletim sistemine pay bırakarak 10 GB heap verilir:
java -Xms10G -Xmx10G -XX:+UseG1GC -XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC \
-XX:+AlwaysPreTouch -jar paper-26.2-112.jar nogui
Aikar’s Flags 26.x sunucularında hâlâ geçerlidir; 8-12 GB heap için G1GC tabanlı bu set en güvenli tercihtir. 16 GB ve üzeri heap ya da ağır modlu kurulumlarda -XX:+UseZGC değerlendirilebilir. Bayrak seçimini derinlemesine okumak isterseniz RAM ayarları ve JVM flag’leri sayfası tam liste verir.
Ayrıca server.properties içinde eski sunucuya özgü satırlar kalmış olabilir. Özellikle server-ip satırını kontrol edin; eski IP yazılıysa sunucu hiçbir arayüze bağlanamaz. Boş bırakmak en doğrusudur:
server-ip=
server-port=25565
online-mode=true
max-players=60
view-distance=8
Diğer satırların ne işe yaradığını server.properties tam listesinden öğrenebilirsiniz.
DNS Geçişi ve Kesintisiz Yönlendirme#
Oyuncularınız bir domain üzerinden bağlanıyorsa taşımanın en görünür kısmı DNS’tir. Doğru yapılırsa kimse fark etmez, yanlış yapılırsa oyuncular saatlerce eski (kapalı) sunucuya bağlanmaya çalışır.
-
TTL değerini önceden düşürün#
Taşımadan 24-48 saat önce A kaydının ve varsa SRV kaydının TTL değerini 300 saniyeye (5 dakika) indirin. Böylece geçiş anında yayılma birkaç dakikayla sınırlı kalır. TTL’i taşıma günü düşürmek işe yaramaz; eski yüksek değer zaten önbelleklere yazılmıştır.
-
Yeni sunucuyu doğrudan IP ile test edin#
DNS’e dokunmadan önce Minecraft istemcisinde sunucu adresi olarak
YENI_SUNUCU_IP:25565girip bağlanın. Dünya, eklentiler ve yetkiler doğruysa geçişe hazırsınız. -
A kaydını yeni IP’ye çevirin#
Standart dışı port kullanıyorsanız SRV kaydını da güncelleyin:
_minecraft._tcp.oyun.alanadi.com. SRV kaydının biçimi ve öncelik/ağırlık/port alanları için domain bağlama ve SRV kaydı sayfasına bakın. -
Eski sunucuyu hemen kapatmayın#
Eski makineyi 48-72 saat açık ama Minecraft servisi kapalı tutun. Böylece DNS’i geç alan oyuncular boş bir sunucuya bağlanıp eski dünyada oynamak yerine bağlantı hatası alır ve tekrar dener. İki sunucunun aynı anda açık olması en kötü senaryodur: oyuncular ikiye bölünür ve iki ayrı dünya oluşur.
Panel Üzerinden Taşıma#
Sunucunuz Pterodactyl, Pelican ya da benzeri bir panelde çalışıyorsa SSH yerine panel arayüzünü kullanabilirsiniz. Süreç aynıdır, araçlar değişir:
- Sunucuyu panelden Stop ile durdurun, Kill kullanmayın.
- Dosya Yöneticisi’nde tüm dizini seçip Archive deyin, oluşan arşivi indirin.
- Yeni panelde aynı Minecraft sürümü ve Java 25 imajıyla bir sunucu oluşturun.
- Arşivi yükleyip Unarchive ile açın, ardından
session.lockdosyalarını silin. - Startup sekmesinde jar adını,
SERVER_JARFILEdeğişkenini ve bellek limitini güncelleyin.
Panel arayüzündeki dosya işlemleri ve startup değişkenleri hakkında ayrıntı için Pterodactyl panel kullanım rehberine göz atın. 10 GB’ın üzerindeki arşivlerde tarayıcı yüklemesi zaman aşımına uğrayabilir; bu boyutlarda panelin SFTP erişimini kullanmak daha güvenlidir.
Taşıma Sonrası Kontrol Listesi#
Sunucu açıldı diye iş bitmez. Aşağıdaki kontrolleri ilk oturumda tek tek yapın; sorunları oyuncular bulmadan siz bulun.
| Kontrol | Nasıl doğrulanır | Sorun çıkarsa |
|---|---|---|
| Sunucu yazılımı ve sürümü | Konsolda version | Yanlış jar indirilmiş, doğrusuyla değiştirin |
| Eklentiler etkin mi | Konsolda plugins | Kırmızı görünenlerin logunu okuyun |
| Yetkiler | lp user AD info veya op listesi | ops.json taşınmamış ya da veritabanı eksik |
| Dünya sınırları ve spawn | Oyun içinde spawn’a ışınlanın | level-name satırı eski adı gösteriyor olabilir |
| Oyuncu envanterleri | Kendi hesabınızla girip envantere bakın | world/playerdata eksik kopyalanmış |
| TPS | Konsolda tps | Bellek veya disk yetersizdir, heap ve view-distance değerlerini gözden geçirin |
| Port erişimi | Dışarıdan 25565 portuna bağlanın | Güvenlik duvarında kural eksik |
| Otomatik yedek | Zamanlanmış görev / cron kaydı | Yeni sunucuda yeniden kurun |
Bu komutların tamamının açıklaması ve daha fazlası için konsol komutları sayfasına bakabilirsiniz. Yedekleme görevini yeni sunucuda kurmayı özellikle atlamayın; taşıma sonrası ilk hafta en kritik dönemdir. Minecraft yedekleme rehberi otomatik senaryoları adım adım anlatır.
Sık Yapılan Taşıma Hataları#
Sunucu çalışırken dünya kopyalamak#
En yaygın hata budur. Sunucu açıkken region dosyaları sürekli yazılır; kopya alırken yarım yazılmış bir .mca dosyası yakalarsanız o bölge yeni sunucuda boş chunk ya da çökme üretir. Çözüm basit: save-off, save-all flush, stop.
session.lock dosyasını taşımak#
Yeni sunucu açılışta "The world is already in use" ya da "Failed to check session lock" hatası verir. Tüm dünya klasörlerinden bu dosyayı silin.
Java sürümünü yanlış kurmak#
Yeni sunucuya Java 21 kurup 26.2 jar’ını çalıştırmaya kalkarsanız UnsupportedClassVersionError alırsınız. 26.1 ve sonrası Java 25 ister. Hatanın tam çözümü için Java sürüm hatası sayfası var.
Sürüm yükseltmeyi taşımaya karıştırmak#
1.21.11’den 26.2’ye geçerken sadece jar değişmez; 26.1 ile birlikte Mojang obfuscated sunucu jar’ı yayınlamayı bıraktı ve bu bir ABI kırılmasıdır. NMS kullanan eklentiler ve tüm modlar yeniden derlenmeden çalışmaz. Bu yüzden taşıma ve yükseltme iki ayrı iş olarak planlanmalıdır.
Eklentileri güncellemeden geçmek#
Yeni sunucuda aynı sürümde kalıyorsanız eklentilere dokunmanıza gerek yoktur. Ama 26.2’ye çıkacaksanız uyumluluğu tek tek doğrulayın; örneğin PlaceholderAPI’de 26.2 için en az 2.12.3, WorldGuard’da 7.0.18 gerekir. Plugin kurulumu rehberi uyum kontrolünü nasıl yapacağınızı anlatır.
Eski sunucuyu erken silmek#
Yeni sunucu bir hafta sorunsuz çalışmadan eski veriyi silmeyin. Kayıp bir bölge ya da eksik bir izin grubu ancak oyuncular oynamaya başlayınca fark edilir. Yedeği 3-2-1 kuralına göre saklamak (üç kopya, iki farklı ortam, biri dış lokasyonda) bu riski tamamen ortadan kaldırır.
Özetle#
Minecraft sunucu taşımanın omurgası üç şeydir: doğru kapatma, doğru dosya seçimi ve doğru zamanlanmış DNS geçişi. Sunucuyu save-off ve save-all flush ile kapatın, dünya klasörleriyle plugins dizinini ve JSON yetki dosyalarını taşıyın, jar ve önbellek klasörlerini yeni sunucuda sıfırdan oluşturun, MySQL kullanan eklentiler için ayrıca dump alın. Ön senkron ve delta senkron yöntemiyle kesintiyi dakikalarla sınırlayabilirsiniz.
Taşıma sırasında donanımı da gözden geçirin: 8 GB’ın altına inmeyen bir bellek, yüksek saat hızlı bir Ryzen 9 işlemci ve NVMe disk, taşıma sonrası "eskisinden yavaş" şikayetlerinin önüne geçer. Geçiş planında takıldığınız bir nokta olursa destek talebi açarak Batihost ekibinden taşıma desteği isteyebilirsiniz.