Mirroring w SQL Server

Nie będę się rozpisywał do czego to służy, bo od tego są książki. Pokażę jak w prosty sposób to skonfigurować.
Po pierwsze na obu serwerach (Primary i Secondary czyli Mirror) serwisy SQL muszą być uruchamiane z kont lokalnych (w naszym przykładzie SQLService). Najlepiej stworzyć specjalne konta dla naszych serwisów.

Pamiętajmy że po zmianie konta z którego będzie uruchamiany serwis należy je zrestartować.

Utworzymy mirror bazy. Logujemy się na oba serwery. Na serwerze PRIMARY uruchamiamy konfigurację Mirroringu.

lub w inny sposób wchodząc we właściwości bazy

i pierwssze problemy 🙂

Zwróciło błąd bo baza jest w trybie Recowery Simple. Musimy zmienić na Recovery Full we właściwościach bazy.

lub poleceniem

USE [master]
GO
ALTER DATABASE [Northwind] SET RECOVERY FULL WITH NO_WAIT
GO

Commands completed successfully.

Teraz trzeba wykonać pełny backup naszej bazy oraz drugi backup logów transakcyjnych (najlepiej do tego samego pliku z funkcję Append). Następnie nalezy przenieść plik backupu na nasz drugi serwer i tam odtworzyć bazę.
UWAGA !!! bazę odtwarzamy z trybie NORECOVERY

Nasze bazy będą po tym wyglądały tak:


Jak widać druga baza jest w trybie RESTORING.

Pora uruchomić mirroring.

Uruchomi się kreator mirroringu


kreator pyta nas czy będziemy wykorzystywali „świadka”. Jest to specjalny serwer który będzie monitorował nasze serwery z mirrorem. Jeśli tylko straci kontakt z serwerem automatycznie przełączy mirror na drugi serwer. Aby połaczyć serwery w mirroringu potrzebna jest wersja Stabdard lub Enterprise. Na świadku musi być zainstalowany SQL ale może to być nawet wersja Express (SQL służy tylko do komunikacji więc nie ma specjalnych wymagań).

Świadek będzie wiec zostawiamy ptaszka 🙂

Tu nic nie zmieniamy (w sumie to tak tylko informacyjnie jest podane).

Tu łączymy się z serwerem SECONDARY

A tu z serwerem „świadka” WITNESS

W tym oknie wpisujemy konto za pomocą którego będziemy autoryzowani na naszych trzech serwerach (Primary,Secondary i Witness). Może to być jedno wspólne konto domenowe lub dla każdego inne konto (te same z którego uruchamialiśmy serwisy SQL).

No i kończymy

Pora uruchomić nasz skonfigurowany Mirror

Potrwa to kilka chwil ale jeśli wszystko jest OK powinno się pojawić takie okno.

Jak można zauważyć mirroring komunikuje się z serwerami za pomocą portów 5022, 5023 i 5024. Taka konfiguracja występuje gdy uruchamiamy ją na jednym serwerze (jak w naszym przykładzie). Nie jest to dobre rozwiązanie bo jak padnie nam serwer znikają obie bazy wraz ze świadkiem. Najlepiej to skonfigurować na trzech różnych serwerach i wtedy mirror będzie się komunikował po porcie 5022.

Nasze bazy powinny zmienić swój status na Principal/Synchronized i Secondary/Synchronized/Restoring.

Jest OK ale dla pewności możemy uruchomić Database Mirroring Monitor.

Proszę się przerazić jak zobaczycie czerwone ikonki alarmu. Po kilku chwilach gdy bazy się zsynchronizują wszystko się ustabilizuje.

Bazy teraz w momencie awarii powinny się przełączyć na drugą. Oczywiście bazy można ręcznie przestawiać. Do tego służy przycisk FAILOVER

Po jego naciśnięciu otrzymamy komunikat że połączenia z bazą PRIMARY zostaną zerwane i czy chcemy tego.

I już mamy bazę na serwer 2 jako PRIMARY

Jesli byśmy wyłączyli serwis SQL na serwerze 1 to baza na serwerze 2 (obecnie PRIMARY) straci połączenie.

UWAGA!!! Trzeba na to szybko reagować, gdyż na bazie PRIMARY będą zbierane logi transakcyjne do czasu usunięcia awarii. Więc jeśli planujemy kilkudniową awarię to lepiej jest usunąć mirroring na tej bazie i po naprawie serwera 1 ponownie ją skonfigurować.

Ten wpis został opublikowany w kategorii Microsoft SQL. Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz