SQL Server Snapshot
Snapshot是SQL Server 2005引入的一個新特性,只有在Enterprise版本中有這個功能。
建立Snapshot:
建立Snapshot的語句和建立Database的語句類似,只是在末尾多了AS SNAPSHOT OF。(注意:暫時還不支援用Sql Server Management Studio以圖形化的方式建立Snapshot)
注意:其中的NAME必須和源資料庫的logical name匹配。
Snapshot的工作原理:
Snapshot是一個只讀的、靜態的資料庫檢視,當Snapshot建立時,SQL Server會做以下幾個方面:
1. 建立一個稀疏檔案(sparse file),該檔案在Windows上顯示的大小(Size)和源資料檔案一樣,但是實際佔用大小(Size on disk)卻很小,幾乎為空。
2. 源資料庫觸發Checkpoint(即把所有的髒資料從記憶體寫入到磁碟);
3. 對於為提交的事務,在Snapshot端將會回滾;
一旦Snapshot建立之後,copy-on-write機制便開始起作用了:當源資料庫的某個page發生改變時,在它改變之前,先把該page複製到Snapshot的稀疏檔案。當一個查詢語句到達Snapshot時,SQL Server會先判斷查詢的page是否被修改過,如果已經被修改過,SQL Server訪問Snapshot的稀疏檔案,如果未被修改過,SQL Server訪問源資料庫的page。
這樣做的好處是使得建立Snapshot非常快,佔用的空間也很小;缺點是太依賴於源資料庫,且對源資料庫的效能有一些影響(當源資料庫發生改變時,需要維護Snapshot)
Snapshot的主要用途:
1.防止使用者誤操作: 在做複雜操作之前,先建立一個snapshot,萬一出現問題,可以用以下語句從snapshot中恢復源資料庫:
2.儲存歷史資料
Snapshot的限制:
1.Snapshot必須得和源資料庫在同一個例項中;
2.不能備份、恢復、attach,detach Snapshot
3.對master,model,tempdb資料庫不能建立Snapshot;
4.一旦Snapshot建立之後,源資料庫不能被刪除、恢復。
參考文獻: http://www.simple-talk.com/sql/database-administration/sql-server-2005-snapshots/
建立Snapshot:
建立Snapshot的語句和建立Database的語句類似,只是在末尾多了AS SNAPSHOT OF。(注意:暫時還不支援用Sql Server Management Studio以圖形化的方式建立Snapshot)
CREATE DATABASE RMS_V3_SQA_snapshot_20110928 ON ( NAME = N'RMS_V3', FILENAME = N'H:\INTEL_DB_DUMPS\JABDW1239\DONT_TOUCH\RMS_V3_SQA_snapshot_20110928.snap' ) AS SNAPSHOT OF RMS_V3_SQA; |
Snapshot的工作原理:
Snapshot是一個只讀的、靜態的資料庫檢視,當Snapshot建立時,SQL Server會做以下幾個方面:
1. 建立一個稀疏檔案(sparse file),該檔案在Windows上顯示的大小(Size)和源資料檔案一樣,但是實際佔用大小(Size on disk)卻很小,幾乎為空。
2. 源資料庫觸發Checkpoint(即把所有的髒資料從記憶體寫入到磁碟);
3. 對於為提交的事務,在Snapshot端將會回滾;
一旦Snapshot建立之後,copy-on-write機制便開始起作用了:當源資料庫的某個page發生改變時,在它改變之前,先把該page複製到Snapshot的稀疏檔案。當一個查詢語句到達Snapshot時,SQL Server會先判斷查詢的page是否被修改過,如果已經被修改過,SQL Server訪問Snapshot的稀疏檔案,如果未被修改過,SQL Server訪問源資料庫的page。
這樣做的好處是使得建立Snapshot非常快,佔用的空間也很小;缺點是太依賴於源資料庫,且對源資料庫的效能有一些影響(當源資料庫發生改變時,需要維護Snapshot)
Snapshot的主要用途:
1.防止使用者誤操作: 在做複雜操作之前,先建立一個snapshot,萬一出現問題,可以用以下語句從snapshot中恢復源資料庫:
RESTORE DATABASE RMS_V3_SQA from DATABASE_SNAPSHOT = 'RMS_V3_SQA_snapshot_20110928' |
Snapshot的限制:
1.Snapshot必須得和源資料庫在同一個例項中;
2.不能備份、恢復、attach,detach Snapshot
3.對master,model,tempdb資料庫不能建立Snapshot;
4.一旦Snapshot建立之後,源資料庫不能被刪除、恢復。
參考文獻: http://www.simple-talk.com/sql/database-administration/sql-server-2005-snapshots/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26277071/viewspace-708463/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 為SQL Server快照snapshot DB建立login訪問SQLServer
- SQL Server 2005的read committed snapshot隔離級別SQLServerMIT
- 在SQL Server 2005資料庫中設定read committed snapshot隔離級別SQLServer資料庫MIT
- SQL in ORACLE and SQL ServerSQLOracleServer
- sql ServerSQLServer
- server-1.0-SNAPSHOT.jar中沒有主清單屬性ServerJAR
- SQL Server連線SQL Server、SQL Server連線ORACLE 連結伺服器SQLServerOracle伺服器
- 通過Snapshot Standby來精確評估SQL效能SQL
- SQL Server常用工具——SQL Server Powershell ExtensionsSQLServer
- sql server with ...as 用法SQLServer
- SQL Server raiserrorSQLServerAIError
- SQL Server 鎖SQLServer
- SQL Server OptimizationSQLServer
- SQL SERVER 版本SQLServer
- SQL Server AttentionSQLServer
- sql server 使用SQLServer
- SQL Server教程SQLServer
- sql server agent與sql server有什麼區別 ?SQLServer
- SQL Server Express和SQL Server Compact的應用SQLServerExpress
- SQL SERVER中SQL優化SQLServer優化
- SQL Deverlop連線SQL ServerSQLdevServer
- SQL Server 之 SQL 注入篇SQLServer
- 【SQL Server】--SQL Server資料庫bak檔案還原SQLServer資料庫
- Sql server with as update用法SQLServer
- SQL Server下載SQLServer
- SQL Server 別名(as)SQLServer
- SQL Server LEFT FunctionsSQLServerFunction
- ms sql server排序SQLServer排序
- sql server遞迴SQLServer遞迴
- SQL SERVER優化SQLServer優化
- SQL Server 替換SQLServer
- What is dbo in SQL Server?SQLServer
- SQL Server Backup & RestoreSQLServerREST
- SQL Server Collation解惑SQLServer
- SQL Server遊標SQLServer
- SQL Server死鎖SQLServer
- SQL SERVER PIVOT使用SQLServer
- SQL Server 行號SQLServer