SQL Server 2005集成了很多新功能,其中一项为数据库快照功能,快照功能是数据库[源数据库]的只读、静态试图。多个快照可以位于一个源数据库中,并且可以作为数据库始终驻留在同一服务器实例上。创建快照时,每个数据库快照在事务上与源数据库一致。在被数据库所有者显式删除之前,快照始终存在。本文将讲述如何演示创建数据库快照和自动创建数据库快照
Use demo
go
Create table info (Id int, name varchar(100),cname varchar(100))
go
insert into info values (1,'longrujun','沧海笑一声')
insert into info values (2,'zengyu','无梨头')
insert into info values (3,'zhy','美女杀手')
insert into info values (4,'xiongfei','六煞')
insert into info values (5,'hanlei','酒鬼')
go
print 'It is ' + @nalja
Set @DatabaseName ='demo'
Set @SnapDataName='demo_Data'
Set @SnapshotName ='demo_Snapshot'+'_'+@nalja Set @SnapFilename ='"E:\MSSQL2005\MSSQL.1\MSSQL\Data\demo_Data'+'_'+@nalja+'.ss"'
Print 'Snapshot name is ' +@SnapshotName
select * from sys.databases where source_database_id =db_id(@databasename) and name = @SnapshotName
if @@rowcount <>0
begin
set @query = 'Drop database '+ @SnapshotName
print @query
exec(@query)
end
set @query ='Create database ' + @SnapshotName + ' on (Name = ' +@snapDataName +', FileName=' +@SnapFilename +') AS SNAPSHOT of ' + @databasename+';'
print @query
exec(@query)
调度作业执行时间,如图
Figure 10.作业调度时间
好了,作业已经成功建立,下面看看库中可用的快照
select * from sys.databases where source_database_id is not null