Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Migawki bazy danych programu SQL Server -4

Biodro>

W tym artykule będę kontynuował wyjaśnianie migawek bazy danych w SQL Server.

Przeczytaj poprzednie artykuły przed tym postem.

Migawki bazy danych SQL Server -1

Migawki bazy danych SQL Server -2

Migawki bazy danych SQL Server -3

Ten błąd jest bardzo przerażający i powoduje straty finansowe dla bazy danych produkcji.

Użyjemy bazy danych Snapshot, aby powrócić z tego błędu. Używamy tabeli AWBuildVersion bazy danych Snapshot, aby utworzyć tabelę AWBuildVersion w bazie danych AdventureWorks. W tym celu użyjemy polecenia Wybierz * do. Zrzut ekranu po uruchomieniu skryptu wygląda następująco. Jak wskazuje czerwona linia, Dropped Table jest zwracany do źródłowej bazy danych wraz z jej danymi.

Zróbmy inny podobny przykład, jeśli chodzi o bycie bardziej zrozumiałym. Usuńmy dane z dowolnej tabeli i ponownie zwróćmy je z bazy danych Snapshot. Jak przedstawiono na ilustracji 1.1 poniżej, tabela BillOfMaterials na dole bazy danych ProductionWorks jest usuwana z bazy danych AdventureWorks. Gdy jednocześnie wybierzemy liczbę Wybierz, odpytywany jest rekord 0, jak pokazano na poniższym obrazku.

Ponownie używamy bazy danych Snapshot, aby powrócić z tego błędu. Podobnie jak w 2.1 powyżej, wstawiamy ten sam schemat i tabelę bazy danych Snapshot do odpowiedniej tabeli w źródłowej bazie danych. W ten sam sposób wstawiana jest taka sama liczba rekordów wierszy, jak pokazano na obrazku 2.2, gdy zapytaliśmy Wybierz liczbę.

Na koniec zróbmy błąd administratora z bazy danych Snapshot, a tym razem przywrócimy bazę danych z bazy Snaphot. W ten sposób migawka bazy danych AdventureWorks powraca do stanu początkowego. Usuwam dane tabeli BillOfMaterials ze schematu produkcyjnego i jednocześnie upuściłem tabelę SalesOrderDetail pod schematem Sales. Zrzut ekranu wygląda następująco. Ponieważ dane tabeli BillOfMaterials na dole schematu produkcyjnego zostały usunięte, tabela SalesOrderDetail nie pojawia się, ponieważ została usunięta.

Wprowadziliśmy wiele zmian w źródłowej bazie danych, powiedzieliśmy, że te zmiany są zawsze zapisywane w pliku Sparse File. Poniższy obraz przedstawia ostateczną wersję pliku Sparse. Chociaż oryginalny rozmiar 1 nie uległ zmianie, oryginalny plik Sparse o numerze 2 wzrósł. Powodem tego, jak powiedziałem, jest to, że wszystkie zmiany dokonane w bazie danych Source są zapisywane tutaj. Więc kiedy użytkownik czyta zmienione dane, czyta z pliku rzadkiego. Jeśli użytkownik zapyta o niezmienione dane, zostaną one odczytane ze źródłowej bazy danych.

Wróćmy teraz do migawki.

SQL Server 2017 Database Snaphot Restore code

restore database  AdventureWorks from database_snapshot='AdventureWorksSnaphot'

Możemy wysłać zapytanie do wszystkich usuniętych i usuniętych tabel po przywróceniu migawki, jak pokazano na powyższym obrazku.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Instalowanie Microsoft SQL Server 2012 Enterprise Edition z dodatkiem Service Pack 1

  2. Wyzwalacz SQL Server:zrozumienie i alternatywy

  3. Zwróć listę zdarzeń wyzwalania serwera w SQL Server

  4. Jak zmienić domyślny język dla SQL Server?

  5. Szacowanie przyłączeń programu SQL Server przy użyciu zgrubnego wyrównania histogramu