SQL Server Log Shipping Mimarisi nedir? Log Shipping Nedir? Log Shipping Kurulumu nasıl yapılır? Merhabalar Bu yazımda MS SQL Server mimarisi olan LOG SHIPPING mimarisinden ve kurulumundan bahsettim. Log Shipping Nedir? Log Shipping, Primary veritabanında meydana gelen değişikliklerin (inserts, updates, deletes) Secondary veritabanına aktarılmasını sağlar. Bu işlem, düzenli olarak alınan transaction log yedeklerinin bir veya birden fazla Secondary sunucuya uygulanmasıyla gerçekleşir. Log Shipping, genellikle şunlar için kullanılır: Felaket Kurtarma (Disaster Recovery): Primary Sunucu Arızalandığında Secondary sunucudan devam etmeyi sağlar. Burada tabiki herkesin aklındaki soru Veri Kaybı evet burada bir veri kaybı olacaktır. Bunun sebebi alınan son transaction log backup sonrasında yapılan işlemler Secondary sunucuda bulunmayacaktır. Kısaca özetlemek gerekir ise Her 10 Dakikada bir Transaction Log backup alınan ortamda En son alınan Transaction Log backup saat 12:50 de alındığını düşünelim ve Primary sunucumuz arızalandığı saat ise 12:55 burada 5 dakika içerisinde gerçekleşen işlemlerin hiç biri Secondary sunucuda bulunmayacaktır. Readable Secondary (Standby/ […]
User-Defined Functions(Kullanıcı Tanımlı Fonksiyonlar) SQL Server 2000 ile gelen bir özelliktir. Bu yazımda ihtiyaçlar doğrultusunda kendinize ait raporlamaları aralıklı günlere göre yada istediğiniz değerlere göre ihtiyaçlarınızı karşılayabilirsiniz. Başlıktanda anlaşıldığı gibi kullanıcıların ihtiyaçlarına göre kendilerine ait fonksiyonlarını oluşturabileceklerdir. 3 çeşit fonksiyon vardır. Table-Valued Functions (Tablo Değerli Fonksiyonlar) Viewlerle büyük benzerlikler içerir ancak farklı olarak dışarıdan parametre alabilirler. belirli bir tarih aralığındaki verileri dondurmek istediğimizde ve büyük verileri sorgulamak istediğimizde kullanılır. Örnek olarak 2 tarih arasındaki verileri döndürmek CREATE FUNCTION dbo.fn_SalesBaslaBitisTarih (@startDate DATE, @endDate DATE) RETURNS TABLE AS RETURN ( SELECT * —-Yada istenilen kolonlar FROM Sales WHERE OrderDate BETWEEN @startDate AND @endDate — ekstra koşul eklenebilir ) SELECT * FROM dbo.fn_ SalesBaslaBitisTarih (‘2025-01-01’, ‘2025-03-01’) Bu sorgu, 2025-01-01 ile 2025-03-01 arasındaki tüm verileri listeleyecektir. Scalar Functions (Skalar Fonksiyonlar) Skalar fonksiyonlar birden fazla satır üzerinde işlem yapmaz; her zaman tek bir değer döndürür. Örnek olarak Kullanıcı Adı Uzunluğu Hesaplamak istediğinizde CREATE FUNCTION dbo.fn_UsernameLengt […]
SQL Server 2016 ‘dan 2022 sürümüne kadar eklenen önemli işlevler ve gelişmeler hakkında bilgi sahibi olmak Bu yazımızda SQL Server 2016 ,SQL Server 2017, SQL Server 2019, SQL Server 2022 sürümlerinin yeniliklerini nelerdir ? Bu sürümler ile göze çarpan ve ortamlara göre kullanılması gereken etkenler ne olmalıdır sorularına cevap vermeye çalışacağım
İndexed Views nedir? Ne işe yarar? Nasıl Kullanılır? Merhabalar bu yazımda Views ‘lere index kullanımı amaçları ve dezavantaçlarını anlatacağım. Öncelikle View’ler kullanım amacını bilmemiz gerekir. View ‘ler SQL tabloların birleşimi ile oluşturulan istenilen bilgiler(Kolonlar) göre oluşturulan raporlama işlemi diyebiliriz. Örnek olarak create view [dbo].[Ozet_Yillik_Satislar] as SELECT Satislar.SevkTarihi, Satislar.SatisID, Satis_Alt_Toplamlari.Subtotal FROM Satislar INNER JOIN Satis_Alt_Toplamlari ON Satislar.SatisID = Satis Alt Toplamlari.SatisID WHERE Satislar.SevkTarihi IS NOT NULL GO Normalde bir view, sorgularda kullanılan verilerin sanal bir birleşimidir. Ancak indexed view oluşturulduğunda, SQL Server bu görünüme bir clustered index –non-clustered index ekler. Bu indeks, görünümün verilerini fiziksel olarak depolar ve sorgular doğrudan bu indeksi kullanarak daha hızlı bir şekilde sonuç döndürebilir. NOT: Tabiki Disk maliyetini düşünmemiz gerekir performans açısından daha iyi olması View’in artık index üzerinden işlem yapmasıdır. Indexed View Kullanım Durumları Karmaşık ve Sık Kullanılan Sorgular Veri Analizi ve Raporlama Özet Tablo Oluşturma Indexed View Kullanımında Dikkat Edilmesi Gerekenler Güncellemeler ve […]
SQL Server sürümleriyle gelen özellikler, Her sürümde eklenen önemli işlevler ve gelişmeler hakkında bilgi sahibi olmak Bu yazımda sizlere SQL Server sürümlerinde gelen özellikler hakkında kısa ön bilgilendirme yapmak istedim. Bu yazımız ile detaylı olarak tüm özelliklere ulaşabiliriz. SQL Server 2000 Özellikleri
File Share Witness Çalışma Mantığı Ekleme ve Kaldırma İşlemleri Merhaba arkadaşlar Bu yazımızda Windows Failover Cluster (WFC) mimarisinde bulunan File Share Witness hakkında çalışma mantığı ekleme ve kaldırma işlemlerini sizler ile paylaşacağım. Öncelikle WFC veri tabanı sunucularının(Node) birbiri ile iletişimi sağlayan genel çerçeve denilebilir. SQL Server Always On Hight Availability Mimarisi kullanılan sistemler yedek sunucular ile kesintisiz hizmet vermeyi amaçlar. Bu sunucular birbiri ile eşlenik ve anlık olarak aynı verilere sahip olmayı sağlar (Senkron). Yoğunluklara göre Asenkron olduğu yerlerde vardır. Bu sayede olası bir durum (Elektrik kesintisi, Donanımsal Arıza, Doğal Afetler ) olduğu zamanlarda SQL Server Always On Hight Availability Mimarisinde WFC içerisinde Senkron olan Node ‘muza Failover (Yük Devretme) işlemini otomatik olmasını sağlamak için File Share Witness önemli rol oynamaktadır. Peki bu rolumüz nedir ? nasıl çalışır ? Cluster Mimarisinin Çalışması Cluster’ın çalışmaya devam edebilmesi için gereken minimum oy sayısını (Toplam Oy Sayısı / 2) + 1 formülüyle hesaplanır. […]
SQL Server’da Columnstore Index Arşivlenmiş veriler, büyük veri ambarları ve analitik sorgular için performansı artıran bir index türüdür. Geleneksel satır tabanlı Index yerine, verileri sütunlar halinde depolar ve sorgu performansını önemli ölçüde artırır. MSSQL Server ‘da ColumnStore İndex ‘in Avantajları, Kullanım alanları , Sürümlere göre farkları , Performansa etkisi ve en önemlisi Data boyutunuzdaki Compress(Sıkıştırma) özelliğini nasıl kullandığını anlatmaya çalışacağım. İlk olarak SQL Server 2012‘de tanıtılan Columnstore Index, sütun bazında depolanan İndex’in oluşturulmasına olanak tanıyan ve Memory kullanan bir yapıdır. Sorgu performansını mükemmel seviyeye taşıyabilecek bir index türüdür. Bir columnstore index, verileri farklı bir index Pagelerde depolar ve verileri büyük ölçüde sıkıştırır. Ayrıca, işleme hızını büyük ölçüde artıran ve CPU kullanımını azaltan yeni bir Batch Mode Processing modu sunar. Yeni depolama türü, sıkıştırılmış veriler ve batch mode processing işleminin birleşimi, SQL Server’ın daha az veri okumasını ve sorgu performansını büyük ölçüde iyileştirmesini sağlar. Peki bu yeni index geleneksel index’den nasıl […]
Bu makalede, SQL Server Trace Flag ne olduğunu, nasıl kullanıldığını ve bazı yaygın senaryolarda nasıl faydalı olabileceğini inceleyeceğiz. Trace Flag Nedir ? SQL Server’ın davranışını değiştiren ve çeşitli senaryolarda performansı artıran veya hata ayıklama sürecini kolaylaştıran özel ayarlar olarak tanımlanabilir. Kullanım amaçları genel anlamda kriz anında ihtiyaçlara göre Trace Flags’ler eklenip problemi çözmeye yönelik işlemler yapılabilir. SQL Server Trace Flag seçerken dikkatli olmak önemlidir. Yanlış bir Trace flag etkinleştirilmesi, beklenmedik davranış değişikliklerine veya performans sorunlarına neden olabilir. Bu nedenle, her Trace Flag etkilerini ve kullanım senaryolarını bilmek önemlidir. Trace Flag etkinleştirildikten sonra sistem üzerindeki etkilerini izlemek ve değerlendirmek de önemlidir. Trace Flag nasıl aktif edebiliriz. Bağzı Trace Flag’ ler Service Restart edildikten sonra devreye girecektir. Aktif etmek için; SQL Server Configuration Manager/ SQL Server Services/ SQL Server (InstanceName) Instance’a sağ tıklayıp Properties diyoruz ve Startup Parameters kısmına geliyoruz burada 3 tane System tarafından Default olarak gelen Trace Flag’ler bulunmaktadır. […]
Merhabalar bu yazımda sizlere AlwaysOn mimarisi bulunan sistemlerde CheckAGPrimary Kontrolünün nasıl yapılacağını anlatacağım. Öncelikle SQL Server ’da AlwaysOn mimarisini bilmeliyiz. AlwaysOn mimarisini kısaca anlatmak gerekir ise SQL Server’da Databaseslerin başka bir sunucu ile eşlenikli (Aynı Verilerin Bulunması) çalışma mantığıdır. Kullanım amacı ise kriz anında eşlenik sunucudan veri kaybı olmadan hizmet verebilmek için kullanılmaktadır. AlwaysOn Mimarisi İnstance bazında eşitle yapmaktadır. Yani Databases, Security, Server Objects, Replicasyon, Polybase,Always On High Availability bazında yapılan değişiklikleri Secondary sunucudada aynı değiştirir Fakat SQL Server Agent‘ larda yapılan değişiklikler aktarılmaz. CheckAGPrimary kontrolü ise kullanmış olduğumuz AlwaysOn mimarisinde hizmet veren sunucu (Primary) kontrolü yapmaktadır. Özetlemek gerekirse AG(Avaibility Groups)’ların içinde bulunan Databaselerin primary olduğu sunucu kontrolü yapmak için kullanılır. Kullanımı oldukça kolaydır. Backup Joblarımız kullanım alanlarından bir tanesidir backup jobumuzun Properties açıyoruz. Jobların özelliklerinde işlem yapılacak alan STEP kısmı Burada Yeni bir Step eklememiz gerekiyor onun için New Diyoruz. Açılan Pencerede ise İsmimizi yazıyoruz ve T-SQL Kodumuzu Command […]
Merhabalar bu yazımda SQL Server log backupdan İSTENİLEN DAKİKA ve SANİYEYE geri dönmek istersek ne yapmalıyız Bu yazımda bana bu bilgileri paylaşan Duran BÜYÜKÖZTÜRK ve Serdar BAYRAK hocalarıma teşekkür ediyorum. Öncelikle Backup nedir neden bu kadar önemlidir bunları öğrenmek için şu yazıdan okuyabilirsiniz. https://www.veritabani.org/sql-server-backup-turleri-islemi-mantigi-ve-stratejisi/ Restore işlemini herkesin bildiğinizi farz ederek bu yazımda kısaca değinip yazımıza giriş yapmak isterim. Restore işleminde ilk olarak en önemlisi Zincir mantığıdır. Zincir mantığında FULL1+FULL2 , FULL1+DİFF1+LOG1 , FULL1 + LOG1+LOG2 şeklinde olması gerektiğini biliyoruz. İstenilen saniyeye dönmek nasıl mümkün, bunun cevabı ise Veri tabanını (Standby /Read-Only)Durumuna getirmektir. Standby/ Read-Only durumunda olan bir veri tabanı aslında okunabilir mod olarak kullanmaktır. Gitmek istediğimiz saniyeye ise Standby/ Read-Only durumuna getirirken STOPAT kullanılarak Transaction Log’un içerisindeki saniye ve dakikaya gidebiliriz. Unutmayalım Bunu en başta Değinmek istiyorum. Burada Hatalı işlemin yapıldığı zamana dönmek için İşlem yapıldıktan Sonraki LOG BACKUP’ın içinde bu işlem tutulduğu için Bu LOG backubımızı StandBy Olarak Restore […]