SQL Server 2017 Read-Scale Availability Groups

Microsoft, AlwaysOn özelliğini her yeni SQL Server sürümünde biraz daha ileriye taşıyor.

SQL 2016’da domaine dahil olmayan makineler ile de AlwaysOn yapabilirken SQL Server 2017 sürümünde Read-Scale Availability Groups özelliğini getirdi.

Read-Scale Availability Groups özelliği Windows failover cluster rolünü kullanmadan sunucuları AlwaysOn grubuna dahil etmemizi sağlıyor. Haliyle listener a da ihtyaç duymuyor bu sistem.

Fail-over rolü olmayınca high-availability ve disaster recovery amaçları içinde kullanamıyoruz veri tabanı sunucumuzu.

Peki ne için kullanılıyor bu özellik, sadece veri tabanını farklı sunucular üzerinde çoğaltmak için kullanılıyor. Bunu yaparken de yukarda belittiğim üzere failover cluster hizmetini kullanmamıza gerek kalmıyor. Quorum yok, listener yok ve haliyle otomatik failover mekanizması da devre dışı.

SQL sunucuda failover hizmeti kurulu değil iken AlwaysOn özelliğini aktif edebiliyoruz.

 

Yeni bir Availability group oluşturken “Cluster type” bölümünden NONE seçmemiz gerekmektedir.

 

Bu özellik ile grubumuzu oluşturunca failover hizmeti yüklü olmayan sunucuları gruba dahil edebiliyoruz.

Otomatik geçiş olmamasına rağmen elle geçiş imkanı sağlıyor.

Mevcut grupları daha sonradan NONE olarak değiştiremeyeceğimizden dolayı bu işlemi başta yapmamız gerekmektedir.

Windows Server 2016 Domain Yapısında Geçici Grup Üyeliği Oluşturma

Windows Server 2016 sunucularda active directory yapısında yeni gelen bir özellik ile artık kullanıcı ya da kullanıcılara daha kolay bir şekilde geçici grup üyeliği verebiliyorsunuz.

Örneğin bir kullanıcıyı geçici olarak domain admin grubuna dahil ediyorsunuz. Kullanıcı belirtilen süre sonrasında otomatik olarak kendiliğinden bu gruptan ayrılıyor.

Eskiden de bu tür işlemleri yapabiliyorduk fakat kullanımı biraz karmaşıktı. Server 2016 ile powershell üzerinden rahatlıkla yapabilmekteyiz.

İlk olarak “Privileged Access Management Feature” özelliğini domainimiz için etkin hale getiriyoruz.

Enable-ADOptionalFeature ‘Privileged Access Management Feature’ -Scope ForestOrConfigurationSet -Target ortacdemirel.com

 

Ardından da kullanıcımızı istediğimiz gruba geçici olarak eklediğimizi belirtiyoruz.

Add-ADGroupMember  -Identity  ‘Domain Admins’  -Members  ‘ortac’  -MemberTimeToLive (New-TimeSpan -Days 5)

 

Komutun sonunda yer alan “New-TimeSpan” sadece güç için değil dakika, saat gibi değişkenler içinde kullanılabilir.

Ayrıntıları:

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/new-timespan?view=powershell-5.1

 

Active Directory Users and Computers konsolundan kontrol edebiliriz.

 

Ayrıca powershell üzerinden de hem bu ayarı hem de kalan süreyi görebiliriz.

Get-ADGroup ‘Domain Admins’ -Property member -ShowMemberTimeToLive

 

Member bölümünde yazan TTL değeri kalan süreyi göstermektedir.

Exchange Server dan Email Silme İşlemi

Exchange Server da exchange powershell kullanarak email ya da emailleri uzaktan rahatlıkla aratıp silebilirsiniz.

Emailin başlığında, içerisinde ya da eklenti dosyasının isminde belirli kelimeler geçen emaillerde bu işlemi uygulayabilirisiniz.

Arama ve silme işlemini tek bir kullanıcı için yapabileceğiniz gibi tüm kullanıcılar, belirli bir veri tabanındaki tüm kullanıcılar ya da belirli bir OU altındaki tüm kullanıcılar için de yapabilirsiniz.

Bulma ve silme işleminin en önemli kısmı bu işlemi yapacak olan exchange yöneticisinin gerekli yetkilere sahip olmasıdır.  Mailbox Search ve Mailbox Import Export yetkilerini ilgili rol grubuna atayarak başlıyoruz.

Windows Sunucu İşletim Sistemlerinde Slab Consolidation Hatası

Windows XP den sonraki tüm istemci ve sunucu işletim sistemlerinde işletim sistemi disklere otomatik olarak birleştirme (defrag) işlemi uygular.  Bunu da görev zamanlayıcısına atanmış görevler ile yapar.

Windows Server 2012 ve 2012 R2 işletim sistemleri ile birlikte yeni bir defrag özelliği de gelmiş bulunmaktadır. Bu da slab consolidation özelliği. Bu özellik storage sistemlerden verilen thin-provisioned disklerin defrag edilmesini sağlar.

Thin-provisioned olarak yapılandırılmış diskleri Windows sunucunuza atadığında bu diklere format atıp bir harf vermeniz gerekmektedir. Fakat hatalı ya da eksik yapılandırma sonucunda Windows server işletim sisteminiz bu disk alanlarını defrag edemeyecektir.

Örneğin sürücü harfi vermek yerine bir ntfs klasörüne mount etmek gibi;

 

Veya disk alanın 8 mb dan daha küçük yapılması gibi.

Alınan hata ise 257 numaralı event id dir.

“The volume Index Data (F:) was not optimized because an error was encountered: The slab consolidation / trim operation cannot be performed because the volume alignment is invalid. (0x89000029)”

 

Bu tur bir durumda hatadan kurtulmak için görev zamanlayıcısına geliyoruz. Microsoft > Windows > defrag bölümünü açıyoruz.

 

Bu bölümde Windows sunucunuz tarafından otomatik olarak atanmış bir görev zamanlayıcısı bulacaksınız. Özelliklerine geliyoruz.

 

Actions bölümünden “-k” komutunu kaldırıyoruz.

SQL Server Veri Tabanı ve Backup Dosyalarının Yerinin Tespiti

MS SQL server veri tabanı, log ve yedek dosyalarını bulmayı sağlayan bir program hazırladım.

Programın dosyaları bulabilmesi için veri tabanı ve log dosyalarının bağlı olduğu sql server instance hizmeti kapalı olmalıdır.

Program girilen dizine göre veri tabanı, log ve backup (normal ve sıkıştırılmış) dosyalarını bilgisayarınızda arayabiliyor. İsterseniz tüm dizinlerde de arama yapabiliyorsunuz. Fakat bu işlem çok uzun sürebilir. Özellikle işletim sistemi yüklü olan dizinde arama yapması uzun sürecektir. Tüm dizinlerde arama yapabilmek için hızlı bir bilgisayara ihtiyaç duyabilirsiniz. Bu işlem sırasında program “cevap vermiyor” yani “not responding” durumuna geçebilir. Programı kapatmadan beklemeniz gerekmektedir.

 

SQLDataFinder

SID Numarasından Hesap Bilgilerine Erişim

Workgroup ya da active directory yapılarında SID numarasını bildiğiniz bir kullanıcının bilgilerine rahatlıkla erişebilirsiniz.

Birkaç powershell komutu ile kolayca bulunan bu bilgileri daha hızlı erişebilmek için aşağıdaki programı hazırladım.

Windows 7 ve üstü istemci ler ile Windows Server 2008 ve üstü sunucu işletim sistemlerinde kullanılabilir.

İndirmek için:

UserFromSID

 

SQL Server da Linked Server Özelliği ile Excel Dosyasından Veri Çekilmesi

SQL Server da yer alan linked server özelliği sayesinde farklı sql server lara bağlantı kurup sanki kendi sql serverımızda işlem yapıyor gibi diğer sunuculardaki veri tabanlarında rahatlıkla çalışabiliriz.

Birçok kurum ve iş yerinde kullanılan bu güzel özellik oldukça işleri kolaylaştırmaktadır.

Linked serverın bir özelliği de excel dokümanına da bağlantı sağlayıp excel deki verileri sql sorgular ile çekmemizi sağlayabilmesidir.

Bu işlem için “Microsoft Access Database Engine 2010 Redistributable” yazılımına ihtiyacımız var. Bunun sebebi de varsayılan olarak sql server da excel bağlantısı için gerekli olan sağlayıcı (provider) yer almaz.

Aşağıdaki resimde SQL server 2016 üzerindeki sağlayıcılar yer almaktadır.

SQL Server Yedekleri İçin Windows Server Deduplication

Windows sunucu yazılımı üzerinde gelen Deduplication  yani tekilleştirme uygulaması ile oldukça fazla disk alanı kazancı sağlayabilirsiniz.

Sanal diskler, yedek alınan dosyaların tutulduğu dizinler ya da dosya sunucularında uygulanabilen bu teknoloji dosyaların yer kapladığı alanları tekrar hesaplayarak benzer olan alanların tekrar tekrar disk üzerinde yer kaplamasını engellemektedir.

İnternet üzerinde oldukça fazla kaynak bulabileceğini bu uygulamayı sql server üzerinde koşan veri tabanlarınızın yedeklerini tutuğunuz diskler üzerinde de rahatlıkla kullanabilirsiniz.

SQL server veri tabanları için sıkıştırma imkanı vermektedir. Sıkıştırdığınız yedekler oldukça küçülmektedir. Birde tekilleştirme kullandığınızda yedeklerinizin disk üzerinde kapladığı alan oldukça küçülecektir.

Aşağıdaki örnekte iki gün boyunca sürekli sıkıştırılarak yedek alınan bir veri tabanın tekilleştirme sonucunda diskte kapladığı alan gözükmektedir.

Yedeklerin alanı toplamda 2 GB tutarken tekilleştirme ile disk üzerinde kapladığı alan sadece 250 MB civarındadır.

Active Directory de Custom Arttribute Oluşturma

 

Active Directory Users and Computers konsolunda yer alan tüm nesnelerin özellikleri Schema içerisinde yer almaktadır. Forest kurulduğundan bu nesne özellikleri de otomatik olarak oluşturulmaktadır. Bu özelliklere attribute ismi verilmektedir. Kullanıcı nesnesinin adı, soyadı, hesap ismi, son oturum açma tarihi gibi birçok özellikte bu attribute larda yer alır.

Hazır gelen attributelerden extensionAttribute ler ise istediğimiz bilgileri girmemizi sağlar. Yaklaşık 15 adet  extensionAttribute vardır. Bunlara hazır gelen bilgilerden farklı bilgiler girebiliriz. Örneğin TC kimlik numarası.

İstersek kendimizde attribute oluşturup Active Directory yapısında kullanabiliriz. Bu makalede TC kimlik numarası isimli bir attribute oluşturacağız ve kullanıcılarımıza bu atrribute u atayacağız. Kullanımını kolaylaştırmak içinde birtakım ayarlar yapacağız.

Önemli notlar:

  • Bu uygulamayı yapmadan önce mutlaka bir test yapısında deneyiniz.
  • Uygulamaya başlamadan önce DC lerinizin yedeğini mutlaka alın.
  • Oluşturulan attribute leri silmek zordur. Haberiniz olsun. Yanlış olursa sıkıntı yaşayabilirsiniz.

 

Atrribute lerin ayarları görmek ve yenisini oluşturmak için Active Directory Schema konsoluna ihtiyacımız var. Bu konsol ise varsayılan olarak görünüz halde değildir.

DC makinemizden schema master yüklü olana bağlanıyoruz ve çalıştıra “regsvr32 schmmgmt.dll”  yazarak konsolu görünür hale getiriyoruz.