Pazartesi , 20 Kasım 2017

SQL Server Administratiom

SQL Server Contained Databases

Hem veritabanı yöneticilerini hem de veritabanı uygulamaları geliştiren yazılımcıların sıkça zorluklardan biri test ve geliştirme(Development) ortamlarında oluşturdukları veritabanlarının Canlı(Production) gibi farklı ortamlara daha doğrusu farklı SQL Server Instance’ına taşınmasıdır. Çünkü birçok durumda sadece veritabanının taşınması yeterli değildir. Çünkü SQL Serverda veritabanları bağımsız nesneler olmayıp kullandığımız SQL Server loginleri, SQL Server Agent jobları, linked Serverlar gibi nesneler sadece veri tabanlarımıza değil ... Devamını Oku »

SQL Server 2012 Indirect Checkpoint Özelligi

Checkpoint, SQL Server Database Engine servisi tarafından çalıştırılan ve Buffer Cache diye adlandırılan bellek bölgesindeki Dirty Page’lerin diske yani data dosyasına yazılması işlemidir. Dirty Page kavramı ise az önce bahsettiğimiz Buffer Cache bellek bölgesinde bulunan ve üzerinde değişlik yapılmış(delete,update vb) fakat hala fiziksel olarak diske yazılmamış page olarak adlandırılmaktadır. Yani bir veri üzerinde bizim yapmış olduğumuz değişlikler doğrudan data dosyası ... Devamını Oku »

Transactional Replikasyonun Backup Kullanilarak Kurulmasi

Varsayılan olarak iki SQL server arasında replikasyon kurduğunuzda kurulum aşamasındaki ilk senkronizasyon yani her iki veritabanının eşitlenmesi işlemi Snapshot Agent tarafından yapılır. Snapshot Agent Publisher üzerindeki veritabanının Snapshot’ını alarak ilgili Subscriber’lara gönderir. Fakat veritabanı boyutunun büyük olduğu durumlarda Snapshot alınması ve Subscriber’a gönderilmesi çok uzun zaman almaktadır. Bu sebeple özellikle büyük boyutlu veritabanlarını kullanarak tanımlanacak replikasyonlarda SnapShot kullanmak yerine veritabanının ... Devamını Oku »

SQL Serverdaki Veritabanlarının Recovery Model Değişimi Geçmişini Görüntülemek

SQL Serverda veritabanı seviyesinde yaptığımız Recovery model ayarı hem veritabanının etkin bir şekilde yönetilmesi hem de olası bir hata durumunda veritabanımızdaki verilerimizin kurtarılması işlemiyle doğrudan ilgilidir. Bu nedenle kendi sistemimize ve Recovery planımıza uygun olan Recovery modelin seçimi çok önemlidir. Bildiğimiz gibi kullanabileceğimiz üç farklı Recovery model türü var. Bazen bir veritabanının Recovery modelini değiştirme ihtiyacı duyabiliriz. Örneğin Full Recovery ... Devamını Oku »

SQL Server 2014 Buffer Pool Extension Özelliği

SQL Server kullanırken karşılaştığımız sorunların büyük kısmı I/O kaynaklıdır.Bu sebeple SQL Server I/O işlemlerini azaltmak adına sık eriştiği verileri içeren page’leri diskten okumak yerine RAM üzerinde Buffer Pool ya da buffer cach’da tutmaktadır. Bu sebeple makineye fiziksel olarak RAM eklemek Buffer Pool için kullanılacak alanı boyutunu büyütecek ve buna paralel olarak performans artacaktır. Fakat bazı durumlarda halihazırda kullandığımız makinelere daha ... Devamını Oku »

SQL Server 2014 Paralel Select Into Yeniliği

SQL Server 2014 ile gelen bir başka yenilik Select ifadesini kullanarak bir tablonun tamamı veya bir kısmını kullanarak yeni bir tablo oluşturduğumuz durumlarda bu işlemin paralel bir şekilde yapılması ve dolayısıyla da daha kısa sürede bitmesini sağlamasıdır. SQL Server 2014 öncesi sürümlerde de kullandığımız Select Into komut yapısı SQL Server 2014 sürümüyle beraber paralel olarak çalışmayı desteklemektedir. Bu yeniliğin kullanılması ... Devamını Oku »

SQL Server Sorgularımızın Anatomisi ve Query Process Yapısı

Güncel hayatta karşılaştığımız teknik problemler ne kadar karmaşık olursa olsun çözüme ulaşabilmek için ilgili konuyla ilgili bilgi birikimimizi sağlam temeller üzerine kurmuş olmamız gerekmektedir. Çünkü bir probleme müdahale edebilmek için arka planda kullandığımız sistemin nasıl davrandığını iyi kavramamız gerekir. Benzer şekilde SQL Server tarafında sık karşılaştığımız sorgularımızda ortaya çıkan performans gibi birçok karmaşık sorunu çözebilmek adına SQL Server’ın bizim sorgumuzu ... Devamını Oku »

Aktif Pasif SQL Server Failover Cluster İçinde Aktif Olan Nodu Bulmak

SQL Server Failover Clustering kullanıyorsanız ve aktif-pasif modda çalışıyorsanız bazen aktif olan nodun hangi nod olduğuna ihtiyacımız olabilir. Bu durumda SQL serverın built-in fonksiyonlarından SERVERPROPERTY fonksiyonunu ComputerNamePhysicalNetBIOS parametresi ile çalıştırdığımızda bize o anda aktif olarak SQL Serverın üzerinde çalıştığı makinenin NetBIOS adını verecektir. Eğer Failover Clustering kullanıyorsak bu değer Failover durumunda değişecektir ve her defasında aktif olan nodun NetBIOS adını verecektir. SERVERPROPERTY fonksiyonu aşağıdaki ... Devamını Oku »

SQL Server Deadlock Kavramı ve Deaclok’ların Loglanması

Deadlock, eş zamanlı(Concurrent) çalışan sistemlerin doğal davranışlarından biridir. Kavram olarak iki farklı process’in işlemlerine devam edebilmeleri için birlerinin üzerinde çalıştığı kaynağı bekliyor olmasıdır. Böyle bir durumda her iki process’de devam edebilmek adına birbirlerini beklemektedir. Bu bekleme çok uzun sürüp bitmeyeceği için de SQL Server aralarında maliyeti düşük olanını seçerek ilgili processlerden birini onlandırıp diğerinin devam etmesini sağlar ki bu process’lerden ... Devamını Oku »

Veritabanının Farklı Isimle Restore Edilmesi

SQL server sık karşılaştığım sorulardan bir tanesi sistemde var olan bir veritabanının farklı isimle kopyasını nasıl oluşturabileceğiydi. Aynı soruyla bir forumda da karşılaştıktan sonra bu konuyu yazmam gerektiği kanaatine vardım. Öncelikle elimizde var olan bir sql server backup dosyası restore edilirken aksi belirtilmediği sürece SQL Server backup alınırken kullanılan data ve log dosyaları ile aynı lokasyonda aynı isimle yine data ... Devamını Oku »