SQL SERVER 2014 ALWAYS ON’A ADIM ADIM..

Merhaba arkadaşlar,

Paylaşacağım bu yazıyı zaman içinde güncelleyerek yazmaya devam edeceğim.Yapacağım işlemlerle birebir bir anlatım olacağı için sorun yaşayabileceğim kısıma geri dönüp düzeltmelerde bulunmak zorunda kalabilirim [ ki kaldım 🙂 ]..Resimlerle de desteklenecektir (resimleri büyütmek için üzerine tıklamanız yeterli).

1-) SANAL MAKİNE VE SERVER KURULUM 

İlk olarak 8 GB Ram i 350 GB harddisk i olan bilgisayarıma VMware Workstation (11) i kurdum ve 3 sanal makine oluşturdum.Oluşturduğum sanal makinelerden birini DOMAIN CONTROLLER (DC) diğerlerini de KLON2 ve KLON3 olarak belirledim.Daha sonra 3 sanal makineye de Windows Server 2012 R2 yi kurdum.İlk ayarları olarak önce 2 sine (KLON2 ve KLON3) 2GB RAM DC ye 1 GB RAM ve 60 ar GB lık harddiskten yer verdim.

1_baslangıc

2-) DC YE DOMAIN KURULUMU

DC makinada active directory domain service (ad ds) i kuracağız.Bunun için DC da Server Manager Dashboard da Manage kısmını gelip Add Role and Features diyip ayarlarımızı yaptık.Karşımıza gelen Wizard’da Before you Begin için Next diyoruz,Installation Type için Role Based seçeneğini seçip Next yapıyoruz,Server Selection adımı için Select a Server from Server Pool seçeneğini seçip Next yapıyoruz,burada kuracağımız makinenin IP adresi yine alt kısımda görülecektir,isterseniz bunu burda not edin.Server Role adımında ise Active Directory Domain Service i tiklememiz yeterli.Karşımıza gelen ekrana ADD diyip devam ediyoruz.Feature adımında herhangi bir değişiklik yapmıyoruz Next diyip geçiyoruz.AD DS kısmına next ve son adım olan Confirmation da Restart özelliğini seçip Yes diyoruz ve Install diyoruz.Böylece domain imizi kurmuş olduk.DC olan makinemin IP adresi de 192.168.137.128 olarak veriyorum.

Kurduktan sonra Dashboard üstündeki FLAG de bir uyarı görülecek ve buna tıklayıp Promote This Server a Domain Service seçeneğiyle devam ediyoruz.Deployment Configuration kısmında Add a new Forrest diyoruz ve bizden bir root domain adı istiyor.Burda nokta ile birbirinden ayrılmış en az 2 kelime giriyoruz.erol.com,erol.local gibi..Ben erolakgul.wordpress.com diyip geçiyorum.Domain Controller Options kısmında Forest ve Domain level’larımı server 2012 R2 olarak seçiyorum ve alt kısımda da DNS SERVER kurulumu için tikli olmasına dikkat ediyorum.

Daha sonra da bir altta hemen daha önce backup ı alınmış active directory lerin restore işlemlerinde kullanılmak üzere bir şifre beliriyoruz “Password1” gibi.Next ten sonraki adımda bize bir hata gösterecek DNS oluşturamadığıyla ilgili şuan için önemsemeyip Next diyoruz.Additional Option kısmında bizden NetBIOS Domain name istiyor ben bu kısma EROL deyip geçiyorum.Path kısmında bize kurulacak olan adresleri gösterecek default olarak gelen ayarlara dokunmayıp Next diyoruz.Review Option kısmına Next dedikten sonra bir sonraki adımda Succesfully olarak gerçekleşmiş işlemi görüyoruz ve Install diyoruz.Yükleme bittikten sonra bizden DC nin restart edilmesi gerektiğni söylecek ve restart işlemini gerçekleştiriyoruz.DC yeniden açıldığında sizde karşınızda NetBIOS Domain Name e yazdığınız “isim”\Administrator olarak giriş yapacaksınız.Artık bu makine de Local deki admin değil Domain deki admin olacaksınız. Server Manager da ise artık AD DS ve DNS hizmetlerini de görüyor olacaksınız.Manage in hemen yanındaki Tools larda ise Active Directory Bileşenlerini de görüyor olacaksınız.

3 adet sanal makinemiz vardı bunlar DC (192.168.137.128) ve KLON2 (192.168.137.129) ve KLON3(192.168.137.130).Bunların ilk önce haberleşebilmelerini sağlayacağız.Bunun içinde ilk önce ;

2_vmnet baglantıları

DC sekmeye sağ tıklayıp settings den Network Adapter kısmına gelip Custom yazan yer için Vmnet3 switch ini seçiyoruz.Aynı işlemi KLON2 ve KLON3 ümüz içinde yapıyoruz.

2-A) IP YAPILANDIRMASI

DC’nin sağ altta internet erişim ikonuna sağ tıklayıp Open Network and Sharing Center’a tıklıyoruz.Açılan pencerede connections kısmında ethernet e tıklıyoruz.Açılan ekranda Properties e tıklıyoruz ve yeni sayfaya yönlendiriliyoruz.Açılan ekranda Internet Protocol Version IPv4 ayarlarına tıklıyoruz burda yapmamız gereken değişiklikler var onları kontrol edeceğiz.

3_ip yapılandırması

IP adres kısmına o makinemizin adresini yazıyoruz.Subnet Mask’ı IP nin son sayısını yazdıktan sonra tab a bastığınızda otomatik olarak atayacaktır zaten.DNS SERVER adresses kısmına ise o makinemizin kullanılacağını belirtmek için LOCAL IP anlamına gelen 127.0.0.1 olarak giriyoruz.Dns server hangi makinedeyse o makinenin adresini de verebiliriz ayrıca.

3-) KLON2 Yİ DC YE BAĞLAMA

DC de gerekli ayarları yaptıktan sonra sıra geldi KLON2 yi Domain’e bağlamaya.DC de yaptığımız gibi network and sharing center ı açıyoruz ve Internet Protocol Version IPv4 ayarlarına geliyoruz.

4_klon2 ip

Buradaki IP adress kısmına 2.makinemiz olan KLON2 nin IP adresini yazıyoruz bu sefer.Dns Server Adresses kısmına ise bağlamak istediğimiz makinenin IP sini yani DC’nin IP adresini giriyoruz ve OK diyip çıkıyoruz.

Daha sonra da başlat menüsünden System e giriş yapıyoruz.Açılan pencerede Computer name domain and workgroup un karşısındaki Change Settings e tıklıyoruz ve System Properties ekranı ile karşılaşıyoruz.Burda da Change e tıklıyoruz ve Computer Name/Domain Changes ekranında Computer Name kısmına KLON2 hemen alttaki Domain kısmına ise DC de oluşturduğumuz Root Domain Name i yani erolakgul.wordpress.com u girdim.Ok dediğim an bana DC de yetkili kullanıcının Kullanıcı adını ve şifresini girmemi istiyor.Bu kısımda Administrator ile şifresini girdikten sonra karşınıza Welcome to erolakgul.wordpress.com domain uyarısı gelicektir.Ok dedikten sonra KLON2 yi yeniden başlatmanız gerekecektir.

KLON2 makinesi yeniden açıldığında karşınıza KLON2\Administrator kullanıcı adıyla gelecektir herhangi bir domain oluşturmadığımız için burda yine LOCAL de bir kullanıcıdır bu da.Fakat domaine bağladığımız için bu makineyi admin hesabıyla girmemiz gerekmektedir ve switch user diyip Administrator yazdığınızda hemen altta log on to KLON2 yazacaktır yani hala local de bir makineye giriş yapacağımızı söylüyor bize.Dolayısıyla kullanıcı adını Administrator@erolakgul.wordpress.com olarak yazdığım an alt kısımda log on to erolakgul.wordpress.com yazacaktır,yani root domaine bağlanacağımızı söylemektedir.Şifre olarakta DC nin şifresini giriyoruz.KLON2 nin şifresini girmiyoruz bu unutulmamalı.Dolayısıyla başka bir makineden DC ye yine Adminmiş gibi bağlanıyoruz.

5_KLON2 system

domain22222

4- KLON3 ü DC YE BAĞLAMA

Aynı işlemleri KLON3 içinde yapıyoruz,

6_klon3 ip

IP ayarlamalarını yaptıktan sonra “CMD” yi açıp haberleşip haberleşemediklerine bakıyoruz; [ ilk kurulumda root domain adını “erolakgul.wordpress.com” vermiştim fakat tekrar kurduğumda yapıyı “erol.local” ismini verdim]

6_pıng

Görüldüğü üzere ping atma işlemleri de başarıyla gerçekleştirildi,Domain’e katma işini de yaptıktan sonra en son yine DC nin admini ve parolası ile giriş yapıyoruz ve ilk işlemlerin bu adımlarını sonlandırıyoruz.

7_KLON3 system

NOT : Bundan sonraki bütün işlemler için klon2 ve klon3 e domain admin olarak giriş yapıyoruz “Administrator@erol.local” gibi gibi…

5-SQL CLUSTER NODE’LARI İÇİN ORGANIZATION UNIT (OU) YAPILANDIRILMASI

DC üzerinde “Search” e active directory users and computers yazıyoruz ve pencereyi açıyoruz,gelen ekranda “Computer” a baktığımızda KLON2 ve KLON3 ün bağlı olduğunu görüyoruz.

8_ad

Şimdi geliyoruz Cluster işlemleri için bir organizasyon birimi oluşturmaya.Bunu cluster üyesi olacak kullanıcılar ve node ları bu organizasyon çevresinde toplamaya çalışarak yapacağız.İlk olarak erolakgul.wordpress.com domaini altında MSSQL Cluster işlemleri için ayrı bir OU oluşturuyoruz;

Şekildeki gibi başlıyoruz..
Şekildeki gibi başlıyoruz..

Adına da “Cluster SQL” diyoruz.Bunun altına şimdi diğer “OU” ları teker teker tanımlıyoruz;

10_cluster

MSSQL Cluster OU su ise şu alt OU’lara sahiptir.

Servers = Cluster’a üye sunucuların yer alacağı OU dur.

Users = Cluster işlemleri ve servisler için açılan kullanıcıların yer aldığı OU dur.

Groups = Cluster işlemleri veya bu grubun üyesi sunucular için bir Group gereksinimi mevcut ise bu OU altında oluşturulur.

Shared Object = GPO ile sunucular için bir Folder Share edilmesi gerekiyor ise bu OU altında belirtilir.

Organization Unit yapısında şimdi de Sql Server Servis’leri için kullanıcı tanımlamalarına geldi sıra.Sql Server Cluster kurulumunda Sql ve diğer servislerin bir Domain kullanıcısına ihtiyacı vardır.Oluşturacağımız kullanıcı Sql Server Servislerine bağlanabiliyor olacak ;

2_user_oluşturma

Boşlukları doldurduktan sonra “Next” diyoruz ve bizden bir şifre tanımlamamızı istiyor.Tanımladıktan sonra da hemen altındaki “user cannot change password” ile “password never expire ” seçeneklerini tikliyoruz ki kullanıcı hem kendi şifresini kendisi değiştiremesin değiştirmesi gerekiyorsa da bundan haberimiz olsun hem de tanımladığımız şifrenin bir miad ı olmasın.Tekrar Next ve sonraki ekranda da finish diyip bitiriyoruz.Domain adımıza refresh yaptığımızda oluşturduğumuz kullanıcı görünmüş oluyor.

13_son kısmı

5-A) Cluster Üyesi Sunucular için Group Policy Ayarları,

//** NOT:sanal makineleri tekrar kurmak zorunda kaldım,root domain name olarak daha kısa olan “erol.local” ismini verdim,onun dışında bir değişiklik yapmadan yazımıza devam ediyoruz.**//

Group Policy ayarları için ilk olarak “Group Policy Management” penceresini açıyoruz.Ve domain altındaki erol.local sekmemize sağ tıklayıp “Create a gpo in this domain and link it here” diyoruz ve zaten var olan “default domain policy ” altında yeni açtığımız “sql cluster policy” inin de olduğunu görüyoruz.

Şimdi burdan ayarlarımıza devam ediyoruz,”Sql Cluster Policy” e sağ tıklayıp “Edit” diyoruz ;

1_group policy

Karşımıza “Group Policy Managent Editor” ekranı gelecektir.Local Users and Groups a kadar geliyoruz sağ tıklayıp new local groups diyoruz ;

2_userpoliciy

Dedik ve bir sürü ekran açıyoruz,adım adım tıklayarak en son -> organization unit açıp “MSSQL Cluster” isimli OU muzun altındaki “Users” için oluşturduğumuz isim soyisim i “erol akgul” olan ve logon name i “clsadmin@erol.local” olan kullanıcımızı domain user seviyesindeki kullanıcılarımızı Cluster sunucularımızın Administrator grubuna üye yapmış olacağız.

“New local group properties” ekranımızda ; “Action” sekmesinde Update i seçiyoruz çünkü zaten oluşturduğumuz bir kullanıcı var ve bunun güncellemesini yapacağız sadece,”Group Name” sekmesinde kullanıcıyı hangi gruba dahil edeceğimiz bilgisini dolayısıyla administrator grubunu seçiyoruz; 2 nolu kısma tıklayıp hangi domain kullanıcımızı bu gruba dahil edeceğimiz bilgisini giriyoruz;3 nolu ekran geliyor karşımıza ve ordaki 3 noktalı butona tıklayıp “Select user and group” sayfasına gidiyoruz;4 “advanced” e tıklayıp ordan da son ekranımıza geçiyoruz;burda 5 “find now” a tıklayıp domain deki tüm kullanıcıları görebiliyoruz; 6 nolu kısım hariç diğer tüm kullanıcılar “erol.local/Users” şeklindedir.Sadece MSSQL Cluster için oluşturduğumuz kullanıcı “cluster” üyesidir.Onu seçip “ok” diye diye ilk ekrana geri dönüyoruz ;

3_policygroupson

Kürkçü dükkanımıza geri döndüğümüzde “Members” altında EROL\clsadmin hesabımızı görebiliyoruz.Yan tarafında da “SID” Securtiy Identifiers numarası da yayınlanmaktadır.”Apply” diyerek işlemimizi bitiriyoruz.Artık bu OU altında yer alan sunucular için bu kullanıcımız otomatik olarak “Local ADMIN” seviyesinde olacaktır.

NOT : Cluster Adminimizle (clsadmin@erol.local) sql server’ları kurmadan hemen önce KLON2 ve KLON3 e bağlanacağız bunu unutmayalım.

5-B) Local Admin’in Cluster İşlemleri İçin Yetkilendirilmesi

Oluşturduğumuz kullanıcıya Local Admin olma yetkisini verdikten sonra OU’da ki tüm özellikleri okuyabilme yetkisini vermek için Sql sunucularımızın yer aldığı Computer sekmesi altında gerekli izinleri vereceğiz.Active Directory Users and Computers ekranımızı tekrar açıyoruz.”Cluster SQL” OU’muza sağ tıklayıp “View” den “Advanced Features” ı aktif ediyoruz.Böylece “Server” sekmemize sağ tıklayıp “Properties” dediğimizde “Security” tab ını açmış olacağız;

4_yetkilendirme

Security sekmesinde “add” diyip bizim kullanıcıyı bir ekliyoruz önce,sonra “advanced” diyip gelişmiş güvenlik ayarlarının açılmasını bekliyoruz.Ekran gelince de bizim malum kullanıcıyı seçip “Edit” diyoruz ve ;

5_izinler

vermeniz gerekli izinleri bu kullanıcıya atayıp “ok” e tıklaya tıklaya işlemimizi sonlandırıyoruz.

6-) KLON2 ve KLON3 e ek Adapterlerin Takılması ve IP Yapılandırılması

İlk kurulumda DC-KLON2-KLON3 ün birbirleriyle olan network bağlantısını VMmnet3 üzerinden yapmıştık.Şimdi şu şekilde bir yapılandırmaya gidiyoruz;

8_net bağlantıları

“Add” diyerek öncelikle 2 adet daha “Network Adapter” ekliyoruz.Daha sonra 2.ye “VMnet2”,3.ye de “NAT” connection ı seçiyoruz.Aynı yapılandırmayı KLON3 içinde yapıyoruz.

9_isim değiştirme

KLON2 üzerinde sağ alttaki network adapterlerin üzerine ok ile geldiğinizde yukarıdaki resimdeki gibi baloncuk oluşacaktır ve hangi adapter olduğu görünecektir.Sağ tıklayıp “disconnected” dediğinizde yukarıda bir bağlantı kopacaktır ve isimleri de “VMnet3 -> MANAGEMENT” , “VMnet2 -> HEARTBEAT” ,”NAT -> STORAGE” olmak üzere değiştiriyoruz ki işimiz daha kolay olsun.KLON3 te de yine aynı ayarları yapıyoruz.Son olarak IP lerini yapılandırmalarını da ;

KLON2 makinesi üzerinde heartbeat için şu değişikliği yapıyoruz ;

10_heartbeat

“Storage” içinse farklı bir IP yapılandırmıyoruz.Otomatik olarak kalıyor.KLON3 ün “HEARTBEAT” adapteri için IP “1.1.1.2/24” olarak giriyoruz ve “Storage” yine otomatik IP alacak şekilde bırkarıyoruz ;

9_network sharing

KLON2 ve KLON3 makinelerimiz şuan internete de çıkabiliyor oldu.

6-A) Ek Güncellemelerin Alınması

Server Manager’dan KLON2 ve KLON3 e “Add feature and roles” dan “.NET 3.5” ile “Failover Cluster” ları yüklüyoruz.İşlemler sonrası restart yapıyoruz.Açıldığında da 2 makinenin “windows update” lerini alıyoruz.

7-) Failover Cluster’ların Kurulması

Güncellemeleri aldıktan sonra failover cluster ı kurmadan hemen önce oluşturduğumuz ve Cluster’a eklenecek 2 node’un da (klon2 ve klon3) validate control’den eksiksiz bir şekilde geçmesi beklenir.Kontrol için (failover cluster ı klon2 ye kuracağız biz de) server manager -> tools tan “failover cluster manager” ı açıyoruz ;

11_failover tes

“Validate Configuration” diyoruz ve test işlemimizi yapmak için “Select server or cluster” da browse->advanced->find now deyip sadece klon2 ve klon3 ümüzü seçiyoruz ;

12_node seç

“ok” deyip node’ları ekliyoruz.”testing option” sekmesinde “run only tests i select” kısmını seçip next diyoruz.”test selection” sekmesinde “Storage” kısmının tick ini kaldırıp next diyoruz tekrar,”Confirmation” sekmesinde tekrar next diyoruz;

14_report

Küçük bir hata aldık “validate ip configuration” ile ilgili ama devam edip cluster kurmaya devam edebiliriz önem arz eden bir hata değil ;

16_report2

Wizard ekranında önce bir “cluster name” giriyoruz (EASQLCLS) ,bendeki IP yapılandırması bende otomatik olduğu için boş bir IP adresi buldu ve kendisi ekledi.

NOT: Daha sonra storage adapter ini kapatıp klon2 ve klon3 te,klon2 de tekrar cluster oluşturdum ve de elimle “192.168.137.100” IP sini verip kuruluma devam ettim.

17_CLUSTER

Cluster ı oluşturduktan sonra “QUORUM” ayarlarını yapıyoruz hemen.Öncelikle bir dosya açıp bunu gerekli izinleri veriyoruz.

2_quorum dosyası

Şekilde de görüldüğü gibi 5 adımda bu kurulumu da yapmış oluyoruz.Network paylaşım url si bize lazım olacak o dosyanın,daha sonra oluşturduğumuz cluster a sağ tıklayıp 1 üst resimde gösterildiği şekilde ilerleyip “configure” e geliyoruz ;

1

Gelen wizard penceresinde “select quorum configuration option” sekmesinde “advanced quorum configuration” ı seçiyoruz ve next diyoruz.Bir sonraki ekranda hangi node ları alacağını soruyor onda da “all” seçeneğini işaretleyip “klon2 ve klon3” ü ekliyoruz.Bir sonraki adım da “configure a file share witness ” ı seçiyoruz ki klon1 deki paylaşılmış dosyayı seçtirelim,next diyoruz.Bu adımda da klon1 de oluşturduğumuz o dosyanın network yolunu gösteriyoruz.Next-finish diyerek işlemi sonlandırıyoruz.

8 -) SQL SERVER 2014 ün KLON2 ve KLON3 e Kurulması

Bu işlem öncesinde cluster admin olarak oluşturduğumuz (clsadmin@erol.local) kullanıcı ile klonlarımızı tekrar açıyoruz.

3_clsadmin

Sql Server için iso dosyamızı gösterip kuruluma başlıyoruz.”New Sql Server standalone ..” seçeneği ile başlıyoruz ve klasik kurulumumuzu yapıyoruz.Gerekli güncellemeleri kontrol etmemiz gerekiyor,güncellemeleri aldıktan sonra bi kaç adıma dikkat etmek gerekiyor ;

4_latin1     5_serve configuration

“collation” sekmesinde default olarak gelen dil ayarına dokunmuyoruz.”Server Accounts” sekmesinde ise “account name” kolonunda bizim oluşturduğumuz cluster admini seçiyoruz password ünü de hemen yanındaki kolona yazıyoruz;

6_sa admin

“sa” için bir şifre belirliyoruz,sql server admini olarak cluster adminimizi seçiyoruz.next next install diyerek kurulumumuzu tamamlıyoruz ;

7_setup

“Succeeded” larımızı da aldık,close diyip kapatıyoruz.;

9_klon2 sql server      10_sql server

Cluster adminimiz ile giriş yaptığımızda sql sunucumuzda açılmış oluyor,sa ile de bağlanabilirdik.Şimdi aynı adımları klon3 içinde yapıp sql server 2014 ü kuralım;

11_klon3 sql server     12_klon3

9 -) Node’larda ki Always On’un Aktif Hale Getirilmesi 

Klon3 e de sql server’ları kurduktan sonra sunucularda “Always On” u aktif etmek için “sql server configuration manager” ları açıyoruz ;

13_configuration manager

Yukarıdaki adımları izleyip Sql Server (msssqlserver) a sağ tıklayıp özellikleri açıyoruz.

14_alwayson

Gelen ekranda “Always On High Availability” sekmesini seçtiğimizde default olarak “Windows failover cluster name” imimizin geldiğini görüyoruz (EASQLCLS).Bu pencerede yapacağımız tek işlem hemen alttaki “enable alwayson availability groups” seçeneğini tikleyip “apply” tuşuna basmak olacak.Gelen uyarı ekranına ok deyip,sql server service ine sağ tıklayıp restart diyoruz ve sql sunucularımızda always on u aktif hale getiriyoruz.Aynı işlemleri klon3 üzerinde de yapıyoruz ve orada da aktif hale getiriyoruz…

TCP\IP ayarlarından da ;

16_tcpıp

şekildeki gibi adımları izleyip enable=yes olarak ayarlıyoruz ve IP üzerinden klon2 ve klon3 ün haberleşebilmelerini sağlıyoruz.Klon3 te de aynı işlemleri yapıyoruz herzamanki gibi..

**DC de active directory i açıp “Computer” sekmesine gelip sağ tık özelliklerden “security” kolonunda “add” deyip cluster adminimizi ekiyoruz,”advanced” den de “create computer ve delete computer” yetkilerini verip işlemimizi tamamlıyoruz bu kısımda da.

**Klon2 node’umuzda sql server ‘a da deneme amaçlı olarak “Northwind.bak” uzantılı dosyaları restore edip yüklüyoruz.

15_restore

** Northwind e sağ tıklayıp properties->options dan recovery model ini full e çekiyoruz.Çünkü database tarafında bu veritabanının bir full back up ı bulunmak zorunda.

**Yeni açtığımız Sql Server a hazır bir database restore ettikten sonra (KLON2’ye) o database in hemen bir full back up ını alıyoruz.Bunun için yine sağ tıklayıp task->Backup diyoruz ve hızlı bir şekilde backup ını alıyoruz.

10 -) AlwaysON Gruplarının Oluşturulması

**Klon2 de C’nin altına paylaşıma açık bir klasör oluşturuyoruz şimdi ;

17_FOLDER

2.adımda cluster adminimizle bu paylaşımı yapıyoruz,ek olarak Permission’dan “add” deyip cluster adminimizi buraya da ekliyoruz “apply” deyip pencereleri kapatıyoruz.

**Sql server da “AlwaysOn High Availability” dizini altındaki “availability groups” a sağ tıklayıp “new ..wizards” ekranına geliyoruz ;

** “Specify Name” ile oluşturmak istediğimiz availability groups a bir isim veriyoruz ve next diyoruz;

** “Select Database” de veritabanımızı seçiyoruz,bizim zaten 1 tane olduğu için sadece “northwind” göründü,eğer o database in full backup ını aldıysanız “status” kolonunda “meet prerequisites” açıklamasını göreceksiniz,neyse northwind i seçip next diyoruz;

** “Specify Replicas” sekmesinde “Replicas” kulakçığında “add replica..” a tıklayıp “KLON3” ü görmesini sağlıyoruz.Klon3 e yine cluster adminimizle bağlanıyoruz TABİ BUNUN İÇİN FIREWALL ayarlarında “Domain Network Settings” için güvenlik duvarını kaldırıyoruz.Diğer türlü KLON3 ünüze bağlanamayacaktır.

18_specifyreplicas

Synchronous ve Automatic Failover kolonlarını tikliyoruz ve ikincil database in okunabilir olmasını istiyorsak yani birinci de işlemleri yaptırıp ikince de sorgu çektirtmek istiyorsak “yes” olarak işaretleyebilirsiniz ;

*** “Endpoint” kulakçığında ;

19_endpoint

2 bilgisayarın hangi port üzerinden haberleşeceğini gösterir.Önemli olan ise 5022 no’lu port un firewall da açılmış olmasıdır.Endpointler sayesinde sql server lar replika işlemlerinde haberleşmeyi sağlarlar..

*** “backup preferences” kulakçığında ise,backup ların hangi sunuculardan alalım diye soruyor ;

20_backup preference

prefer secondary -> ikincil den al,sıkıntı olursa birincilden al backup ları

secondary only -> sadece ikincil den al

primary -> sadece  birincil den al

any replica -> bu kısımda klon2 ve klon3 e önem arz ediyorsunuz,klon2 yüzde 51,klon3 yüzde 49 yaparsanız önceliği klon2 olur.

*** “listener” kulakçığında ise ;

21_listener

Eğer SQL sunucularınıza Cluster servisinin IP veya Hostname’i ile değilde farklı bir IP veya Hostname ile SQL sunucularınıza erişmek istiyorsanız Listener tanımlamamız gerekmektedir.Client tarafında connection string te kullanacağımız bu IP ile sunucularımıza bağlanabilir olacağız.Listener a vereceğimiz Ip sunucularımız üzerinde kullanılmıyor olmalı.Next deyip devam ediyoruz .

** “select data synchronization” sekmesinde verinin senkron edilmesi için yapacağımız tercihi soruyor,”full” kısmında daha önce C diskinde paylaşıma açtığımız “\\Klon2\backupshare” yolunu gösteriyorum next diyorum..

22_validation

yaptığımız işlemlerin doğruluğu başarıyla sınandı.Next diyoruz tekrar.

23_complete_   24_klon3 always

Ve sonunda “always on” için grupları da kurmuş olduk.Geçmiş olsun 🙂

11-) 1433 ve 5022 No’lu Portların Açılması

Bitti mi ? Tabi ki bitmedi.Sunucularımın haberleşebilmesi ve oluşturduğumuz “availability group” un çalışması için “Domain Network Settings” i firewall dan tamamen kapatmıştık.Şimdi öncelikle onu tekrar geri açıyoruz.

**Firewall penceresindeysek hemen sol altta advanced security linkine tıklıyoruz ve “Inbound Rules” u tıklayıp “new rules” diyoruz.Gelen wizard da “Port” seçeneğini seçip next diyoruz,”Protocol and Ports” sekmesinde ;

1_port seçimi

TCP yi seçip 1433 numaralı port umuzu giriyoruz ve next diyoruz,”Action” sekmesinde “Allow the Connection” seçeneğini seçerek erişime izin verdirtiyoruz ve tekrar next,”Profile” sekmesinde “Domain-Private-Public” üçünü de tikleyip kimlerin bağlanmasını istediğimizi gösterip next diyoruz,”name” sekmesinde ise hangi isimle görünmesini istiyorsak onu yazıyoruz ben “MSSQLSERVER_Permission_1433” yazmıştım,son olarak “install” deyip portu açmış oluyoruz.

**Şimdi aynı işlemi önce 5022 numaralı port içinde yapalım ve aşağıdaki gibi bir çıktıyı görelim ;

6_izinler

KLON2 de bu ayarlamaları yaptık şimdi aynı işlemleri Klon3 içinde yapalım böylece hem IP üzerinden uzaktan Sql sunucumuza erişim izni vermiş olalım hem de failover cluster ın çalışmasını sağlayalım.5022 numaralı port Sql server da mirroring işlemleri için kullanılan port olduğu için bizim yapımızda da kullanıma açılması gerekiyordu.Port ları da açtıysak KLON2 de oluşturduğumuz failover cluster da “roles” den alwayson için açtığımız grup un çalışır halde olduğunu görüyoruz;

7_alw

12 -) Test İşlemleri

Fiziksel makine üzerinde visual studio ile hazırlanan küçük bir c sharp uygulama hazırladık onu açıyoruz ve App. Config. in içinde açtığımız “connection string” ayarlarında ;

100_sontest

data source’a KLON2 server ımızı gösteriyoruz,kullanıcımız “sa” şifresini de yazıyoruz ve uygulamamızı çalıştırıyoruz.Kayıt işlemini başarı ile gerçekleştirdik.

**Sanal makinelere gittiğimizde de ;

101_klon2  102_klon3

önce KLON2 de execute işlemini gerçekleştirdim daha sonra da KLON3 te,aralarında bi kaç sn fark vardı..AlwaysOn yapımızında sağlıklı bir şekilde çalıştığını görmüş olduk..

12-A) Listener Name ile Bağlanma Sorunu

Masaüstü uygulamamızın connectionString ine Klon2 ve Klon3 server’larımızın ismini girip sa şifresi ile bağlanmasını söylediğimizde iletişim kurabiliyorduk fakat bu alwaysOn işlemlerimiz için sağlıklı olamazdı çünkü Primary Database her değiştiğinde yani Primary Database in olduğu server ın her “down” olmasında Secondary Database in olduğu server ayakta olduğundan otomatik failover yapısı gereği Primary Database olacaktı.Bu da connectionString e girip sürekli server name i değiştirip KLON2 yada KLON3 yazmamız demek olacaktı.

Kısaca bu işlemlerinde otomatik olarak gerçekleşmesi için bir IP ve Port Numarası vererek Listener Name oluşturmuştuk (EASQLCLS_LSTNR).Listener Name cluster adminimizle oluşturduğumuz bir başka computer nesnesi olarak active directory de görülmekteydi.Dolayısıyla fiziksel makinemizdeki uygulama ile sanallardaki sql server lara ulaşabilmek için bu listener name in IP sini çözümletebiliyor olmamız gerekmekteydi.

Bu amaçla VMnet3 (Management) network adapteri ile bağladığımız DC-KLON2-KLON3 server’larımızı VMnet8(Nat) adapteri ile tekrar birbirlerine bağlıyoruz.Vmnet3 ile bağlarken verdiğimiz IP leri değiştirmiyoruz,o zaman verdiğimiz IP ler olduğu gibi kalıyor.

DC-KLON2-KLON3 e aynı zamanda bir NAT bağlantısı kurmuştuk internete çıkabilmeleri için.KLON2 ve KLON3 için bir yapılandırma yapmıyoruz.DC için ise ;

1_dc_net_ip

şeklinde dns server adress lerini veriyoruz.

10. adımda listener kısmında port olarak 1433 ü vermiştik portlarda karışıklığa sebep olması ihtimaline karşı port numarasını boş başka bir port ile değiştirip firewall dan iznini de ayarlıyoruz.Şuan için KLON3 primary database i barındırmakta ve management ethernet inde failover durumları için ip lerde görülmektedir,KLON2 de ise sadece domain e bağlı olduğu ip ler görülmektedir. ;

2_management         3_klon2_management

Şimdi uygulamamızda connectionString de server kısmına listener name imiz olan “EASQLCLS_LSTNR” ile bağlanarak daha sağlıklı bir yapıya kavuşturabiliriz sistemimizi.Öncelikle fiziksel makinemizden bağlantı sağlayabiliyor muyuz onu bir test ediyoruz;

4_bağlantı testi

Bağlantı sınaması başarılı oldu.Şimdi de oluşturduğumuz availability grupların role değişimlerini yönetmek için aşağıdaki scriptleri çalıştırıyoruz (o an için primary database olan server da).

—————————————————————————————————

ALTER AVAILABILITY GROUP [EASQLCLS_GROUPS]
MODIFY REPLICA ON
N’KLON3′ WITH
(SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY));
ALTER AVAILABILITY GROUP [EASQLCLS_GROUPS]
MODIFY REPLICA ON
N’KLON3′ WITH
(SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N’TCP://KLON3.erol.local:5022′));
go

ALTER AVAILABILITY GROUP [EASQLCLS_GROUPS]
MODIFY REPLICA ON
N’KLON2′ WITH
(SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY));
ALTER AVAILABILITY GROUP [EASQLCLS_GROUPS]
MODIFY REPLICA ON
N’KLON2′ WITH
(SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N’TCP://KLON2.erol.local:5022′));

—————————————————————————————————

ALTER AVAILABILITY GROUP [EASQLCLS_GROUPS]
MODIFY REPLICA ON
N’KLON2′ WITH
(PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=(‘KLON3′,’KLON2′)));

ALTER AVAILABILITY GROUP [EASQLCLS_GROUPS]
MODIFY REPLICA ON
N’KLON3’ WITH
(PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=(‘KLON2′,’KLON3’)));
GO

————————————————————————————————–

Şimdi de fiziksel makinedeki uygulamayı deneyelim ;

Not : KLON2 ve KLON3 ün “sa” şifrelerini aynı girilmiş olması gerekmektedir.

5_sontest_

Başarılı oldu sonunda,bu kısma kadar takip edenler için teşekkür ederim.

Son bir not daha 🙂 

Server lardan primary olanı failover cluster manager dan kapattığınızda sql server ı yeniledeğinizde “4060” kodlu hatayı alabilirsiniz,bunun için securty -> login den user mappings de alwaysOn a dahil ettiğiniz veritabanları için “NT AUTHORITY\SYSTEM” e  “db_owner” yetkisi verirseniz hatayı almazsınız ama “not sychronizing” olarak görünmeye devam eder,cluster manager dan tekrar start edin bu durumda..

Umarım faydalı bir çalışma olmuştur.Bir sonraki çalışmada görüşmek üzere..

/////////////////////////////////////////////////////////////////////////////////////////////////////

SQL SERVER 2014 ALWAYS ON’A ADIM ADIM..” için 4 yorum

    1. Ben teşekkür ederim eymen bey,1 yılı geçmiş olmasına rağmen ilk yorum u almak sevindirdi,yardımcı olabildiysem ne mutlu bana 🙂

      Beğen

erolakgul için bir cevap yazın Cevabı iptal et