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.
1 |
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.