Definicja problemu
Nasz serwer bazy danych musi zostać przeniesiony do innego centrum danych. Działa na Microsoft SQL Server 2012 Enterprise (64-bit) i zawiera dwie bazy danych o wielkości około 2 TB i 1 TB.
Idealny byłby brak przestojów lub brak przestojów.
Obciążenie pracą
Te bazy danych są używane w witrynie .NET i są stale aktualizowane.
Dopuszczalne byłoby jednak, że nie będzie dostępne w weekend. Aktualnie używana baza danych pozostanie jedyną używaną do momentu przejścia na nową.
Najlepiej byłoby, gdyby zmiana ta polegała na zmianie wpisów DNS tak, aby wskazywały na nowy serwer DB, przy jednoczesnym upewnieniu się, że DB nie jest aktualizowany.
Czas potrzebny na tę operację nie ma tak naprawdę znaczenia, o ile przełączanie z jednego serwera na drugi (przestój) jest utrzymywane na niskim poziomie.
Podejścia brane pod uwagę
Kopia zapasowa i przywracanie
Odbywało się to w przeszłości, ale wiązało się z dużym przestojem, mimo że odbywało się to za pośrednictwem sieci wewnętrznej, co jest bardziej wydajne niż przez Internet
Przesyłka dziennika
O ile rozumiem, takie podejście zminimalizuje przestoje poprzez skonfigurowanie urządzenia nadrzędnego / podrzędnego i przesłanie dokładnej kopii nadrzędnej bazy danych do urządzenia podrzędnego tylko do odczytu. Jak wspomniano powyżej, dostęp do urządzenia podrzędnego nie byłby konieczny i potrzebujemy tylko sposobu na posiadanie repliki głównej bazy danych bez uszkodzenia danych.
Wydaje się również, że jest dość wydajny pod względem wykorzystania zasobów i nie miałby wpływu na dużą wydajność master.
Mogę się mylić co do tego podejścia, więc możesz mnie poprawić.
Dublowanie bazy danych
Nie jestem zbyt świadomy tego podejścia, ale wydaje się to słuszną opcją. Nie ma potrzeby synchronizacji w czasie rzeczywistym, a wydajność urządzenia nadrzędnego jest dość ważna, więc asynchroniczna byłaby droga, gdyby wybrać to podejście.
Inne opcje?
Ten serwer działa bezpośrednio na czystym sprzęcie, więc rozwiązania niższego poziomu nie są niestety opcją. Może jest lepszy sposób, aby to zrobić?
Ograniczenia
Jak opisano, te bazy danych są dość duże do tego stopnia, że są trudne w utrzymaniu, ale to inny problem.
Wersje SQL Server będą takie same (64-bitowy Microsoft SQL Server 2012 Enterprise).
Będzie musiał zostać przesłany przez sieć między dwoma centrami danych, a więc najprawdopodobniej przez Internet. Wysyłanie dysków z jednej witryny do drugiej w celu wstępnej synchronizacji nie jest niestety możliwe. Idealne byłoby posiadanie pewnego zabezpieczenia dla transferu, ale zrobimy to najlepiej, jak potrafimy.
To powinno dać całkiem dobry przegląd naszych potrzeb związanych z tym zadaniem i mam nadzieję, że niektórzy z was musieli wcześniej zmierzyć się z tą sytuacją.