6 Ocak 2016 Çarşamba

Ansızın AlwaysOn AG'deki bir Replica gitti...

Selam!

Dün akşam, bir müşterimdeki bir AlwaysOn Availability Group yapılandırmasındaki Replica'lardan biriyle ilgili hata mesajları gelmeye başladı telefonuma. Hata mesajları, replikasyonun gecikmesi ve ilgili Replica'nın çalışmaması ile ilgiliydi. Müsait olunca sunucuya bağlanıp AlwaysOn AG Dashboard'unu ve ilgili logları incelemeye başladım ve hata mesajlarının geldiği Replica'nın NOT SYNCHRONIZING durumunda olduğunu gördüm. Kırmızı çarpılı uyarı simgeleri gözlerinizin önüne geliyordur sanırım…

AlwaysOn_health Extended Event dosyasında şöyle bir kayıt gördüm:
A connection timeout has occurred on a previously established connection to availability replica '' with id [XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX].  Either a networking or a firewall issue exists or the availability replica has transitioned to the resolving role.

Daha sonra sorunun yaşandığı SQL Server Instance'ına bağlanmaya çalıştım, RDP yapamıyordum (nedenini sonra anlatacağım); fakat SSMS ile bağlanabiliyor ve TELNET ile servise erişebiliyordum. Yani SQL Server Instance servisi ayaktaydı. SQL Server Instance'ına bağlandım, Error Log'u incelemeye başladım. Dha sonra sorunun oluştuğu ilk anda yine yukarıdaki hata mesajını gördüm ve hemen onun ardından aşağıdakine benzer hatalar vardı:

AlwaysOn Availability Groups connection with primary database terminated for secondary database 'VERITABANI_ADI' on the availability replica with Replica ID: {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}. This is an informational message only. No user action is required.

Fakat benim senaryomda can alıcı kısım (kafamda ampulün yandığı sahne), özellikle aşağıdaki hata mesajıydı:

Database Mirroring login attempt failed with error: 'Connection handshake failed. An OS call failed: (80090311) 0x80090311(No authority could be contacted for authentication.). State 67.'.  [CLIENT: XX.X.X.XX]

Bu hata mesajını görünce aklıma bu ortamda takriben 15 gün önce yaşanmış olan kaza geldi. 15 gün önce yaşanan kaza, bu sıkıntının yaşandığı SQL Server Instance'ının Computer nesnesinin Active Directory'den yanlışlıkla silinmesi kazasıydı. Bu kaza, o anda bir soruna neden olmamıştı; fakat bu kaza hakkındaki bilgi bana geldiğinde, ilgili arkadaşlara "Belki şu anda bir soruna neden olmuyor, ama muhakkak bir gün patlar. Şimdilik Cache'ten vs idare ediyor olmalı (teknik olarak bu noktada tükendiğimi anladınız sanırım)" demiştim.

Sorunu çözmek için ilgili SQL Server Instance'ının bulunduğu bilgisayara yerel Windows hesabıyla bağlanıldı, Domain'den çıkartıldı ve tekrar eklendi. Bu işlemin akabinde AlwaysOn ile ilgili sorunun da, RDP yapamama sorununun da düzeldiğini gözlemledik.

Evet, belki Computer nesnesinin Active Directory'de yeniden oluşturulması için daha pratik bir yol vardı; fakat bunun incelenmesi için vakte ihtiyaç vardı ve bu konuda çalışması gereken, kazayı yapan arkadaştı, çünkü o anda tam olarak ne yaptığını o biliyordu. En azından onun yakından yönlendirmesi şarttı. Mesai saatlerinin dışında bir vakitti ve mesai saatlerinin içinde dahi olsa bu araştırmaya vakit ayırılabileceğini sanmıyorum, o yüzden böyle daha "pratik" bir yöntem kullanıldı, sonuç olarak da işe yaradı.

Sevgiler,
Ekrem Önsoy

Hiç yorum yok: