database snapshot geek dive - Cezary Ołtuszyk
Transkrypt
database snapshot geek dive - Cezary Ołtuszyk
DATABASE SNAPSHOT GEEK DIVE Cezary Ołtuszyk Blog: coltuszyk.wordpress.com DATABASE SNAPSHOT GEEK DIVE Kilka słów o mnie … Kierownik Działu Administracji Systemami w firmie BEST S.A. (warstwa bazodanowa i aplikacyjna) Konsultant z zakresu SQL Server (projektowanie infrastruktury, tuning, troubleshooting) Posiadacz serii certyfikatów z dziedziny SQL Server, HYPER-V, Windows Server, Red Hat … Prelegent na konferencjach informatycznych i spotkaniach grup pasjonackich Autor artykułów i blogger (wss.pl, technet, coltuszyk.wordpress.com) DATABASE SNAPSHOT GEEK DIVE Plan spotkania I. Wprowadzenie do tematu II. Database Snapshot od środka III. Jak długo trwa stworzenie snapshotu? IV. Ile miejsca na dysku zajmuje snapshot? V. Czy użycie snapshotu ma wpływ na zajętość RAM? VI. Geek Level Snapshot Recovery VII. Podsumowanie ON ( NAME = AdventureWorks2008R2_Data, FILENAME = 'D:\AdventureWorks_Snapshot.ss' ) AS SNAPSHOT OF AdventureWorks GO DATABASE SNAPSHOT GEEK DIVE Wprowadzenie do tematu Database Snapshot to statyczny widok bazy danych przeznaczony tylko do odczytu. Jego największymi zaletami są: -Spójność po kątem transakcyjnym -Niezmienność w czasie -Szybkość z jaką go tworzymy -Mała ilość zajmowanego miejsca na dysku Najczęściej używamy go w celu: -Czytania danych -Szybkiego odtworzenia bazy źródłowej DATABASE SNAPSHOT GEEK DIVE Wprowadzenie do tematu Aby stworzyć snapshot następującym kodem: wybranej bazy posługujemy się CREATE DATABASE AdventureWorks_Snapshot ON ( NAME = AdventureWorks2008R2_Data, FILENAME = 'D:\AdventureWorks_Snapshot.snap' ) AS SNAPSHOT OF AdventureWorks Kod odtwarzający ze snapshotu wygląda tak: RESTORE DATABASE AdventureWorks_Snapshot FROM DATABASE_SNAPSHOT = ‘AdventureWorks_Snapshot’ DATABASE SNAPSHOT GEEK DIVE Database Snapshot od środka Migawki baz danych są zaimplementowane jako tzw. „pliki rzadkie”. Definicja takiego pliku brzmi następująco: Sparse files are a feature of the NTFS file system. Initially, a sparse file contains no user data, and disk space for user data is not allocated to it. When first created, a sparse file takes up very little disk space. As data is written to the sparse file, NTFS allocates disk space gradually and the file grows in size. Potentially, a sparse file can grow very large. Pliki rzadkie nie są właściwością SQL SERVER-a !!! DATABASE SNAPSHOT GEEK DIVE Database Snapshot od środka Właściwością silnika baz danych mechanika odczytu oraz utrzymania oryginalnych danych wewnątrz migawki. DATABASE SNAPSHOT GEEK DIVE Jak długo trwa stworzenie snapshotu? Większość materiałów szkoleniowych na temat migawek baz danych nic nie mówi na temat tego, w jaki sposób tworzony jest snapshot. Jedyna informacją jaka możemy w prosty sposób uzyskać jest odpowiedź, że: SZYBKO Aby się do wiedzieć co oznacza słowo „szybko” musimy poznać najważniejsze fazy tworzenia snapshotu: DATABASE SNAPSHOT GEEK DIVE Ile miejsca na dysku zajmuje snapshot? Nx64KB Czy użycie snapshotu ma wpływ na zajętość RAM serwera? TAK DATABASE SNAPSHOT GEEK DIVE Geek Level Snapshot Recovery Odzyskiwaliście kiedyś bazę danych do punktu w czasie posiadając jedynie SNAPSHOTU i kopię LOGU transakcyjnego? Mam nadzieję, że …. NIE !!! I zapraszam na moje demo https://pbs.twimg.com/profile_images/26716542/GeekShow.jpg DATABASE SNAPSHOT GEEK DIVE Podsumowanie Database snaphsot to transakcyjnie spójny obraz bazy, stworzony w wybranym punkcie w czasie Migawki używają tzw. Plików rzadkich, które zajmują niewiele miejsca na dysku Stworzenie migawki jest tak szybkie jak CHECKPINT + RECOVERY + inne dodatki Snapshot alokuje miejsce po 64KB Użycie snapshotu może mieć wpływ na zajętość pamięci RAM serwera SQL Nie odtwarzajcie baz tak jak pokazałem