SQL Server sürüm yükseltmelerinde, donanım ve işletim sistemi değişikliklerinde, SQL Server üzerinde yapılan ayarların etkisini görmek veya yük testi yapmak için kullanılan bir araçtır.
Peki bu aracı kullanmanın yararı ne?
SQL Server Profiler ile yakalanan bir trace’i, bir veya daha fazla client üzerinden tekrar oynatmaya olanak verir. Bu sayede önemli iş yükü testlerini gerçeğine çok yakın bir şekilde birden fazla client ile test edebilir, gerçekçi sonuçlara ulaşılabilir.
Neler gerekiyor?
- Bir adet çiçeği burnunda SQL Server
- Distributed Replay Controller
- Distributed Replay Clients
- DReplay.exe
*Kurulumlar genelde NEXT – NEXT şeklinde olduğu için detaya girmiyorum.
Nasıl kullanacağız?
Öncelikle Canlı ortamından bir trace almamız gerekli. Bu trace’i SQL Profiler aracı yardımıyla alabiliriz. Ancak trace alırken Canlı sisteme çok zarar vermeden, saatlerce değil de 10-15dk’lık trace’ler almak çok daha sağlıklı olacaktır.
Not : Distributed Replay yük testi için kullanılacaksa, sistemin en yoğun dönemlerinde trace almak, test sonuçlarını daha da gerçekçi bir hale getirecektir.
Management Studio üzerinden Tools sekmesindeki SQL Server Profiler’ı açıyorum.
Use the template seçeneklerinden, Distributed Replay için kullanabileceğimiz TSQL_Replay’ı seçiyorum ve C: diskinde oluşturduğum DReplayTest klasörüne kaydediyorum.
Trace dosyasını aldıktan sonra Distributed Replay üzerinde kullanıma uygun hale getirebilmek için Controller ve DReplay.exe
yüklü olan sunucuya trace dosyasını kopyalıyoruz. Ardından servislerin durumunu kontrol edip işe koyulalım.
Command prompt üzerinden DReplay.exe
yoluna gidiyorum. (C:\Program Files (x86)\Microsoft SQL Server\(YourSQLVersionNumber)\Tools\Binn)
dreplay.exe status
komutunu kullanarak servisin hazır durumda olduğu cevabını aldım.
Trace dosyasını Replay işleminde kullanabilecek hale getirmek için preprocess
komutunu kullanıyorum.
DReplay preprocess -i “C:\DReplayTest\Trace - DReplay.trc” -d “C:\DReplayProcess”
Komutu çalıştırdıktan sonra belirttiğimize path’e IRF ve XML formatında dosyalar oluşacak, simülasyon işlemini bu dosyalar sayesinde yapacağız.
Son olarak aşağıdaki komut ile işlemi başlatabiliriz.
DReplay replay -s HedefSunucu -w ClientSunucu -f 10 -o -d “C:\DReplayProcess”
Test; 43143 event gerçekleştirerek başarılı bir şekilde tamamlandı.