近日再次講到SQL Server 2005中的資料庫快照功能。這裡做一個總結
使用場景:
- 隻讀的報表查詢(可以有多個版本)
- 分擔源資料庫壓力
- 将資料靜止在某個時間
- 對于人為失誤問題的災難恢複
主要限制:
- 要求企業版
- 資料庫快照與源資料庫必須在一個伺服器執行個體
- 如果存在多個快照的話,就不可以使用其中某一個進行還原了
實驗步驟:
1. 建立資料庫快照
-- =============================================
-- Create Snapshot Template
USE master
GO
-- Drop snapshot database if it already exists
IF EXISTS (
SELECT name
FROM sys.databases
WHERE name = N'Northwind_20090725'
)
DROP DATABASE Northwind_NorthwindTest
-- Create the snapshot database
CREATE DATABASE Northwind_20090725 ON
( NAME = Northwind, FILENAME =
'E:\Temp\Northwind_20090725.ss' )
AS SNAPSHOT OF Northwind;
2. 查詢資料庫快照
SELECT * FROM Northwind_20090725..Customers
3. 了解資料庫快照查詢的依賴關系
我們都知道資料庫快照這個功能最主要的一個特性就是所謂的"寫入時複制",也就是說快照資料庫最開始的時候并沒有包含資料, 隻有在源資料庫的資料頁發生變化的情況下,才會發生資料複制.
但是不管資料有沒有從源資料庫複制到快照資料庫,查詢快照資料庫都要求源資料庫是線上的
為了做這個測試,此時,如果設定源資料庫的狀态為脫機,則就無法完成查詢
ALTER DATABASE [Northwind] SET OFFLINE