Snapshoty pozwalają na zapisanie stanu bazy danych w momencie jego tworzenia. Możemy wykonać snapshot na przykład przed wykonaniem zmian w bazie danych cechujących się ryzykiem - np. aktualizacją struktury bazy danych w związku z nową wersją produktu, który wykorzystuje bazę danych.
Aby utworzyć snapshot bazy danych:
1. W SQL Server Managament Studio klikamy prawym przyciskiem na interesującą nas bazę danych i wybieramy Proporties, po czym przechodzimy na stronę FILES celem sprawdzenia nazwy pliku danych (w moim przypadku jest to M03).
2. Aby wykonać snapshot korzystamy z polecenia:
CREATE DATABASE nowy ON ( NAME = M03, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL12.TESTOWA01\MSSQL\DATA\nowy-snapszot.ss' ) AS SNAPSHOT OF M03; GO
gdzie:
- nowy - oznacza nazwę snapshostu (wybieramy ją wg uznania, to może być np. data wykonania)
- NAME = M03 oznacza nazwę pliku bazy danych - jest to wartość ustalona w punkcie 1
- C:\Program Files\Microsoft SQL Server\MSSQL12.TESTOWA01\MSSQL\DATA\nowy-snapszot.ss - jest to ścieżka pliku, do którego ma zostać zapisany snapshot
- AS SNAPSHOT OF M03 - M03 jest to nazwa bazy danych, której snapshost chcemy wykonać
1. W SQL Server Managament Studio rozwijamy gałąź Database Snapshots
2. Korzystamy z widoku sys.databases (tj. select * from sys.databases) w celu określenia database_id bazy danych, której snapshot wykonaliśmy i wykorzystania go w poniższym zapytaniu
select a.name, a.database_id, a.source_database_id, a.create_date from sys.databases as a where a.source_database_id is not null and a.source_database_id='7'
Aby przywrócić bazę danych do stanu, w którym został utworzony snapshot, korzystamy z następującego polecenia:
use [master] go RESTORE DATABASE M03 FROM DATABASE_SNAPSHOT = 'nowy'
gdzie M03 to nazwa bazy danych, której snapshost chcemy przywrócić, a nowy to nazwa snapshotu, z którego chcemy skorzystać
Najczęściej zadawane pytania:
Q: Ile miejsca powinniśmy przeznaczyć na snapshot?
A: Snapshot ostatecznie nie powinien zająć więcej miejsca niż baza danych.
Q: Czy zamiast kopii bezpieczeństwa mogę wykonywać snapshot bazy danych?
A: Niezależnie od snapshotów powinniśmy mieć opracowaną i wdrożoną politykę tworzenia kopii bezpieczeństwa baz danych i ich testowania na wypadek awarii. Snapshoty mogą towarzyszyć kopiom, ale nie zastępować ich.
Q: Czy w każdej edycji SQL Server mogę wykonać snapshot bazy danych?
A: Jest to możliwe tylko w edycji Enterprise.
Q: Jak usunąć snapshost bazy danych?
A: Korzystamy z polecenia:
DROP DATABASE nowy ;
Brak komentarzy:
Prześlij komentarz