Makale Yazarı

Yazar Biyografik Bilgiler Eklememiş

  • Toplam 10 Yazı
  • Toplam 0 Yorum

WINDOWS CLUSTER VE SQL ALWAYS ON İLİŞKİSİ

SQL Server 10 saat önce

Bu yazımızda sql always always on yapısında önemli bir yere sahip olan Windows cluster ile always on arasındaki ilişkiyi ele alacağız. Öncelikle şunu bilmeliyiz. SQL Always On mimarisi Windows cluster üzerinde koşar. Basit bir örnekle anlatacak olursak; 2 katlı bir ev düşünün. 1. katı WindowS Failover Cluster 2. katı sql Always On. 1.katı inşa etmeden 2. katı çıkamazsınız değil mi? O sebeple önce WSCF sonra SQL Always on kurulur. Pekii… Birinci ve ikinci katı çıktık. 1. kat(WSFC) yıkılırsa 2. katta(ALWAYS ON) doğal olarak çöker değil mi. Ancak ikinci kat yıkılırsa 1. Kat çökmez. Yani; Windows cluster devre dışı kalırsa always on’da devre dışı kalacaktır, ancak always on düşerse Windows Cluster devre dışı kalmaz. Başımıza always on haberleşmesi üzerine bir sıkıntı gelirse; Önce 2. Katta yani always on üzerinde bir sorun var mı ona bakacağız. Always on taraflı bir problem olmadığından emin olduktan sonra 1. Kata yani Windows failover cluster tarafını […]

SQL SERVER SERViS RESTART HATASI

SQL Server 3 ay önce

Bu haftaki yazımızda karşılan bir hata üzerindeki; logları ve çözümünü anlatacağım. Aşağıdaki GÖRSEL-1’de görüldüğü üzere SQL servisini restart ettiğimiz sırada bir hata ile karşılaşıyoruz. Servis running state’e geçemiyor. “The request failed or the service did not respond in a timely fashion. Consult the event log or other applicable error logs for details” şeklinde bir uyarı veriyor. Hatanın çözümüne doğru ilerlerken farklı servis hesaplarıyla veya “Local System” hesabı ile restart etmeye çalıştığınızda servis ilginç bir şekilde ayağa kalkıyor. Ancak Always on sistem çalışıyorsanız farklı servis hesaplarını kullandığınızda always on size haberleşme izni vermiyor. Aynı hesabın şifresi ile ilgili sorunlar olduğu düşünüp hesabın şifresini de değiştirdiğiniz de yine sonuç alamıyorsunuz. Burdan yola çıkıldığında sıkıntı servis hesabında gibi görünüyor olabilir ancak çözüme geçildiğinde regedit üzerinde yapacağımız bir işlem ile sorunu çözüyoruz. Servis hesabının kaydının olduğu regedit kaydını siliyoruz. Regedit üzerindeki servis hesap bilgisi güncellendiğinde sorun çözülmüş olmakta. GÖRSEL-1  Servis restart edildiğinde SQL’in verdiği Error […]

SQL’DE İKİ NODE’UN RESOLVING DURUMA DÜŞMESİ VE ÇÖZÜMÜ

SQL Server 3 ay önce

Bu yazımızda failover olma işlemi esnasında karşılaşılan bir durumdan kısaca bahsedeceğim. Kısa bir yazı olacak ama önemli olduğunu düşünüyorum. Bazen failover olmak istediğinizde cluster secondary’e node’a failover olamaz, hem secondary hem de primary node’unuz resolving durumuna geçer. Bu durumla daha çok otomatik failover olma durumlarında karşılaşılır çünkü sistem failover’a aslında hazır değildir ancak cluster bunu bir şekilde bilemez. Failover olma gerçekleşemez bir anlamda sql cluster askıda kalır ve hiçbir sunucu da sql engine çalışmaya devam edemez. (GÖRSEL-1) GÖRSEL-1 GÖRSEL-1 üzerinde gördüğünüz üzere availability group resolving duruma düşer. Availability replica’lar üzerinde de gördüğünüz üzere primary ve secondary tüm node’lar resolving state’e düşer. Böyle bir durumunda iki farklı çözüm yolumuz var;   Çözüm: ikinci node’a sunucu restart’ı atmak. Bu noktada secondary sql node’a servis restart atmak işe yaramıyor. Zaten db’ler iki taraflı resolving modda. O sebeple ancak sunucu restart atıldığında cluster ayakta olan sunucuyu görüyor ve askıda kalma durumundan ilk başta primary […]

WINDOWS FAILOVER CLUSTER’DA BULUNAN NODE’UN DOWN OLMA DURUMU

SQL Server 4 ay önce

Bu yazımda sizlere karşılaştığım ilginç bir hatayı paylaşacağım. Başınıza gelme ihtimali düşükte olsa konuyu bilmekte fayda var diye düşünmekteyim. Şöyle ki; gün içerisinde aynı anda birçok uygulamamızın bağlı olduğu Always On çalışan SQL serverler aynı anda secondary replikalar ile haberleşmesini kaybetti. Always on dashboard’dan başlayarak sql taraflı kontrolleri yaptık. Secondary SQL node’u kopmuş ve “Availability replika disconnected” hatasının veriyordu.(Hatanın genel çözümüne dair yazımıza linkten ulaşabilirsiniz.(GÖRSEL-1) (https://www.veritabani.org/availability-replica-is-disconnected-hatasi/) Bu hataya dair kontrolleri yaptık. Replica konfigürasyonunda uygun olmayan bir durum yoktu. GÖRSEL-1 DMV’ler, kullanıcılar, yetkiler, sql servis kullanıcıları, aklınıza ne geliyorsa her yerden sql ve cluster kontrolü yaptık. Windows Failover cluster’ı kontrol ettiğimizde ise secondary replika clusterının down olduğunu fark ettik.(GÖRSEL-2).  SQL cluster, windows cluster’ın çatısı altında çalıştığı için always on replike olamıyordu. Primary ve secondary replikalar arasında ping attığımızda herhangi bir sorun yaşanmamasında rağmen primary ve secondary node’lar arasında cluster haberleşmesi yapamıyordu. GÖRSEL-2 Önce firewall engellemelerini kontrol ettik, engelleme yoktu. Hatta primary […]

MSSQL SERVER MAİL CONFİGURASYONU

SQL Server 4 ay önce

Bu yazımızda SQL Server’da joblarınız hata verdiğinde mail gönderme işlemi nasıl olur bu konuyu konuşacağız. Öncelikle “Management” altında “Database Mail” üzerinde sağ tık “Configure Database Mail”e tıklıyoruz.(GÖRSEL-1) GÖRSEL-1 Gelen ilk sayfada next dedikten sonra GÖRSEL-2’deki ekran karşımıza geliyor. İlk defa kurulum yapacağımız için “Set up Database Mail by performing the following tasks” seçeneğini seçip next’e tıklıyoruz gelen soruya yes’e tıklayıp devam ediyoruz. Ara bilgi olarakta kurulum yapılan mail hesabını silmek veya ayarlarını değiştirmek için “Manage Database Mail accounts and profiles” sekmesinden ilerlememiz gerekir. GÖRSEL-2 GÖRSEL-3 üzerinde gelen ekran üzerinde profile name ve description kısımlarını kendimize uygun bir şekilde dolduruyoruz ve Add seçeneğine tıklıyoruz. GÖRSEL-3 GÖRSEL-4 üzerindeki ekranda account name ve description alanların yine kendimize uygun bir şekilde dolduruyoruz. Burada bizim için önemli iki yer var. Birincisi “Outgoing Mail Server” kısmı diğeri “SMTP Authentication” kısmı. GÖRSEL-4 Outgoing Mail Server; E-mail address tarafına mail atacak hesabının bilgisini giriyoruz. Server name tarafına kurumunuzun […]

TAIL-LOG BACKUP İLE DATABASE’E ATILAN SON COMMIT’E GERİ DÖNME

SQL Server 4 ay önce

Bu yazımızda “.LDF” dosyası üzerinden tail-log backup alarak database’in son commit olan haline kadar geri dönme işlemi nasıl yapılıyor bu konuyu anlatacağım. Ama ondan önce tail-log backup ne için kullanılır ve nedir onu bir açıklayalım; Bir database’i başka bir yere taşımak istediğimizde aşağıdaki görsel’de olduğu gibi bir tail-log backup alırız ve database restoring state düşer işlem yapılamaz olur. Sonrasında aldığımız tail-log’u yeni ayağa kaldırmak istediğimiz instance üzerinde, önceden restore edilen backup zinciri üzerine işleyerek ayağa kaldırırız. Bu şekilde hem veri bütünlüğü korunur(veri kaybı olmaz) hemde kısa süreli kesinti ile db’yi başka bir instance’de ayağa kaldırmış oluruz. Ama ben bu yazıda size daha farklı bir senaryo üzerinde size tail-log’u anlatacağım. DİPNOT OLARAK; tail-log backup alındığında DB restoring state’e düşer, aynı tail-log restore edildiğinde db restoring state’ten Online state’e geçer. Tail-log backup aslında .LDF dosyasını truncate etmeyen bir log backup türevidir.   Basit bir senaryo üzerinde anlatacak olursak; Öncelikle bir adet full […]

MSSQL FILE SHARE WITNESS’IN DEĞİŞTİRİLMESİ

SQL Server 5 ay önce

Bu yazımızdaki failover cluster manager içerisinde yer file share witness dosyasının başka bir konuma taşınması işlemini anlatacağız. File Share Witness ne işe yarar kısaca bahsedecek olursak; Cluster oylamasında çoğunluk sağlamaktır. Örneğin; 2 sunucu var diyelim 1’i düştü cluster çökedebilir çökmeyedebilir. Kararsız kalabilme ihtimali vardır. Witness, primary ve secondary olmak üzere toplam üç oy olur. Primary çökerse witness ve secondary kalır. Witness’ın oyu %50’den fazla olduğu için vereceği oy ile cluster çökmekten korunmuş olur. 1. ADIM: Önce file share witness kaldırma işlemini yapacağız. Always on cluster’da bulunan herhangi bir sunucu üzerinde Failover Cluster Manager’ı açıyoruz.(GÖRSEL-1) GÖRSEL-1 Cluster name üzerinde sağ tık-> More Actions -> Configure Cluster Quorum Settings’e tıklıyoruz. (GÖRSEL-2) GÖRSEL-2 Gelen ilk ekranda next seçeneğini tıkladıktan sonra GÖRSEL-3’te gelen ekranda, ilk defa file share witness kurar gibi “Select the quorum witness”ı seçip next diyoruz.   GÖRSEL-3 Sonra gelen GÖRSEL-4’teki ekranda ise “Do not configure a quorum witness” seçeneği tıklayıp next […]

“Availability Replica is Disconnected” Hatası

SQL Server 5 ay önce

Bu yazımızda sql’in nodelarından herhangi birisinin always-on haberleşmesi yapamadığı durumu konu alan hata üzerine konuşacağız. Always on dashboard ekranında da bu şekilde bir hata alıyoruz.”Availability Replica is disconnected” ibaresi yer almakta. (GÖRSEL-1) GÖRSEL-1 Aynı zamanda Görsel-2’de olduğu gibi Availability replica üzerinde kırmızı çarpı işareti görünüyor. GÖRSEL-2 Son olarakta error loglara bakacak olursak; “Database Mirroring login attempt by user ‘DomainName\SqlUser’ failed with error: ‘Connection handshake failed. The login ‘DomainName\SQLServiceUser’ does not have CONNECT permission on the endpoint. State 84.” şeklinde düşebilir. (GÖRSEL 3) GÖRSEL-3 Hatanın farklı arayüzlerde nasıl tespit ettiğimizi inceledik şimdi sebeplerine ve çözüme geçelim; Bu hata yanlış endpoint yapılandırması veya bozulması, Primary ve secondary replika’da servis kullanıcıları farklı olması veya değiştirilmesi, Hadr_endpoint user ’ının silinmesinden,(owner’ı sa user’ı servis kullanıcısı olmalıdır,GÖRSEL-4’te kontrol edebilirsiniz), Kaynaklı birkaç farklı durumundan ötürü meydana gelmektedir. Biz çözüme geçelim. GÖRSEL-4   Hatayı gidermek için hadr_endpoint’i tekrar yapılandırıyoruz. Öncelikle çözüm için şundan emin olmalıyız; hata aldığımız secondary […]

4 ADIMDA AUDIT LOG AÇMA VE OKUMA

SQL Server 6 ay önce

Bu yazıda SQL Server’da Instance ve Database temelli yapılan değişikliklerin denetlenmesi amacı ile kullanılan AUDIT’lerin nasıl kurulduğuna ve önemine değineceğiz. Öncelikle 2 çeşit audit olduğunu bilmeliyiz. Server Audit Specification (GÖRSEL-1) Sql server bazında hangi kullanıcıya hangi yetkilerin verildiğini, kimlerin login olduğu sql server’ın yönetilmesine dair yapılan işlemleri tuttuğumuz auditlerdir. Database Audit Specification (GÖRSEL-2) Database bazında yapılan insert, update, delete, execute veya select gibi işlemlerin kaydını tuttuğumuz auditlerdir.            GÖRSEL-1                                                                                            GÖRSEL-2 Audit(denetim) kayıtlarını çoğu kurum üçüncü parti bir yazılım ile yönetmektedir. Ancak biz burada SQL’in bize sağladığı imkanlar ile audit kayıtlarımızı saklayacağız. Örneğimiz üzerinde oluşturacağımız audit kayıtlarını GÖRSEL-3 görünen global audit tarafına […]

Kullanıcı Silerken Karşılaşılan Hatalar (Microsoft SQL Server Error: 15141,15174)

SQL Server 6 ay önce

                Veritabanlarımızda güvenlik iyileştirmeleri yaptığımız çalışmalar da; kurumdan ayrılan personellerin veya kurumda olsa da artık ihtiyaç olmayan sql kullanıcılarını silme işlemini planladık. Hem servis hem yazılım taraflarında aktif şekilde kullanılan kullanıcıların listesini istedik ve geri kalan tüm kullancıları silme kararı aldık. Emin olamadığımız kullanıcıları da önce pasife çekerek sonrasında silmeyi planladık. Ancak silmeye çalıştığımızın bazı kullanıcıların; bazı databaselerin veya Server Role’lerinin owner’ları olduğu anladık ve hatalar aldık. Şimdi bu hataların çözümüne geçelim:   The server principal owns one or more server role(s) cannot be dropped. (Microsoft SQL Server, Error: 15141) Yukarıdaki hatayı aldığımızda; aşağıdaki sorguya silmek istediğimiz kullanıcı adını yazıyoruz. SELECT sp1.name AS ServerRoleName, sp2.name AS RoleOwnerName FROM sys.server_principals AS sp1 JOIN sys.server_principals As sp2 ON sp1.owning_principal_id=sp2.principal_id WHERE sp2.name='KullaniciAdi'   Sorgu sonucu ‘KullaniciAdi’ isimli user’ın sahip olduğu Server Role’leri geliyor. Bu hata da kullanıcının “SCOMHealthCheck” rolüne sahip olduğunu görüyoruz. Aşağıdaki script ile bu server role’un owner’ını aşağıdaki script ile “sa” […]