Udostępnij za pośrednictwem


How Database Snapshots Work

migawka bazy danych zapewnia widok tylko do odczytu, statyczne źródłowa baza danych, jak go istniały na tworzenie migawki, pomniejszona o wszystkie niezakończone transakcje.Niezakończone transakcje są przywracane w nowo utworzonej bazie danych migawkę ponieważ Database Engine Uruchamia odzyskiwanie utworzona migawka (nie dotyczy transakcji w bazie danych).

Migawki bazy danych są zależne od urządzenie źródłowe bazy danych.Migawki bazy danych musi znajdować się na z tego samego wystąpienie serwera, co baza danych.Ponadto jeśli jakiegoś powodu niedostępny tej bazy danych, wszystkie jego migawek bazy danych również będą niedostępne.

Migawki można używać na potrzeby sprawozdawczości.Ponadto w przypadku wystąpienia błędu użytkownika na urządzenie źródłowe bazy danych, można przywrócić urządzenie źródłowe bazy danych do stanu, w którym był, gdy została utworzona migawka.Utrata danych jest ograniczona do aktualizacji w bazie danych od czasu utworzenia migawka firmy.Ponadto tworzenie migawka bazy danych może być przydatne bezpośrednio przed wprowadzeniem istotne zmiany bazy danych, takie jak zmiana schemat lub strukturę tabela.Aby uzyskać więcej informacji na temat sposobów migawek zobacz Typowe zastosowania migawek bazy danych.

Opis działania migawki jest przydatne, gdy nie są niezbędne do ich używania.Bazę danych migawek działają poziom strona danych.Przed stroną źródła bazy danych zostanie zmodyfikowany w pierwszym czas, oryginalnej strona jest kopiowane ze źródłowa baza danych do migawka.Proces ten nazywa się Operacja kopiowania na zapisu.Migawka zapisuje oryginalnej strona, zachowując rekordy danych, które istniały podczas tworzenia migawki.Kolejne aktualizacje do rekordów w zmodyfikowanej strona nie będą miały wpływu na zawartość migawka.Ten sam proces jest powtarzany dla każdej strona, który jest modyfikowany po raz pierwszy.W ten sposób migawkę zachowuje oryginalnej strony dla wszystkich rekordów danych, które kiedykolwiek zostały zmodyfikowane, ponieważ wykonano migawka.

Do przechowywania skopiowane strony oryginalnej, migawka korzysta z jednego lub więcej pliki rzadkie.Początkowo plik rozrzedzony jest zasadniczo pusty plik, który nie zawiera żadnych danych użytkownika i nie zostały jeszcze przydzielone ilości miejsca na dysku dla danych przez użytkownika.Ponieważ coraz więcej stron są aktualizowane w urządzenie źródłowe baza danych, rozmiar pliku powiększa się.Gdy migawka jest pobierane, plik rozrzedzony zajmuje nieco miejsca na dysku.Jak baza danych jest aktualizowana w miarę upływu czas, jednak plik rozrzedzony można powiększyć do bardzo dużych plików.Aby uzyskać więcej informacji na temat plikami rozrzedzonymi zobacz Opis odstępem rozmiary plików w migawek bazy danych.

Na poniższym rysunku pokazano operacji kopiowania i zapisu.Światła szarych prostokątów na diagramie migawka stanowią potencjalne miejsca w plik rozrzedzony w — jeszcze nieprzydzielone.Po otrzymaniu pierwszej aktualizacji do strona w urządzenie źródłowe bazy danych, Database Engine zapis do pliku i system operacyjny przydziela miejsce, w jego migawka plikami rozrzedzonymi i kopiuje oryginalnej strona. The Database Engine then updates the strona in the urządzenie źródłowe database. Na poniższym rysunku pokazano takich operacji kopiowania na zapisu.

Read operation on snapshot after page is updated

Important noteImportant Note:

Ponieważ migawek bazy danych nie są zbędne magazynu, ich nie chroni przed błędy na dysku lub inne uszkodzenia.Biorąc pod regularnego tworzenia kopii zapasowych i przywracanie planu testowania są niezbędne do ochrony bazy danych.Jeśli konieczne jest przywrócenie bazy danych źródłowych do punktu w czas, w którym utworzono migawka bazy danych, wykonania kopia zapasowa zasady, które można w tym celu.

Operacje odczytu na migawka bazy danych

Dla użytkownika migawka bazy danych prawdopodobnie nigdy nie zmienić, ponieważ operacje odczytu z bazą danych migawkę zawsze dostęp do oryginalnej strony danych, niezależnie od tego, gdzie są one przechowywane.

Jeśli strona nie został jeszcze zaktualizowany w źródłowej bazie danych, operacja odczytu na migawka odczytuje oryginalnej strona ze źródłowa baza danych.Na poniższym rysunku przedstawiono operacji odczytu na migawka nowo utworzone, w której plik rozrzedzony odpowiednio nie zawiera stron.To odczytać operacji odczyty tylko urządzenie źródłowe bazy danych.

Read operation before 1st page copied to snapshot

Po zaktualizowaniu strona operacji odczytu na migawka nadal ma dostęp do oryginalnej strona, które są obecnie przechowywane w plik rozrzedzony.Na poniższym rysunku przedstawiono operacji odczytu na migawka, który uzyskuje dostęp do strona po zaktualizowaniu w urządzenie źródłowe bazy danych.Operacja odczytu odczytuje oryginalnej strona z plikami rozrzedzonymi migawka.

Copy-on-write operation

Wpływ deseń aktualizacji na wzrost migawka bazy danych

Jeśli Twój urządzenie źródłowe bazy danych jest dość duży i obawiasz się o użycie miejsca na dysku, w pewnym momencie, należy zastąpić stary migawka z nowego migawka.Idealnym rozwiązaniem żywotność z migawka zależy od jego stopę wzrostu i miejsca na dysku jest dostępna dla jej pliki rozrzedzone.Miejsce na dysku wymaganej przez migawkę zależy od tego, jak wiele różnych stron urządzenie źródłowe bazy danych są aktualizowane w czasie trwania migawka.Dlatego jeśli aktualizacje są przeważnie mały podzbiór stron, które są często aktualizowane, stopę wzrostu będą wolno czas i wymagania dotyczące miejsca na dysku migawka pozostanie względnie mały.Z drugiej strony, przy wszystkich oryginalnych stron po pewnym czasie aktualizacji co najmniej raz migawka będzie rosnąć do rozmiaru bazy danych źródłowych.Jeśli dysk zacznie uzupełnić, migawek konkurować ze sobą ilość miejsca na dysku.Jeśli wypełnia się na dysku zapisu operacji wszystkie migawek nie powiedzie się.

Uwaga

Aby uzyskać informacje dotyczące rozmiarów rzeczywistych i potencjalnych do nauki migawka, zobacz Opis odstępem rozmiary plików w migawek bazy danych.

Dlatego warto wiedzieć desenie aktualizacji typowe dla bazy danych, podczas planowania, ilość miejsca jest wymagana w ciągu planowanego czasu z migawką.W przypadku niektórych baz danych szybkość aktualizacji może być dość stała; na przykład bazy danych magazynu może mieć wiele stron aktualizowanych codziennie, dzięki czemu jest przydatne do zamiany starych migawek codziennie lub co tydzień.Dla innych baz danych część zaktualizowane strony mogą różnić się w danym cyklu biznesowych; na przykład, baza danych katalogu może zostać zaktualizowane przede wszystkim co kwartał, tylko okresowe aktualizacje w innym czasie; tworzenie migawek tuż przed i po każdej kwartalny aktualizacji może być strategii logiczne.Jeśli wystąpi błąd istotnych aktualizacji i mogą być użyte post-update migawka raportu zapisywaniu podczas następnego kwartału pre-update migawka może zezwolić przywracanie.

Na poniższym rysunku pokazano wpływ dwa wzorce kontrastowy aktualizacji na rozmiar migawka.Aktualizacja deseń A odzwierciedla środowisku, w którym tylko 30 procent oryginalnej strony są aktualizowane w czasie trwania migawka.Aktualizacja deseń B odzwierciedla środowisku, w którym 80 procent oryginalnej strony są aktualizowane w czasie trwania migawka.

Alternative update patterns and snapshot size

Metadane migawek bazy danych — informacje

Migawki bazy danych, metadane bazy danych zawiera source_database_id właściwość, która jest przechowywana kolumna sys.Databases Służy do wyświetlania katalogu. Aby uzyskać więcej informacji na temat tej właściwość Zobacz sys.Databases (języka Transact-SQL).

Ogólnie rzecz biorąc, migawka bazy danych nie ujawnia metadane własnego, ale uzyskać dostęp do metadane z jego urządzenie źródłowe bazy danych.Te metadane zawiera na przykład dane zwrócone przez następującą instrukcję:

USE <database_snapshot> SELECT * FROM sys.database_files 

where <database_snapshot>is the name of a database snapshot.

Tylko wyjątki są podczas źródłowa baza danych korzysta z przeszukiwanie pełnego tekstu lub dublowanie bazy danych, które wyłączyć się na migawkę przez zmianę niektórych wartości metadane dla migawka.