Szukaj…


Uwagi

Migawka bazy danych to statyczny widok bazy danych SQL Server tylko do odczytu, który jest transakcyjnie spójny ze źródłową bazą danych od momentu utworzenia migawki.

Migawka bazy danych zawsze znajduje się na tej samej instancji serwera co źródłowa baza danych. Gdy źródłowa baza danych jest aktualizowana, migawka bazy danych jest aktualizowana.

Migawka różni się od kopii zapasowej, ponieważ proces tworzenia migawki jest natychmiastowy, a migawka zajmuje miejsce tylko w przypadku zastosowania zmian w źródłowej bazie danych. Z drugiej strony kopia zapasowa przechowuje pełną kopię danych w momencie tworzenia kopii zapasowej.

Ponadto migawka daje natychmiastową kopię bazy danych tylko do odczytu, podczas gdy kopia zapasowa musi zostać przywrócona na serwerze, aby była czytelna (a po przywróceniu można ją również zapisać)

Migawki bazy danych są dostępne tylko w wersjach Enterprise i Developer.

Utwórz migawkę bazy danych

Migawka bazy danych to statyczny widok tylko do odczytu bazy danych SQL Server (źródłowej bazy danych). Jest podobny do tworzenia kopii zapasowych, ale jest dostępny jak każda inna baza danych, więc klient może zapytać bazę danych migawek.

CREATE DATABASE MyDatabase_morning -- name of the snapshot
ON (
     NAME=MyDatabase_data, -- logical name of the data file of the source database
     FILENAME='C:\SnapShots\MySnapshot_Data.ss' -- snapshot file; 
) 
AS SNAPSHOT OF MyDatabase; -- name of source database

Możesz także utworzyć migawkę bazy danych z wieloma plikami:

CREATE DATABASE MyMultiFileDBSnapshot ON
    (NAME=MyMultiFileDb_ft, FILENAME='C:\SnapShots\MyMultiFileDb_ft.ss'),
    (NAME=MyMultiFileDb_sys, FILENAME='C:\SnapShots\MyMultiFileDb_sys.ss'),
    (NAME=MyMultiFileDb_data, FILENAME='C:\SnapShots\MyMultiFileDb_data.ss'),
    (NAME=MyMultiFileDb_indx, FILENAME='C:\SnapShots\MyMultiFileDb_indx.ss')
AS SNAPSHOT OF MultiFileDb;

Przywróć migawkę bazy danych

Jeśli dane w źródłowej bazie danych ulegną uszkodzeniu lub w bazie danych zostaną zapisane nieprawidłowe dane, w niektórych przypadkach przywrócenie bazy danych do migawki bazy danych poprzedzającej uszkodzenie może być odpowiednią alternatywą dla przywracania bazy danych z kopii zapasowej.

RESTORE DATABASE MYDATABASE FROM DATABASE_SNAPSHOT='MyDatabase_morning';

Ostrzeżenie: Spowoduje to usunięcie wszystkich zmian dokonanych w źródłowej bazie danych od momentu wykonania migawki!

USUŃ Migawkę

Możesz usunąć istniejące migawki bazy danych za pomocą instrukcji DELETE DATABASE:

DROP DATABASE Mydatabase_morning

W tej instrukcji powinieneś odwoływać się do nazwy migawki bazy danych.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow