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

vSro Paylaşım vSRO Veritabanı Şişmesi ve Kasma Sorunu Çözümü

Cevaplar0
Görüntüleme6
Ticaret Puanı
0
Katılım
8 Eyl 2026
Mesajlar
88
Tepkime puanı
1
Puanları
0
Mevcut Bakiye
2960 ₺
[BAKIM & PERFORMANS] vSRO Veritabanı Şişmesi ve Kasma Sorunu Çözümü
Doğru Log Küçültme (Shrink), İndeks Yenileme (Rebuild) ve Performans İyileştirme Rehberi



Merhaba değerli forum sakinleri,

Silkroad Online sunucularında uzun süre açık kalan sistemlerde özellikle **SRO_VT_LOG** ve **SRO_VT_SHARD** veritabanları zamanla gigabaytlarca boyuta ulaşır, disk alanını doldurur ve sorgu gecikmelerine (lag/delay) sebep olur.

İnternette sıkça dolaşan ve `master`, `model`, `msdb`, `tempdb` dizinlerine geçerek peş peşe `DBCC SHRINKDATABASE` çalıştıran kodlar **büyük bir yanılgıdır**. Shrink işlemi tek başına veritabanını hızlandırmaz; aksine veri sayfalarını rastgele taşıdığı için indeksleri parçalayarak (fragmentation) sorguların daha da yavaşlamasına yol açabilir.

Aşağıda hem diskteki gereksiz log fazlalığını güvenle boşaltan, hem de bozulan indeksleri onararak veritabanını **gerçek anlamda hızlandıran** optimize bakım prosedürünü bulabilirsiniz.

Önemli Hatırlatma' Alıntı:
DİKKAT:
  • Bu bakım sorgusunu sunucuda oyuncu yoğunluğunun en az olduğu saatlerde veya GameServer'lar kapalıyken haftalık/aylık periyotlarla çalıştırmanız önerilir.
  • İşlem öncesinde SRO_VT_SHARD ve SRO_VT_ACCOUNT tam yedeklerinizi almayı unutmayınız.



1. BÖLÜM: Disk Şişmesini Önleme (LDF Log Dosyalarını Küçültme)

Veritabanının şişmesine neden olan asıl unsur `.mdf` (veri) değil, yapılan her işlemi kaydeden devasa `.ldf` (log) dosyalarıdır. Aşağıdaki sorgu kurtarma modunu geçici olarak SIMPLE'a alıp log dosyasını güvenli boyuta indirir:

SQL:
USE [master]
GO

-- 1. SRO_VT_LOG LOG DOSYASINI KÜÇÜLT
ALTER DATABASE [SRO_VT_LOG] SET RECOVERY SIMPLE WITH NO_WAIT;
GO
DBCC SHRINKFILE (N'SRO_VT_LOG_log', 10);
GO
ALTER DATABASE [SRO_VT_LOG] SET RECOVERY FULL WITH NO_WAIT;
GO

-- 2. SRO_VT_SHARD LOG DOSYASINI KÜÇÜLT
ALTER DATABASE [SRO_VT_SHARD] SET RECOVERY SIMPLE WITH NO_WAIT;
GO
DBCC SHRINKFILE (N'SRO_VT_SHARD_log', 50);
GO
ALTER DATABASE [SRO_VT_SHARD] SET RECOVERY FULL WITH NO_WAIT;
GO

-- 3. SRO_VT_ACCOUNT LOG DOSYASINI KÜÇÜLT
ALTER DATABASE [SRO_VT_ACCOUNT] SET RECOVERY SIMPLE WITH NO_WAIT;
GO
DBCC SHRINKFILE (N'SRO_VT_ACCOUNT_log', 10);
GO
ALTER DATABASE [SRO_VT_ACCOUNT] SET RECOVERY FULL WITH NO_WAIT;
GO



2. BÖLÜM: Gerçek Performans Artışı (İndeksleri Onarma & İstatistikleri Güncelleme)

Veritabanının lag yapmasını engelleyen ve sorguları hızlandıran asıl işlem budur. Parçalanmış (fragmante olmuş) tabloları onarır ve SQL arama optimizasyonunu sıfırlar:

SQL:
USE [SRO_VT_SHARD]
GO

-- 1. ADIM: Tablo Kullanım Sayımlarını Düzelt
DBCC UPDATEUSAGE (0) WITH NO_INFOMSGS;
GO

-- 2. ADIM: Tüm Tablo İndekslerini Yeniden İnşa Et (Rebuild All Indexes)
EXEC sp_MSforeachtable @command1="PRINT 'Rebuilding: ?' DBCC DBREINDEX ('?', ' ', 80)";
GO

-- 3. ADIM: SQL Query Optimizer İstatistiklerini Yenile
EXEC sp_updatestats;
GO



Hangi İşlem Ne İşe Yarar?

  • SHRINKFILE (Recovery Simple): 50 GB'a kadar şişebilen log dosyalarını sisteminize 50-100 MB olarak geri kazandırır, disk alanınızı rahatlatır.
  • DBREINDEX (sp_MSforeachtable): Karakter çantaları, item kayıtları ve skill tablolarındaki parçalanmış index ağaçlarını birleştirir. GameServer'ın oyuncu verisini okuma süresini bariz şekilde düşürür.
  • sp_updatestats: SQL Server'ın hangi veriyi hangi indeksten okuyacağına karar veren haritasını günceller, kilitlenmeleri (deadlock) önler.



Nasıl Uygulanır?
  1. SQL Server Management Studio (SSMS) programını açın.
  2. Üst kısımdan New Query penceresi açın.
  3. Önce 1. Bölümdeki Log temizleme kodunu çalıştırın.
  4. Hemen ardından 2. Bölümdeki İndeks onarma kodunu çalıştırın.
  5. Alt panelde "Command(s) completed successfully" mesajını gördüğünüzde veritabanınız tertemiz ve optimize edilmiş olacaktır.

Sorularınızı ve sunucu performans değerlerinizi konu altından paylaşabilirsiniz. Herkese kesintisiz yayınlar!
 

Konuyu görüntüleyenler

Yükleniyor...
Yükleniyor...
Şu anda sitemizde 40,333 Aktif Kullanıcı
Çevrimiçi üyeler
Konular 1,311
Mesajlar 4,191
Kullanıcılar 1,624
Son üye mrt
Geri
Üst