Korzystam z programu SQL Server 2014 i taka jest sytuacja:
- Mam serwer A i serwer B.
- Nocleg ETL jest przetwarzany na serwerze A.
- Po zakończy proces ładowania, baza X pobiera kopii zapasowej (z
CHECKSUM
iRESTORE VERIFYONLY
aby zapewnić niezawodność) i następnie wysyłane do serwera B. - Serwer B odbiera
bak
plik, a następnie przywraca tam bazę danych.
Chcę użyć różnicowej strategii tworzenia kopii zapasowych, aby:
Pełna kopia zapasowa jest wykonywana tylko w sobotę,
tj. Pełna kopia zapasowa na serwerze A w sobotę -> wysyłamy na serwer B -> Przywróć pełną kopię zapasową na serwerze BReszta dni to kopia
różnicowa, tzn. Kopia różnicowa na serwerze A -> wysyłka na serwer B -> przywracanie kopii zapasowej różnicowej na serwerze B
Próbowałem, ale dostałem błąd, mówiąc:
nie można przywrócić kopii zapasowej dziennika lub różnicowej, ponieważ żadne pliki nie są gotowe do przywrócenia.
Nie pewny dlaczego. Sprawdziłem sys.database_files
na serwerze A i serwerze B i widzę, że differential_Base_LSN
i differential_base_GUID
są takie same. Gdziekolwiek / coś jeszcze do sprawdzenia?
Przy okazji, w kroku 2 powyżej, kiedy przywracam kopię zapasową diff na serwerze B, czy zawsze muszę przywracać zarówno kopię pełną, jak i różnicową?
Przywróciłem różnicową kopię zapasową WITH RECOVERY
(i dostałem ten komunikat o błędzie), ponieważ pełna kopia zapasowa została przywrócona już dzień wcześniej.
Aby wyjaśnić: Tak, chcę, aby db na serwerze B był czytelny między różnicami. Jak mogę to obejść? Czy moją jedyną opcją jest RESTORE FULL (WITH NORECOVERY)
+ RESTORE DIFF (WITH RECOVERY)
sekwencja combo każdej nocy?
Wszelkie wskazówki będą mile widziane.
źródło