什么是數據庫快照: 數據庫快照,顧名思義就是給數據庫某個時刻拍的照片,是數據庫(源數據庫)的只讀、靜態視圖。多個快照可以位于一個源數據庫中,并且可以作為數據庫始終駐留在同一服務器實例上。創建快照時,每個數據庫快照在事務上與源數據庫一致。在被數據庫所有者顯式刪除之前,快照始終存在。
如何創建數據庫快照:
下面是進行如下操作的一些最佳方法:命名數據庫快照、創建它們時進行計時、限制它們的數量以及將客戶端連接重新定向到快照。 數據庫快照的命名: 為了便于管理,數據庫快照的名稱可以包含標識數據庫的信息,且每個數據庫快照的名稱具有唯一性。 例如: .源數據庫的名稱 .該新名稱用于數據庫快照的信息 .快照的創建日期和時間、序列號或一些其他的信息(例如一天中的某個時間)以區分給定的數據庫上的連續快照基于每天24小時制,這里的數據名稱為TEST,那么就可以這樣命名: TEST_snapshot_0600 --上午六時的數據庫快照 TEST_snapshot_1203 --中午12時3分的數據庫快照 TEST_snapshot_1820 --18時20分的數據庫快照數據庫快照的創建可以根據具體需要在不同的時刻進行創建。創建數據庫快照的語句基本與數據庫的創建相同,只不過在末尾加了AS SNAPSHOT OF DB_NAME(作為xx數據庫的快照)下面是創建數據庫快照的T-SQL語句: CREATE DATABASE db_name ON ( NAME = db_name_data, FILENAME = ‘path/db_name_data.ss’ ) AS SNAPSHOT OF db_name;
例:
GO --執行批處理 CREATE DATABASE TEST ON ( NAME = TEST_data_1800, --設置快照文件名稱 FILENAME = 'D:/SQL/TEST_data_1800.ss' --指定快照文件位置 ) AS SNAPSHOT OF TEST; --指定為數據庫快照 GO注意:創建數據庫快照時,CREATE DATABASE 語句中不允許有日志文件、脫機文件、還原文件和不起作用的文件建好數據庫快照后,點擊對象資源管理器-數據庫-數據庫快照,就可以查看已建好的數據快照。如果要刪除數據快照,可以使用以下語句:USE TEST --指定當前操作的數據庫 DROP DATABASE SalesSnapshot0600 --刪除名為 SalesSnapshot0600 的數據庫快照,而不影響源數據庫 刪除后SalesSnapshot0600 的所有用戶連接都被終止,并刪除快照使用的所有 NTFS 文件系統稀疏文件將數據庫恢復到數據庫快照步驟
1、標識要將數據庫恢復到的數據庫快照2、刪除其他任何數據庫快照。3、執行恢復操作如果數據庫使用完整恢復模式,則在執行恢復之前,應先備份日志,恢復數據庫快照要求源數據庫具有RESTORE DATABASE 權限。TSQL語句如下:RESTORE DATABASE <數據庫名稱> FROM DATABASE_SNAPSHOT = <數據庫快照名稱>例:--Test to see if sales_snapshot0600 exists and if it -- does, delete it.IF EXISTS (SELECT dbid FROM sys.databases WHERE NAME='sales_snapshot0600') DROP DATABASE SalesSnapshot0600;GO-- Reverting Sales to sales_snapshot1200USE master;RESTORE DATABASE Sales FROM DATABASE_SNAPSHOT = 'sales_snapshot1200';GO已恢復的數據庫將保留數據庫快照的權限和配置(例如,數據庫所有者和恢復模式)。新聞熱點
疑難解答