SQL Restart mirrora

20-lis-2014

Początek niby niewinny. Brak miejsca w bazie. Powinno wystarczyć powiększyć plik, albo zdać się na Autogrow. Okazało się jednak, że wykonanie jakiejkolwiek czynności na bazie się nie wykonuje, bo jest blokowane przez inne procesy. Nawet proste otwarcie okienka properties dla bazy danych kończyło się komunikatem o lockach.

Rzut oka w sp_who lub Activity Monitora (z filtrem na tą jedną wybraną bazę danych) i już widać niepokojący stan bazy. Dużo zablokowanych procesów, praktycznie nic się nie dzieje, wszystko stoi, a Head Blockerem jest systemowy proces mirroringu. Jakimś rozwiązaniem byłoby wyłączenie mirroringu i skonfigurowanie go na nowo. To jednak dość mocny krok, jak na proste zablokowanie się procesów…

Pomocna okazała się komenda:

ALTER DATABASE MyDB SET PARTNER SUSPEND

a po sprawdzeniu, że blokady minęły

ALTER DATABASE MyDB SET PARTNER RESUME
Okazało się, że w nocy coś było nie tak z siecią i mirroring napotkał pewne problemy, które dotknęły właśnie tą jedną bazę danych (inne działały poprawnie). Oto próbki komunikatów znalezionych w ERRORLOG:
Database mirroring connection error 4 'An error occurred while receiving data: ’64(failed to retrieve text for this error. Reason: 15105)’.’ for 'TCP://server_name.domainname:5022′.

Database mirroring is inactive for database 'MyDB’. This is an informational message only. No user action is required.

Komentarze są wyłączone

Autor: Rafał Kraik