Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Моментни снимки на базата данни на SQL Server -4

Здравейте

Ще продължа да обяснявам моментните снимки на базата данни в SQL Server в тази статия.

Прочетете предишни статии преди тази публикация.

Моментни снимки на базата данни на SQL Server -1

Моментни снимки на базата данни на SQL Server -2

Моментни снимки на базата данни на SQL Server -3

Тази грешка е много страшна и финансова загуба за производствената база данни.

Ще използваме базата данни за моментни снимки, за да се върнем от тази грешка. Използваме таблицата AWBuildVersion на базата данни Snapshot , за да създадем таблицата AWBuildVersion в базата данни на AdventureWorks. За това ще използваме командата Select * into. Екранната снимка след стартиране на скрипта е както следва. Както е посочено от червената линия, изпусната таблица се връща в базата данни източник с нейните данни.

Нека направим друг подобен пример от гледна точка на по-разбираемост. Нека изтрием данните от която и да е таблица и да ги върнем от базата данни за моментни снимки отново. Както е посочено в Изображение 1.1 по-долу, таблицата BillOfMaterials в долната част на базата данни ProductionWorks се изтрива от базата данни AdventureWorks. Когато едновременно изберем броя на Изберете, записът 0 се запитва, както е показано на изображението по-долу.

Използваме базата данни за моментни снимки отново, за да се върнем от тази грешка. Както в 2.1 по-горе, ние правим вмъкването на същата схема и таблица на базата данни за моментни снимки в съответната таблица в изходната база данни. По същия начин се вмъкват същия брой записи на редове, както е показано на изображение 2.2, когато запитахме Избор на брой.

И накрая, нека направим администраторска грешка от базата данни за моментни снимки и този път ще възстановим базата данни с източник от базата данни Snaphot. По този начин моментната снимка на базата данни на AdventureWorks се връща в първоначалното състояние. Изтривам данните на таблицата BillOfMaterials от производствена схема и в същото време махнах таблицата SalesOrderDetail под схемата за продажби. Екранната снимка е както следва. Тъй като данните от таблицата BillOfMaterials в долната част на производствената схема са изтрити, таблицата SalesOrderDetail не се показва, тъй като е изпусната.

Направихме много промени в изходната база данни, казахме, че тези промени винаги се записват в Sparse File. Следното изображение показва окончателната версия на файла Sparse. Докато оригиналният размер 1 не се е променил, оригиналният Sparse файл номер 2 се е увеличил. Причината за това, както казах, е, че всички промени, направени в базата данни Source, са записани тук. Така че, когато потребителят чете променени данни, той чете от Sparse File. Ако потребителят подаде заявка за непроменени данни, те ще бъдат прочетени от базата данни източник.

Сега да се върнем към моментната снимка.

SQL Server 2017 Database Snaphot Restore code

restore database  AdventureWorks from database_snapshot='AdventureWorksSnaphot'

Можем да потърсим всички изпуснати и изтрити таблици след възстановяване на Snapshot, както е показано по-горе.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Мрежови интерфейси на SQL Server:низът за връзка не е валиден [87]

  2. Как да актуализирате две таблици в един израз в SQL Server 2005?

  3. Йерархичен списък на типовете тригерни събития в SQL Server 2017

  4. Как да проверите съвместимостта на базата данни на SQL Server, след като sp_dbcmptlevel е остарял?

  5. SQL Server Insert, ако не съществува