Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu SQL Server
Jedynym sposobem utworzenia migawki bazy danych programu SQL Server jest użycie języka Transact-SQL. Program SQL Server Management Studio nie obsługuje tworzenia migawek bazy danych.
Warunki wstępne
Źródłowa baza danych, która może używać dowolnego modelu odzyskiwania, musi spełniać następujące wymagania wstępne:
Wystąpienie serwera musi mieć uruchomioną wersję programu SQL Server, która obsługuje funkcję migawek bazy danych. Aby uzyskać informacje o obsłudze migawek bazy danych w programie SQL Server, zobacz Editions i obsługiwane funkcje programu SQL Server 2022.
Źródłowa baza danych musi być w trybie online, chyba że baza danych jest dublowaniem bazy danych w ramach sesji dublowania bazy danych.
Aby utworzyć migawkę bazy danych w dublowanej bazie danych, baza danych musi znajdować się w zsynchronizowanym stanie dublowania .
Źródłowej bazy danych nie można skonfigurować jako skalowalnej udostępnionej bazy danych.
Przed programem SQL Server 2019 (15.x) źródłowa baza danych nie mogła zawierać grupy plików
MEMORY_OPTIMIZED_DATA
. Dodano obsługę migawek bazy danych w pamięci w programie SQL Server 2019 (15.x).
Ważny
Aby uzyskać informacje o innych istotnych zagadnieniach, zobacz Database Snapshots (SQL Server).
Zalecenia
W tej sekcji omówiono następujące najlepsze rozwiązania:
- Najlepsze rozwiązanie: nazewnictwo migawek bazy danych
- Najlepsze rozwiązanie: ograniczenie liczby migawek bazy danych
- Najlepsze rozwiązanie: połączenia klienta z migawką bazy danych
Najlepsze praktyki: nazewnictwo migawek bazy danych
Przed utworzeniem migawek warto rozważyć, jak je nazwać. Każda migawka bazy danych wymaga unikatowej nazwy bazy danych. W celu ułatwienia administracyjnego nazwa migawki może zawierać informacje identyfikujące bazę danych, takie jak:
Nazwa źródłowej bazy danych.
Wskazanie, że nowa nazwa jest przeznaczona dla migawki.
Data i godzina utworzenia migawki, numer sekwencji lub inne informacje, takie jak godzina dnia, aby odróżnić sekwencyjne migawki w danej bazie danych.
Rozważmy na przykład serię migawek dla bazy danych AdventureWorks2022
. Trzy codzienne migawki są tworzone w 6-godzinnych odstępach od 6:00 do 18:00, na podstawie zegara 24-godzinnego. Każda dzienna migawka jest przechowywana przez 24 godziny przed usunięciem i zastąpiona nową migawką o tej samej nazwie. Każda nazwa migawki wskazuje godzinę, ale nie dzień:
AdventureWorks_snapshot_0600
AdventureWorks_snapshot_1200
AdventureWorks_snapshot_1800
Alternatywnie, jeśli czas tworzenia tych codziennych migawek różni się od dnia do dnia, mniej precyzyjna konwencja nazewnictwa może być preferowana, na przykład:
AdventureWorks_snapshot_morning
AdventureWorks_snapshot_noon
AdventureWorks_snapshot_evening
Najlepsze rozwiązanie: ograniczanie liczby migawek bazy danych
Tworzenie serii migawek w czasie przechwytuje sekwencyjne migawki źródłowej bazy danych. Każda migawka utrzymuje się, dopóki nie zostanie jawnie usunięta. Ponieważ każda migawka będzie nadal rosła w miarę aktualizowania oryginalnych stron, możesz zaoszczędzić miejsce na dysku, usuwając starszą migawkę po utworzeniu nowej migawki.
Notatka
Aby przywrócić migawkę bazy danych, należy usunąć wszystkie inne migawki z tej bazy danych.
Najlepsze rozwiązanie: połączenia klienta z migawką bazy danych
Aby klienci mogli użyć migawki bazy danych, muszą wiedzieć, gdzie ją znaleźć. Użytkownicy mogą odczytywać z jednej migawki bazy danych podczas tworzenia lub usuwania innej bazy danych. Jednak po zastąpieniu istniejącej migawki nową, należy przekierować użytkowników do nowej migawki. Użytkownicy mogą ręcznie łączyć się z migawką bazy danych za pomocą programu SQL Server Management Studio lub azure Data Studio. Jednak w celu obsługi środowiska produkcyjnego należy utworzyć rozwiązanie programowe, które w sposób niewidoczny kieruje klientów generujących raporty do najnowszej migawki bazy danych.
Uprawnienia
Każdy użytkownik, który może utworzyć bazę danych, może utworzyć migawkę bazy danych; jednak aby utworzyć migawkę bazy danych w wersji lustrzanej, musisz być członkiem sysadmin stałej roli serwera.
Utwórz migawkę bazy danych przy użyciu Transact-SQL
Na podstawie bieżącego rozmiaru źródłowej bazy danych upewnij się, że masz wystarczającą ilość miejsca na dysku do przechowywania migawki bazy danych. Maksymalny rozmiar migawki bazy danych odpowiada rozmiarowi źródłowej bazy danych w momencie tworzenia migawki. Aby uzyskać więcej informacji, zobacz Zobacz Rozmiar Rzadkiego Pliku Migawki Bazy Danych (Transact-SQL).
Wydaj instrukcję
CREATE DATABASE
dotyczącą plików przy użyciu klauzuliAS SNAPSHOT OF
. Utworzenie migawki wymaga określenia logicznej nazwy każdego pliku bazy danych źródłowej. Składnia jest następująca:CREATE DATABASE database_snapshot_name ON ( NAME = logical_file_name , FILENAME = 'os_file_name' ) [ , ...n ] AS SNAPSHOT OF source_database_name [;]
Argumenty są następujące:
Spór Opis database_snapshot_name
Nazwa migawki, do której chcesz przywrócić bazę danych. logical_file_name
Nazwa logiczna używana przez źródłową bazę danych w programie SQL Server podczas odwoływania się do pliku. os_file_name
Ścieżka i nazwa pliku używana przez system operacyjny podczas tworzenia pliku. source_database_name
Źródłowa baza danych. Aby uzyskać pełny opis tej składni, zobacz CREATE DATABASE (SQL Server Transact-SQL).
Notatka
Podczas tworzenia migawki bazy danych w instrukcji
CREATE DATABASE
nie są dozwolone pliki dziennika, pliki offline, pliki przywracania ani przestarzałe pliki.
Przykłady
Rozszerzenie .ss
używane w tych przykładach jest dla wygody i nie jest wymagane. W bazach danych zawierających wiele plików należy określić wszystkie pliki zgodnie ze składnią. Grupy plików nie są określone.
A. Utwórz migawkę w bazie danych AdventureWorks
W tym przykładzie zostanie utworzona migawka bazy danych dla bazy danych AdventureWorks
. Nazwa migawki, AdventureWorks_dbss_1800
, i nazwa pliku zrzutowego, AdventureWorks_data_1800.ss
, wskazują czas utworzenia o 18:00 (1800 godzin).
CREATE DATABASE AdventureWorks_dbss1800 ON (
NAME = AdventureWorks,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Data\AdventureWorks_data_1800.ss'
) AS SNAPSHOT OF AdventureWorks;
GO
B. Utwórz migawkę w bazie danych Sales
W tym przykładzie utworzono migawkę bazy danych sales_snapshot1200
w bazie danych Sales
, która jest tą samą przykładową bazą danych z Utwórz bazę danych zawierającą grupy plików w CREATE DATABASE.
--Create sales_snapshot1200 as snapshot of the Sales database:
CREATE DATABASE sales_snapshot1200 ON (
NAME = SPri1_dat,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\data\SPri1dat_1200.ss'
),
(
NAME = SPri2_dat,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\data\SPri2dt_1200.ss'
),
(
NAME = SGrp1Fi1_dat,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\mssql\data\SG1Fi1dt_1200.ss'
),
(
NAME = SGrp1Fi2_dat,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\data\SG1Fi2dt_1200.ss'
),
(
NAME = SGrp2Fi1_dat,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\data\SG2Fi1dt_1200.ss'
),
(
NAME = SGrp2Fi2_dat,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\data\SG2Fi2dt_1200.ss'
) AS SNAPSHOT OF Sales;
GO