日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Ms Sql Server 2005的数据库快照功能使用实践

發布時間:2025/3/17 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ms Sql Server 2005的数据库快照功能使用实践 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據庫快照是sql server 2005的一個新功能。Msdn上對它的定義是:

數據庫快照是數據庫(稱為“源數據庫”)的只讀靜態視圖。在創建時,每個數據庫快照在事務上都與源數據庫一致。在創建數據庫快照時,源數據庫通常會有打開的事務。在快照可以使用之前,打開的事務會回滾以使數據庫快照在事務上取得一致。?

客戶端可以查詢數據庫快照,這對于基于創建快照時的數據編寫報表是很有用的。而且,如果以后源數據庫損壞了,便可以將源數據庫恢復到它在創建快照時的狀態。?

下面我們實踐一下數據庫快照的創建和使用:

一.????????????? 我們創建一個數據庫在此數據庫的基礎上創建快照

創建源數據庫和數據表
Use?MASTER;
GO
CREATE?DATABASE?[Snapshot_Test]?ON??PRIMARY?
(?NAME?
=?N'Snapshot_Test',?FILENAME?=?N'C:\Program?Files\Microsoft?SQL?Server\MSSQL.1\MSSQL\DATA\Snapshot_Test.mdf'?,?SIZE?=?3072KB?,?MAXSIZE?=?UNLIMITED,?FILEGROWTH?=?1024KB?)
?
LOG?ON?
(?NAME?
=?N'Snapshot_Test_log',?FILENAME?=?N'C:\Program?Files\Microsoft?SQL?Server\MSSQL.1\MSSQL\DATA\Snapshot_Test_log.ldf'?,?SIZE?=?504KB?,?MAXSIZE?=?UNLIMITED,?FILEGROWTH?=?10%)
?COLLATE?Chinese_PRC_CI_AS
GO
EXEC?dbo.sp_dbcmptlevel?@dbname=N'Snapshot_Test',?@new_cmptlevel=90
GO
USE?[Snapshot_Test]
GO
SET?ANSI_NULLS?ON
GO
SET?QUOTED_IDENTIFIER?ON
GO
CREATE?TABLE?[dbo].[test](
????
[id]?[int]?NOT?NULL,
????
[name]?[nvarchar](50)?COLLATE?Chinese_PRC_CI_AS?NOT?NULL
)?
ON?[PRIMARY]
GO

在創建完數據庫之后,我們馬上創建一個快照,創建快照使用的也是CREATE DATABASE語句,如下:

創建數據庫快照
--創建數據庫快照
create?database?Snapshot_Test_shot?ON
(
????
--是源數據庫的邏輯名
????Name?=?Snapshot_Test,
????
--快照文件地址
????FileName?=?'D:\SqlData\Snapshot_Test_shot.ss'
)?
AS?SNAPSHOT?OF?Snapshot_Test;

?

現在的快照應該和我們新建的數據庫一摸一樣,可以通過sql server 2005的對象瀏覽器查看數據庫快照,我們可以通過USE [快照庫名]來查詢數據庫快照

Code
use?Snapshot_Test_shot;
go
SELECT?*?FROM?dbo.test;
以上語句執行后dbo.test中沒有任何數據,下一步我們往源數據庫表中插入幾條數據
use?snapshot_Test;
go
INSERT?INTO?TEST?(id,name)values(1,'hello?1');
INSERT?INTO?TEST?(id,name)values(2,'hello?2');
INSERT?INTO?TEST?(id,name)values(3,'hello?3');
INSERT?INTO?TEST?(id,name)values(4,'hello?4');
GO

我們再次查詢快照數據庫中的數據

快照查詢
GO
use?Snapshot_Test_shot;
go
SELECT?*?FROM?dbo.test;

二.????????????? 使用快照恢復數據庫

使用快照恢復數據庫
Go
--從數據庫快照恢復數據庫
use?master;
GO
RESTORE?DATABASE?Snapshot_Test?from?
DATABASE_SNAPSHOT?
=?'Snapshot_Test_shot';

三.????????????? 刪除數據庫快照

刪除快照
--和刪除數據庫的語法一樣
DROP?DATABASE?Snapshot_Test_shot

MSDN中數據庫快照的典型應用是

1)?維護歷史數據以生成報表。

2)?使用為了實現可用性目標而維護的鏡像數據庫來卸載報表。

3)?使數據免受管理失誤所帶來的影響。

4)?使數據免受用戶失誤所帶來的影響。

?

迄今為止,在我接觸的項目中還沒有快照的使用場景,本文只是一次簡單的對新技術的一次動手實踐,大家在實際項目中用過快照嗎,請談談您的看法。

完整腳本文件 下載

總結

以上是生活随笔為你收集整理的Ms Sql Server 2005的数据库快照功能使用实践的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。