Silinen veya Düşen Availability Group’u (AG) Yeniden Aynı İsim ile Ekleme

Bu başlıkta, AlwaysOn mimarisinde yönetilen SQL Server’larda Availability Group’un silinmesi veya Secondary Makine’den kaldırılması sonucu ortadan kalkması ve Database’lerin Restoring Mode’a geçmesi durumunun çözümü üzerine konuşacağız. Bu durum genellikle kriz ortamı yaratmakta ve yanlış işlemler sonrası daha büyük felaketlere sebebiyet vermektedir. Aşağıdaki adımları izlerken dikkatli davranmanızı ve uzmanlardan yardım almanızı tavsiye ederiz. Bu işlemi yapmadan daha önce bu bilgilerin ekran görüntüsünü ve bilgisini bir yere lütfen not ediniz.   Görsel 1: test_ag remove edeceğimiz Availability Group (AG) Görsel 2: Remove Edilen Availability Group (AG)   Görsel 3: test_ag SSMS altında Availability Group (AG)’larda görünmüyor.   select name from sys.availability_groups scripti ile AG’nin olup olmadığını kontrol edebilir siniz. Görsel 4: 1.adım : test_ag eski ismi aynı isimde Availability Group (AG) altında yeni AG oluşturma   Görsel 5: 2.Adım: test_ag eski ismi aynı isimde Availability Group (AG) altında yeni AG oluşturma Görsel 6: 3.Adım: test_ag eski ismi aynı isimde Availability Group (AG) […]

Silinen veya Düşen Availability Group’u (AG) Yeniden Aynı İsim ile Ekleme

Bu başlıkta, AlwaysOn mimarisinde yönetilen SQL Server’larda Availability Group’un silinmesi veya Secondary Makine’den kaldırılması sonucu ortadan kalkması ve Database’lerin Restoring Mode’a geçmesi durumunun çözümü üzerine konuşacağız. Bu durum genellikle kriz ortamı yaratmakta ve yanlış işlemler sonrası daha büyük felaketlere sebebiyet vermektedir. Aşağıdaki adımları izlerken dikkatli davranmanızı ve uzmanlardan yardım almanızı tavsiye ederiz. Bu işlemi yapmadan daha önce bu bilgilerin ekran görüntüsünü ve bilgisini bir yere lütfen not ediniz.

 

Görsel 1: test_ag remove edeceğimiz Availability Group (AG)

Görsel 2: Remove Edilen Availability Group (AG)

 

Görsel 3: test_ag SSMS altında Availability Group (AG)’larda görünmüyor.

 

select name from sys.availability_groups

scripti ile AG’nin olup olmadığını kontrol edebilir siniz.

Görsel 4: 1.adım : test_ag eski ismi aynı isimde Availability Group (AG) altında yeni AG oluşturma

 

Görsel 5: 2.Adım: test_ag eski ismi aynı isimde Availability Group (AG) altında yeni AG oluşturma

Görsel 6: 3.Adım: test_ag eski ismi aynı isimde Availability Group (AG) altında yeni AG oluşturma

Görsel 7: 4.Adım: test_ag eski ismi aynı isimde Availability Group (AG) altında yeni AG oluşturma

Görsel 8: 5.Adım: test_ag eski ismi aynı isimde Availability Group (AG) altında yeni AG oluşturma

Görsel 9: 5.Adım: test_ag eski ismi aynı isimde Availability Group (AG) altında yeni AG oluşturma

Görsel 10: 5.Adım: test_ag eski ismi aynı isimde Availability Group (AG) altında yeni AG oluşturma

 

Bu tür işlemleri script ile arayüzden yapılması daha sağlıklı olacaktır. Script ile yapıldığında aşağıdaki hata ile karşılaşacaksınız.

Incorrect syntax near ‘:’.

Msg 102, Level 15, State 1, Line 64

Incorrect syntax near ‘:’.

Msg 41042, Level 16, State 1, Line 70

The availability group ‘test_ag’ already exists.

This error could be caused by a previous failed CREATE AVAILABILITY GROUP or DROP AVAILABILITY GROUP operation.

If the availability group name you specified is correct, try dropping the availability group and then retry CREATE AVAILABILITY GROUP operation.

Msg 41152, Level 16, State 2, Line 70

Failed to create availability group ‘test_ag’.

The operation encountered SQL Server error 41042 and has been rolled back.

Check the SQL Server error log for more details.

When the cause of the error has been resolved, retry CREATE AVAILABILITY GROUP command.

Msg 102, Level 15, State 1, Line 81

Incorrect syntax near ‘:’.

Msg 102, Level 15, State 1, Line 87

Incorrect syntax near ‘:’.

Görsel 11: AG oluşturmak isterken karşılaşılan hata

Çözüm:

Daha önce oluşturmuş olduğumuz test_ag adındaki AVAILABILITY GROUP (AG), regedit içine yazılmaktadır. Burada tutulmasından dolayı tekrar aynı isimde oluşturduğunuzda böyle bir ag zaten var oluşturamazsınız hatası alacaksınız. Eğer Regedit içinden Computer => HKEY_LOCAL_MACHINE =>  HadrAgNameToldMap altından bu isimdeki AVAILABILITY GROUP (AG) sildikten sonra aynı isimle oluşturabilirsiniz.

Görsel 12: Regedit içinde daha önce oluşturulmuş AG bilgisi.

Görsel 13: test_ag ismindeki AG’nin başarılı olarak oluşturulması ve database’in test_ag adındaki Availability Group altına başarılı şekilde eklenmesi

 

Eğer veri tabanına gelen uygulamaları listener üzerinden yönlendiriyorsanız, AG içinde eski listener bilgileri girmeyi unutmayınız. Eğer listener oluşturamıyorsanız OU altından aynı isimli listener’ı silip tekrar oluşturabilirsiniz.

Benzer Yazılar

SQL SERVER SERViS RESTART HATASI

SQL Server 2 hafta ö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 1 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 […]

Query Store Nedir?

SQL Server 1 ay önce

Query Store ile birlikte execution planın seçimi ve bu sürecin performansa etkisini anlayabiliriz. SQL Server içerisinde bulunan Query Store özelliği, çalıştırılan sorguların execution planını ve bu sırada oluşan istatistiklerini otomatik olarak yakalar. Böylece query plan değişikliği ile oluşan problemleri de hızlı ve kolay şekilde fark edebiliriz. Elinizde bulunan bir sorguya ait query plan zamanla değişebilir. Bunun birçok sebebi vardır. Tablo yapısına yeni bir column eklenmesi Veri tipinin değiştirilmesi Sorgularda yeni parametrelerin eklenip çıkarılması Verilerde, schemalarda veya sorgu parametrelerindeki değişiklik Burada önemli olan ise bazen bu değişimler sorgunun yavaş çalışmasına neden olur. Query Store ile beraber bu yavaşlığın kök nedenine inmek daha kolay oldu. Ayrıca query store sayesinde ilgili sorguya ait read-write bilgileri ve cpu tüketimi bilgilerine de erişebilirsiniz. Query Store’u veritabanı seviyesinde aktif edebiliyoruz. Veritabanı üzerine sağ tıklayarak properties diyoruz ve Query Store sekmesine geliyoruz. Operation Mode alanından Read Write’ı seçiyoruz. Böylelikle Query Store gerekli bilgiyi toplayabilir ve size ilgili sonuçları […]

0 Yorum

Yorum Yaz

Rastgele