SQL Server : 数据库快照及其查询
2009-08-30 00:00:00 来源:WEB开发网近日再次讲到SQL Server 2005中的数据库快照功能。这里做一个总结
使用场景:
只读的报表查询(可以有多个版本)
分担源数据库压力
将数据静止在某个时间
对于人为失误问题的灾难恢复
主要限制:
要求企业版
数据库快照与源数据库必须在一个服务器实例
如果存在多个快照的话,就不可以使用其中某一个进行还原了
实验步骤:
1. 创建数据库快照
-- =============================================
-- Create Snapshot Template
-- =============================================
USE master
GO
-- Drop snapshot database if it already exists
IF EXISTS (
SELECT name
FROM sys.databases
WHERE name = N'Northwind_20090725'
)
DROP DATABASE Northwind_NorthwindTest
GO
-- Create the snapshot database
CREATE DATABASE Northwind_20090725 ON
( NAME = Northwind, FILENAME =
'E:\Temp\Northwind_20090725.ss' )
AS SNAPSHOT OF Northwind;
GO
2. 查询数据库快照
SELECT * FROM Northwind_20090725..Customers
3. 理解数据库快照查询的依赖关系
我们都知道数据库快照这个功能最主要的一个特性就是所谓的"写入时复制",也就是说快照数据库最开始的时候并没有包含数据, 只有在源数据库的数据页发生变化的情况下,才会发生数据复制.
但是不管数据有没有从源数据库复制到快照数据库,查询快照数据库都要求源数据库是在线的
为了做这个测试,此时,如果设置源数据库的状态为脱机,则就无法完成查询
ALTER DATABASE [Northwind] SET OFFLINE
- ››SQL Server 2008 R2 下如何清理数据库日志文件
- ››sqlite 存取中文的解决方法
- ››SQL2005、2008、2000 清空删除日志
- ››SQL Server 2005和SQL Server 2000数据的相互导入...
- ››sql server 2008 在安装了活动目录以后无法启动服...
- ››sqlserver 每30分自动生成一次
- ››sqlite 数据库 对 BOOL型 数据的插入处理正确用法...
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
赞助商链接