Udostępnij za pośrednictwem


Bazy danych transakcji dublowania i między bazami danych

dublowanie bazy danych nie jest obsługiwany z transakcji między bazami danych lub transakcji rozproszonych.Jest tak, ponieważ nie można zagwarantować transakcji niepodzielność/integralność z następujących powodów:

  • Dla transakcji między bazami danych: Po przejęciu awaryjnym, dublowane baza danych jest na innym serwerze wystąpienie, i zazwyczaj jest na oddzielnej bazy danych z bazy danych nonmirrored.Nawet, jeśli obie bazy są dublowane między dwoma partnerami w tym samym, nie ma żadnej gwarancji, że obie bazy danych zostanie awaryjnie w tym samym czas.

  • Dla transakcji rozproszonych: Po przejęciu awaryjnym nowy serwer dublowany jest nie można połączyć się z koordynatora transakcja rozproszona poprzedniego serwer dublowany, który używa tego samego identyfikatora zasób.Dlatego nowego serwer dublowany nie można uzyskać stanu transakcji.

Poniższy przykład ilustruje, jak logiczny niespójność może wystąpić.W tym przykładzie aplikacja używa transakcji między bazami danych, aby wstawić dwa wiersze danych: jeden wiersz jest wstawiany do tabela w bazie dublowane, A, i drugi wiersz jest wstawiany do tabela w innej bazie danych, B.Bazy danych a jest jest odzwierciedlana w trybie wysokiego bezpieczeństwa z automatyczna praca awaryjna.Gdy transakcja została zatwierdzona, A baza danych staje się niedostępny i dublowanie sesja automatycznie przełącza się do dublowanie bazy danych A.

Po pracy awaryjnej, transakcji między bazami danych może być pomyślnie bazy danych B, ale nie na bazy danych przez nie powiodło się.Może to występować, jeśli oryginalny serwer dublowany dla bazy danych, A nie wysłał dziennika dla transakcji między bazami danych serwer duplikatu przed awarii.Po pracy awaryjnej, danej transakcji czy istnieje na nowy serwer dublowany.Bazy danych, A i b staje się niespójny, ponieważ dane w bazie danych b dodaje pozostaje niezmieniona, ale wstawiony w bazie danych, A dane zostały utracone.

Podobny scenariusz może wystąpić podczas używania transakcji MS DTC.Na przykład po pracy awaryjnej, nowy podmiot kontaktów usługi MS DTC.Ale nie ma usługi MS DTC wiedza nowego serwer dublowany i kończy się wszystkie transakcje, które są "przygotowania do zatwierdzanie," które uważane są za popełnione w innych bazach danych.