İçeriğe geç
Türkiye'nin SRO tanıtım & topluluk platformu

vSro Paylaşım vSRO Veritabanı (Database) SQL Query ile Restore Etme

Cevaplar0
Görüntüleme386
serkankacan paylaşımı beğendiysen ona bir kahve ısmarlayabilirsin
Kahve ısmarla
Ticaret Puanı
0
Katılım
8 Eyl 2026
Mesajlar
200
Tepkime puanı
33
Puanları
0
Mevcut Bakiye
290 ₺
[REHBER] vSRO Veritabanı (Database) SQL Query ile Restore Etme
Bağlantı Çakışmalarını Önleyerek .BAK Yedek Dosyalarını T-SQL ile Geri Yükleme​



Merhaba değerli forum sakinleri,

Silkroad Online sunucu kurulumunda veya geri yükleme (rollback) işlemlerinde SQL Server Management Studio (SSMS) arayüzü bazen *"Database is in use"* veya izin hataları verebilir.

Aşağıda paylaşılan optimize edilmiş T-SQL sorgusu; açık kalan tüm modül/kullanıcı bağlantılarını otomatik olarak sonlandırır (SINGLE_USER), yedeği geri yükler ve ardından veritabanını tekrar genel kullanıma açar (MULTI_USER).

Önemli Uyarı' Alıntı:
DİKKAT:
  • Geri yükleme işlemine başlamadan önce Server modüllerini (GlobalManager, ShardManager, GameServer vb.) ve web sitesi/IIS servislerini durdurmanız önerilir.
  • Restore işlemi mevcut veritabanının üzerine yazacağı için, geri döneceğiniz güncel verilerin kaybolmaması adına mevcut durumun yedeğini aldığınızdan emin olun.



1. YÖNTEM: Standart ve Güvenli Restore Sorgusu (Önerilen)

Bu sorgu, veritabanına bağlı olan tüm açık oturumları derhal düşürerek REPLACE parametresiyle sorunsuz bir geri yükleme sağlar:





2. YÖNTEM: Farklı Sunucudan Alınan Yedekler İçin (Fiziksel Dosya Yolu Taşıma - MOVE)

Eğer elinizdeki `.bak` dosyası başka bir sunucudan alınmışsa, SQL Server veri dosyalarının (`.mdf` ve `.ldf`) kurulacağı dizinler uyuşmayabilir. Bu durumda `WITH MOVE` parametresi kullanılmalıdır:

Önce Yedek Dosyasının Mantıksal (Logical) İsimlerini Öğrenin:

Bu sorgu sonucunda LogicalName sütununda genellikle SRO_VT_SHARD ve SRO_VT_SHARD_log isimleri çıkar.

Dosya Konumlarını Belirterek Restore Edin:




Parametrelerin Anlamları

  • STATS = 10 : Geri yükleme ilerlemesini alt kısımdaki Messages sekmesinde %10'luk adımlarla gösterir.
  • REPLACE : Aynı isimde mevcut bir veritabanı varsa onay istemeden üzerine yazar.
  • ROLLBACK IMMEDIATE : Veritabanını meşgul eden tüm arka plan işlemlerini beklemeden iptal edip bağlantıyı anında koparır.



Sık Karşılaşılan Hata ve Çözümü:
Eğer restore işlemi sırasında Exclusive access could not be obtained hatası alırsanız, `ALTER DATABASE ... SET SINGLE_USER WITH ROLLBACK IMMEDIATE` adımını çalıştırdığınızdan emin olun.

Takıldığınız yerleri konu altından belirtebilirsiniz. Herkese iyi forumlar!
 
Moderatör tarafında düzenlendi:

Konuyu görüntüleyenler

Yükleniyor...
Yükleniyor...
Şu anda sitemizde 40 Aktif Kullanıcı
Çevrimiçi üyeler
Konular 1,451
Mesajlar 4,570
Kullanıcılar 1,853
Son üye Vael
Geri
Üst