iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 24
1
AI & Data

一名合格的DBA要從底層一步步爬起系列 第 24

《Day24》SQLServer資料庫快照

SQLServer可以針對資料庫的內容快速建立唯讀的檢視,一個資料庫可以存在多個快照集,每個資料庫快照集都會一直保存,直到被卸除為止。而快照集會擷取當下的唯獨資料庫,所以不需要指定交易紀錄,但在建立快照集時必須要包含所有來源資料庫的資料檔(mdf & ndf)。

建立快照集也有一些限制。

  • 快照集無法備份或還原
  • 快照集不支援全文檢索索引
  • 無法為系統資料庫(master、model、msdb)建立快照集
  • 含有快照集的資料庫無法被刪除

接下來我們來建立快照集吧!

查看資料庫test01.t1內容

use test01
go
select * from t1
go

https://ithelp.ithome.com.tw/upload/images/20200930/20129969hLCRoY4c3q.png

確認邏輯檔案名稱

exec sp_helpdb test01

https://ithelp.ithome.com.tw/upload/images/20200930/20129969RVagKP9Gre.png

建立快照集

create database test01_snap on
(name='test01_Data01',filename='B:\Data\test01_Data1.ss'),
(name='test01_Data02',filename='B:\Data\test01_Data2.ss')
as snapshot of test01
go

新增一筆資料

use test01
go
insert into t1 values(2,'bill')

再次查看資料庫test01.t1內容

use test01
go
select * from t1

https://ithelp.ithome.com.tw/upload/images/20200930/20129969ojfg4rbMJN.png

查看快照集test01_snap內容
資料為快照當下的內容,可以select查詢資料。

use test01_snap
go
select * from t1
go

https://ithelp.ithome.com.tw/upload/images/20200930/20129969OPKifbo5bP.png

還原資料庫快照集

注意:若要還原資料庫,資料庫的快照集只能有一個。

use master
go
restore database test01 from database_snapshot='test01_snap'
go

再看一次資料庫test01.t1的內容

use test
go
select * from t1
go

https://ithelp.ithome.com.tw/upload/images/20200930/20129969S6E3lFrVPy.png


上一篇
《Day 23》SQLServer 鏡像建置
下一篇
《Day25》SQLServer Always on
系列文
一名合格的DBA要從底層一步步爬起30

尚未有邦友留言

立即登入留言