SQL Server 資料庫快照 snapShot
這是2005企業版才有的功能
會保留該資料庫在該時間點的樣子
速度非常快,3秒就好
只可唯讀,也只能在ntfs的磁碟上
原始資料庫與快照的資料庫
必須在同個個體,也就是不能跨Server
照出來的磁碟大小會與原資料庫相同
會保留該資料庫在該時間點的樣子
速度非常快,3秒就好
只可唯讀,也只能在ntfs的磁碟上
原始資料庫與快照的資料庫
必須在同個個體,也就是不能跨Server
照出來的磁碟大小會與原資料庫相同
為什麼這麼快呢?
其實原理很簡單,當發生快照時
只把原資料庫的架構照出,是個空殼
當原資料庫發生update,delete (沒有insert)
系統使用copy on write的技術
會立即將異動資料存入快照資料庫
且標計該資料已照過了
若該資料爾後有任何異動與快照無關
快照能救回的資料,但不能完全替代備份
有個大前題是:原始資料庫必需還活著!
使用上的情況應該會發生在:
當要進行某些資料有可能會消失或大量輸出入時
先照一下,以測安全。
--查詢目前資料庫情況----------- EXEC sp_helpdb 中文北風 --建立資料庫快照--------------- CREATE DATABASE 北風快照 ON ( NAME = '中文北風',FILENAME='C:\北風快照\北風快照.mdf' ) AS SNAPSHOT OF 中文北風 --查驗一下 SELECT * FROM 中文北風.DBO.客戶 SELECT * FROM 北風快照.DBO.客戶 --做些修改 UPDATE 中文北風.DBO.客戶 SET 連絡人='陳小妹' WHERE 客戶編號='ALFKI' UPDATE 中文北風.DBO.客戶 SET 郵遞區號='111111' DROP TABLE 中文北風.DBO.新供應商 --救回郵遞區號的問題 UPDATE A SET A.郵遞區號 = B.郵遞區號 FROM 中文北風.DBO.客戶 AS A JOIN 北風快照.DBO.客戶 AS B ON A.客戶編號 = B.客戶編號 --再幹掉一些資料 DROP TABLE 中文北風.DBO.供應商 DROP TABLE 中文北風.DBO.訂貨明細 DROP TABLE 中文北風.DBO.貨運公司 DELETE FROM 中文北風.DBO.產品資料 --開始進行回復,先幹掉多餘的連線 EXEC sp_who KILL 52 --從SNAPSHOT回復資料庫 RESTORE DATABASE 中文北風 FROM DATABASE_SNAPSHOT = '北風快照'
留言
張貼留言