2013-09-26 10 views
48

Obecnie próbuję wykonać kopię zapasową pustej bazy danych SQL Server 2008 R2, którą zaprojektowałem dla projektu, który na razie jest odkładany. Przechodziłem procedurę tworzenia kopii zapasowej za pośrednictwem SQL Management Studio, gdy zauważyłem, że istnieje opcja utworzenia kopii zapasowej tylko kopii zapasowej. Rozejrzałem się, żeby zobaczyć, co to jest, ale nie w pełni zrozumiałem, jakie opcje mam.Co oznaczają te opcje kopiowania tylko kopii zapasowej?

http://technet.microsoft.com/en-us/library/ms191495.aspx

czytałem wpis powyżej, jak również inne dane, a ja ciągle widzę wyrażenie „niezależnie od sekwencji konwencjonalnych kopii zapasowych SQL Server.”

Czy ktokolwiek może opracować, co oznacza to oświadczenie lub więcej na temat Kopiuj tylko kopie zapasowe w ogóle? Nie jestem pewien, czy to kopia zapasowa, którą powinienem zrobić w tym przypadku? (Moja pierwsza reakcja to nie)

+4

Przyjęta odpowiedź jest prawidłowa, ale istnieje jeszcze kilka rzeczy, które można dodać. Ponieważ jest to dodatek do głównej odpowiedzi, zamierzam opublikować go jako komentarz, a nie jako odpowiedź. Przeczytaj następujący artykuł, aby zapoznać się z kilkoma ważniejszymi szczegółami na temat kopii zapasowych tylko do kopiowania: http: // sqlbak.com/blog/copy-only-backups/ –

Odpowiedz

34

Zwykle podczas wykonywania kopii zapasowej uruchamia się (lub kontynuuje, w zależności od typu kopii zapasowej), która jest nazywana łańcuchem dzienników. Załóżmy, że potrzebujesz kopii bazy danych iz jakiegoś powodu nie możesz w tym celu użyć zwykle zaplanowanych kopii zapasowych. Omówmy scenariuszu gdzie ty nie użyć copy_only zapasową

  1. Normalna pełna kopia zapasowa
  2. Pęczek różnicowy kopii zapasowych
  3. Innym pełnej kopii zapasowej (do bazy danych kopia)
  4. Więcej kopie różnicowe
  5. Usuń kopię zapasową z kroku 3 (wiesz ... aby zaoszczędzić miejsce)
  6. Katastrofa w rzeczywistej bazie danych, która wymaga przywrócenia z kopii zapasowej

W tym przypadku można przywrócić tylko ostatnią różnicową kopię zapasową wykonaną w kroku 2, ponieważ różnicowe kopie zapasowe wykonane w kroku 4 zależą od pełnej kopii zapasowej z kroku 3. Teraz, jeśli kopia zapasowa z kroku 3 była kopia zapasowa copy_only, byłaby w porządku, ponieważ nie przywracasz łańcucha dziennika (co oznacza, że ​​różnicowe kopie zapasowe w kroku 4 zależą od pełnej kopii zapasowej z kroku 1.

+4

To nie jest prawda. Możesz przywrócić z dowolnej pełnej kopii zapasowej do dowolnego kolejnego punktu, pod warunkiem, że masz ciągły zestaw kopii zapasowych dziennika transakcji. Jeśli zostanie wykonana pełna kopia zapasowa bez ustawienia Tylko kopiuj, wówczas wszelkie kolejne * różnicowe * kopie zapasowe będą działać tylko z tą pełną kopią zapasową, ale różnicowa kopia zapasowa nie będzie taka sama jak kopia zapasowa dziennika transakcji. To mnie również zaskoczyło - zobacz ten link, aby uzyskać lepsze wyjaśnienie: http://sqlmag.com/blog/breaking-backup-chain-redux-or-eating-crow – toryan

+1

To niesamowite, @toryan. Dziękuję za poprawienie mojego nieporozumienia! –

+2

Przesłano oczekującą zmianę, aby dodać poprawkę @ toryana do odpowiedzi w nadziei na zmniejszenie ewentualnego zamieszania. – Abraham

41

To pełny zrzut bazy danych, w którym zamierzasz wykonać ten zrzut i załadować go do INNEJ instancji serwera SQL. na przykład To dobry sposób na wykonanie pełnej kopii bazy danych bez konieczności zdejmowania bazy danych, odłączania bazy danych, kopiowania plików .mdf, ponownego dołączania itp.

Oczywiście, ponieważ nie używasz to "kopia zapasowa" jako faktyczna kopia zapasowa, nie chcesz, aby kolidowało to z normalnymi harmonogramami tworzenia kopii zapasowych, a więc tylko funkcją kopiowania. Jest to pełna kopia zapasowa, ale nie resetuje harmonogramu tworzenia kopii zapasowych, więc normalna kolejna kopia przyrostowa/migawka będzie działać normalnie.

Ten mechanizm jest niezbędny, ponieważ wbudowane narzędzia do kopiowania/migracji w MSSMS są w zasadzie bezużyteczne i nie radzą sobie w wielu przypadkach z własnymi bazami danych.

+2

Czy moja sytuacja wygląda na dobrą, mimo że baza danych jest pusta? – SmashCode

+1

Jeśli tak czy inaczej odłączysz bazę danych, po prostu odłącz DB w MSSMS i przenieś plik .mdf do archiwum. To przez FAR najprostszy sposób, aby przejść w tryb offline. Kopia zapasowa była używana tylko wtedy, gdy chcesz nadal korzystać z tego db ORAZ mieć zaplanowane regularne kopie zapasowe ORAZ chcesz, aby ta kopia została załadowana na inny serwer. –

+1

Nie odłączaj. To ryzykowne. Plik może nie zostać ponownie podłączony, jeśli coś się stanie podczas zamykania systemu i nie zostanie całkowicie zamknięty. –

1

Jeśli tworzysz archiwum tworzenie kopii zapasowych i kontynuowanie tworzenia kopii zapasowej na serwerze nie stanowi problemu, wtedy nie ma znaczenia, czy go używasz, czy nie. Będzie on odnawiany, podobnie jak baza danych.