Sepetiniz

SQL Server Servis Hesabının Windows Üzerindeki Yetkileri

SQL Server Servis Hesabını çoğu DBA genellikle sunucu üzerinde Administrator olarak tanımlar. Aslında bu yetkiye gerek yoktur. Bilgi güvenliği gereği her kullanıcıya çalışabileceği minimum yetkilendirme politikasını benimsemelisiniz.

 

SQL Server Servis Hesabının çalışabileceği minimum yetkiler aşağıdaki gibidir;

 

 

 

Log on as a service(SeServiceLogonRight)

Replace a process-level token (SeAssignPrimaryTokenPrivilege)

Bypass traverse checking (SeChangeNotifyPrivilege)

Adjust memory quotas for a process (SeIncreaseQuotaPrivilege)

 

Bu yetkileri tanımlamak için SQL Server sunucusu üzerinde windows home’da secpol.msc yazıyoruz ve enter’a basıyoruz.

 

 

Açılan ekranda Local Policies ve User Rights Assignment’ı seçiyoruz.

 

 

Gelen ekranda yukardaki 4 maddede belirtilen policy’leri teker teker çift tıklayarak aşağıdaki ekran görüntüsünde gördüğünüz yerde Add User or Group yazan yere tıklayarak sql server servis hesabını ekliyoruz ve ok’e tıklıyoruz.

 

Belirttiğim 4 policy içinde aynı işlemi tekrarladığınızda işlem tamamlanmış olacaktır.

Ouorum ve Msdtc Disklerin Başka Bir Storage’a Taşınması

İlk olarak kurumunuzda storage’ı yöneten kişiden iki tane 5 GB boyutunda disk istemelisiniz. Bu 2 diskin windows cluster’a dahil tüm sunucular tarafından görülebiliyor olması gerekiyor.

 

diskmgmt.msc yazarak disk management’a giriyoruz. Öncelikle sistem ekibinin tanımladığı disk’e sağ tıklayıp Online’a alıyoruz ve initilalize ediyoruz. Initialize ederken GPT’yi seçiyoruz. MBR eski bir teknoloji ve 2TB’ın üstünü desteklemiyor. Bu yüzden bütün disk kurulumlarınız için GPT’yi seçebilirsiniz.

 

 

ve aşağıdaki gibi unallocated yazan yerde sağ tıklayıp new simple volume diyoruz.

 

 

Next Next diyerek ilerliyoruz ve aşağıdaki ekran geldiğinde cluster üzerindeki sunuculardan hiçbirinde kullanılmayan bir harf’i seçiyoruz.

 

 

Bir sonraki ekranda diskimizi formatlayacağız. Aşağıdaki gibi File system’i NTFS olarak seçiyoruz. Allocation unit size’da sql server için tavsiye edilen best practice 64K’dır. Biz burada quorum’u konfigure ediyoruz ama yinede 64 olmasında bir sakınca yok. Volume label’ına da içinde quorum geçen ve hangi storage’dan olduğunu ifade eden bir isim vermelisiniz.

 

 

Finish diyerek işlemimizi tamamlıyoruz.

 

Daha sonra Failover Cluster Manager’a gelip sağ tıklayarak aşağıdaki gibi Add Disk diyoruz.

 

 

Karşımıza aşağıdaki gibi bir ekran gelecek. Kurulumu yaptığımız sunucuda disk management’tan bakarak quorum ve msdtc için hangi diskleri tanımladılarsa onları seçiyorum ve ok diyorum.

 

 

Ouorum için tanımlanan disk üzerinde CNO(ClusterNameObject yani windows cluste’ınızın ismi, failover cluster manager’da ağaç yapısının en üstündeki isim)’ya ve kurulum yaptığınız kullanıcıya gerekli yetkileri verelim. Bu işlem için Computer’da ilgili diske sağ tıklıyoruz ve properties diyoruz. Security Tab’ından Edit diyerek Add diyoruz. Object Types kısmında Computer’ı seçmezseniz CNO’yu yetkilendiremezsiniz.

 

 

Daha sonra Failover Cluster Manager’a gelerek Windows Cluster Name üzerinde sağ tıklayarak MoreActions ve ardından Configure Cluster Quorum Settings…’e tıklıyorum.

 

 

 

Gelen ekranda Select the quorum witness ‘ı seçiyorum.

 

 

Gelen ekranda Configure a disk witness’ı seçiyorum.

 

 

Gelen ekranda quorum için belirttiğim diski seçiyorum ve next next diyerek işlemi tamamlıyorum.

 

 

Quorum diskin yapıldırmasını bu şekilde bitirmiş olduk. Quorum için kullanılan eski disk artık Available Stora olarak gözükür. Bu diske sağ tıklayarak remove diyerek windows cluster’dan kaldırabilirsiniz.

MSDTC için konfigurasyonu yeniden yapılandırmak yerine önce kaldırıp sonra tekrar kurmamız gerekiyor. Kaldırmak için öncelikle aşağıdaki gibi  Failover Cluster Manager’dan Roles sekmesinden Type’ı msdtc olan role’ü bulup sağ tıklayarak remove diyoruz.

 

Remove dediğimizde bize aşağıdaki gibi bir uyarı veriyor. Yes diyerek işlemi tamamlıyoruz. Ama aşağıda linkini verdiğim makaleyle MSDTC’yi yeniden kurarken MSDTC’ye önceki ile aynı ismi verirseniz sıkıntı çıkarabilir. Çünkü MSDTC’yi oluştururken ActiveDirectory’de MSDTC’ye ne ismini verdiysek o isimde bir obje oluşturuyor. Ve aşağıdaki hatada da MSDTC servisini silmenin Active Directory’de oluşmuş bu objeyi silmeyeceğini söylüyor. Yani tekrar oluşturuken zaten bu isimde bir obje var diyebilir. Başka bir isim verirseniz sıkıntı yaşamazsınız. Ya da aynı ismi vermek istiyorsanız MSDTC servisini sildikten sonra Active Directory yöneticinizden bu objeyide silmesini isteyebilirsiniz.

 

 

Kaldırma işlemi bittikten sonra “MS DTC’nin Cluster’a Eklenmesi” isimli makalemde anlattığım gibi MSDTC’yi yeni storage’daki diskimizi kullanarak yeniden yapılandırıyoruz. Yapılandırma işlemi bittikten sonra “MS DTC ile SQL Server’a bağlanmak isteyen bir uygulama için gerekli ayarları yapmak” isimli makalemde anlattığım ayarlarıda yapmalısınız.

Validate Windows Cluster Configuration

Windows Cluster’ınızın konfigurasyonunda bir problem olup olmadığını kontrol etmek için validate configuration işlemini yapabilirsiniz. Windows Cluster’ın konfigurasyonunda bir problem varsa bu cluster üzerine kurulacak SQL Server HA(High Availability) ve DR(Disaster Recovery) çözümlerinde de problem oluşturabilir. Bu yüzden bu makalede anlatacağımız cluster configuration validation sorumluluğunuzu yeni aldığınız bir sistemde ilk yapmanız gereken adımlardan biridir. Bunun dışında “Yeni Kurulumda yapılması gereken konfigurasyonlar” makalemi okumanızı tavsiye ederim.

 

İlk olarak Failover Cluster Manager’ı açarak aşağıdaki gibi Validate Configuration diyoruz.

 

Gelen ekranda aşağıdaki gibi hangi cluster’ı validate edecekseniz Enter name kısmına onu yazmanız gerekiyor. Cluster isminizde yanlışlık yapmamak için Browse’a tıklayabilirsiniz.

 

 

Browse dedikten sonra karşımıza çıkan ekranda aşağıdaki gibi Locations…’a tıklayarak cluster’ımızın dahil olduğu domain’i seçiyoruz ve Enter the object names to select kısmınada cluster’ımızın ismini yazıp Check Names’e tıklıyoruz ve ok diyoruz.

 

Bütün bunları yapmak yerine Windows Cluster’da kendi cluster’ımızın üstüne tıklayarak aşağıdaki gibi Validate Cluster diyebiliriz.

 

Bir sonraki ekranda aşağıdaki gibi Run only tests I select’i seçiyoruz. Run all tests(recommended)’ı seçmeme sebebimiz disklerin konfigurasyonunu kontrol ederken uygulamada kısa kesintilere nede olabilmesi.

 

 

Aşağıdaki gibi storage’ı çıkarıyoruz.

 

 

Next ve Finish diyerek işlemi tamamlıyoruz.

 

 

View Report diyerek Validation’ın sonucunu inceleyebiliriz. Yada Failover Cluster Manager’da Cluster’ımıza sağ tıklayarak View Validation Report diyebiliriz.

 

MS DTC’nin Cluster’a Eklenmesi

Bu makalede MS DTC ‘nin Windows Cluster’a eklenmesi işlemini yapacağız.

diskmanagement’a gelerek windows cluster üzerindeki her sunucu üzerinden görülebilecek, msdtc için kullanacağımız diske bir harf verelim. diskmgmt.msc yazarak disk management’a giriyoruz. Öncelikle sistem ekibinin tanımladığı disk’e sağ tıklayıp Online’a alıyoruz ve initilalize ediyoruz. Initialize ederken GPT’yi seçiyoruz. MBR eski bir teknoloji ve 2TB’ın üstünü desteklemiyor. Bu yüzden bütün disk kurulumlarınız için GPT’yi seçebilirsiniz.

ve aşağıdaki gibi unallocated yazan yerde sağ tıklayıp new simple volume diyoruz.

Next Next diyerek ilerliyoruz ve aşağıdaki ekran geldiğinde istediğimiz ve windows cluster’daki hiçbir sunucu üzerinde kullanılmayan bir harf’i seçiyoruz. Bu çok önemli çünkü sunuculardan birinde kullanılan bir harfi seçerseniz ve msdtc o sunucu üzerine failover olursa çalışmayacaktır. Hatta o diskinizin olduğu veritabanları da çalışmayabilir(benim başıma bir kere geldi! Böyle bir durumda hemen msdtc’yi tekrar eski yerine failover yaparak sorun çözüldü.)

 

Bir sonraki ekranda diskimizi formatlayacağız. Aşağıdaki gibi File system’i NTFS olarak seçiyoruz. Allocation unit size’da sql server için tavsiye edilen best practice 64K’dır. Biz burada msdtc’yi konfigure ediyoruz ama yinede 64 olmasında bir sakınca yok. Volume label’ına da içinde msdtc geçen ve hangi storage’dan olduğunu ifade eden bir isim vermelisiniz.

 

 

Finish diyerek işlemimizi tamamlıyoruz.

 

Bu işlemler bittikten sonra failover cluster manager’a gelerek aşağıdaki gibi Storage->Disks->Add Disk diyoruz.

 

Karşımıza 2 sunucu üzerindende görülebilecek disk çıkıyor ve ok’e tıklayarak diskimizi cluster’a ekliyoruz.(Bu disk biraz önce tanımladığımız disk)

 

Daha sonra yine Failover Cluster Manager’dan aşağıdaki gibi Roles’e sağ tıklayark Configure Role diyoruz.

 

 

Gelen ekranda Do not show this page again’i tıklayarak next diyoruz. Böyle bir sayfa sizde çıkmayadabilir.

 

Bir sonraki ekranda aşağıdaki gibi Distrubuted Transaction Coordinator(DTC) seçeneğini seçip next diyoruz.

 

 

Bir sonraki gelen ekranda clusterdtc’ye aşağıdaki name kısmından bir isim veriyoruz. Biz CLUSTERDTC dedik. Birde Address kısmında Click here to type an address yazan yere de CLUSTERDTC için network ekibinden istediğimiz kullanılmayan ve windows cluster IP’mizle aynı subnette olan bir IP girerek next diyoruz. Bu işlemin sonunda CNO(ClusterNameObject->yani windows cluster’ınızın adı) Active Directory’de CLUSTERDTC isminde bir computer objesi oluşturacak. Bu yüzden Active Directory ekibinizden CNO’ya active directory’de Create Computer Objects yetkisi vermelerini istemelisiniz.

 

 

Bir sonraki ekranda karşımıza biraz önce tanımladığımız disk çıkıyor. Diskin solundaki kutucuğa tıklıyoruz.

 

 

Next,next ve finish diyerek işlemi tamamlıyoruz. MSDTC kurulumunu tamamladıktan sonra uygulamaların cluster msdtc’yi kullanmaları için “MS DTC ile SQL Server’a bağlanmak isteyen bir uygulama için gerekli ayarları yapmak” isimli makalemdeki ayarları yapmanız gerekir.

Paylaşım Tanımlamak ve Tanımladığımız Paylaşımı SQL Server’ın olduğu sunucuya Map Etmek

Sunucular arası veritabanı taşımak için, bir başkasına backup iletmek için ve benzeri çeşitli ihtiyaçlar için share tanımlamamız gerekebilir. Yada bizim için tanımlanmış bir share’i drive olarak SQL Server’ın olduğu sunucuya gösterip bu paylaşıma backup almamız gerekebilir.

Aşağıdaki gibi herhangi bir klasör açıp Computer’dan Map a network drive’ı seçiyoruz.

 

 

Share edilecek dosyanın olduğu sunucuya gidip bir Share isminde bir klasör oluşturuyoruz ve klasör’e sağ tıklayıp properties diyoruz. Sharing sekmesinden Advanced Sharing’i seçiyoruz.

 

 

Share this folder’ı seçip share’imize bir isim veriyoruz. Permission sekmesine tıklayıp Everyone’a remove diyerek kaldırıyoruz ve kendi kullanıcımızı ve eğer bu share’i sql server kullanacaksa sql server’ın servis hesabını tanımlıyoruz ve Full Control veriyoruz.

 

 

Aşağıdaki gibi Drive ismini belirliyoruz. Biz örneğimizde Z olarak seçtik. Folder kısmına da örnekteki gibi Share’e nasıl ulaşıyorsak o şekilde giriş yapıyoruz.

 

 

Finish diyerek işlemi tamamlıyoruz.