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 serverSQLServer
- server-1.0-SNAPSHOT.jar中沒有主清單屬性ServerJAR
- Moebius for SQL ServerSQLServer
- sql server 使用SQLServer
- SQL Server教程SQLServer
- SQL SERVER優化SQLServer優化
- Nodejs 操作 Sql ServerNodeJSSQLServer
- SQL Server 別名(as)SQLServer
- sql server遞迴SQLServer遞迴
- Sql server with as update用法SQLServer
- SQL Server下載SQLServer
- SQL Server Left joinSQLServer
- SQL Server SUBSTRING FunctionsSQLServerFunction
- SQL Server LEFT FunctionsSQLServerFunction
- SQL Server Unique ConstratintsSQLServer
- What is dbo in SQL Server?SQLServer
- ms sql server排序SQLServer排序
- SQL Server 替換SQLServer
- SQL Server 2008中Analysis Services的新特性——深入SQL Server 2008SQLServer
- SQL Server資料庫恢復,SQL Server資料恢復,SQL Server資料誤刪除恢復工具SQLRescueSQLServer資料庫資料恢復
- Sql_server基本操作SQLServer
- SQL SERVER 2008安全配置SQLServer
- SQL SERVER實用技巧SQLServer
- Microsoft SQL Server, Error: 15128 ()ROSSQLServerError
- SQL Server Management Studio (SSMS)SQLServerSSM
- High Availability (HA) in SQL ServerAISQLServer
- docker sql server安裝DockerSQLServer
- SQL Server 的死鎖SQLServer
- SQL Server 2019下載SQLServer
- SQL-Server筆記SQLServer筆記
- SQL Server大量插入 JavaSQLServerJava
- sql server 2019安裝SQLServer
- SQL Server 索引結構SQLServer索引
- SQL Server 審計(Audit)SQLServer
- sql-server檢視SQLServer
- SQL Server 2022 RTM 最新累積更新:Cumulative Update #13 for SQL Server 2022 RTMSQLServer
- .sql檔案匯入到sql server中SQLServer
- SQL Server一次SQL調優案例SQLServer