server|資料|資料庫
資料庫快照集(atabase snapshot)是一個唯讀,靜態資料庫檢視。一個資料庫可以有多個資料庫快照集,每個資料庫快照集在被顯性的刪除之前將一直存在。資料庫快照集將保持和來源資料庫快照被建立時刻一致,所以可被用來做一些報表。並且由於資料庫快照集的存在,我們可以很容易的把資料庫回複到快照建立時刻。
資料庫快照集提供了一個把資料庫回複到一個特定時間點的有效途徑。一個資料庫快照集將記錄從這個資料庫快照集被建立後已經提交的所有事務,這樣你在對資料庫進行錯誤操作後也不會發出“如果上天能夠再給我一次機會的話,我。。。。。。”的感慨。由於是只記錄資料庫發生的改變,也不是在當前的那一時刻資料庫的狀態,所以資料庫檔案並不會很大,如下例:
--我們先來為資料庫Northwind建立一個資料庫快照集,命名為NORTHWIND_DBSS1200,並讓此資料庫快照集的檔案儲存體在C:\NORTHWIND_DATA_1200.SS檔案中
CREATE DATABASE NORTHWIND_DBSS1200 ON
( NAME = NORTHWIND, FILENAME =
'C:\NORTHWIND_DATA_1200.SS' )
AS SNAPSHOT OF NORTHWIND;
GO
--可以看到這個資料庫快照集檔案的屬性,如下:可以看到現在Size on disk為128K
USE NORTHWIND
GO
--現在Northwind資料庫進行更新操作
UPDATE DBO.CUSTOMERS
SET COMPANYNAME='NEWEGG.COM'
--可以看到現在Size on disk為384K
--看一下Northwind資料庫中被更新的列中儲存的內容是已經被更新過的
SELECT DISTINCT COMPANYNAME FROM NORTHWIND.DBO.CUSTOMERS
--看一下NORTHWIND_DBSS1200資料庫中被更新的列中儲存的內容還是被更新以前的內容
SELECT DISTINCT COMPANYNAME FROM NORTHWIND_DBSS1200.DBO.CUSTOMERS
--IF AN ERROR DAMAGES A DATABASE, YOU MAY CHOOSE TO REVERT THE DATABASE TO A DATABASE SNAPSHOT THAT PREDATES THE ERROR. REVERTING OVERWRITES THE ORIGINAL SOURCE DATABASE WITH THE REVERTED DATABASE.
RESTORE DATABASE NORTHWIND FROM
DATABASE_SNAPSHOT = 'NORTHWIND_DBSS1200'
GO
--確認
SELECT DISTINCT COMPANYNAME FROM NORTHWIND.DBO.CUSTOMERS
--刪除資料庫快照集
DROP DATABASE NORTHWIND_DBSS1200
從資料庫快照集中恢複資料庫到快照建立的時刻