❶ sqlServer快照功能以及其查询如何操作
SQLServer数据库的快照只能通过SQL语句创建,以msdb数据库为例进行说明:
1、执行以下代码,看看MSDB数据库有多少数据文件
EXEC SP_HELPDB msdb
查询结果是完全一样的。
(如有帮助,请采纳,谢谢)
❷ 如何利用SQL Server数据库快照形成报表
在SQL Server 2005中,它的另外一个强大的新特点是数据库快照。数据库快照是一个数据库的只读副本,它是数据库所有数据的映射,由快照被执行的时间点来决定它的内容。
这些数据库快照在报表方面是非常有价值,因为在快照数据库中或者在原数据库中,对于任何查询而言没有锁就将被执行。快照也可以使用在灾难恢复中,因为你可以将现有的数据恢复到现有的快照中,或者还可以在有害数据操作声明的事件中存储个别必要的表和数据。
数据库快照是如何工作的?
可以使用典型的数据库命令CREATE DATABASE语句来生成一个数据库快照,在声明中有一个源数据库快照的附加说明。当快照被建立时,同时生成一个稀疏文件。这个文件(只能使用在NTFS卷中)在初始化的时候并没有磁盘空间分配给它——尽管你可能在WINDOWS资源管理器中看到了文件的大小,它会看上去与原始的源数据库文件的大小相同。对磁盘来说其实这个文件的大小接近于零。
数据库快照在初始化时读的数据文件是来自于源数据库的。当源数据库的数据发生变化时,数据引擎就会将原始数据从源数据库拷贝到快照数据库中。这个技术确保快照数据库只反映快照被执行时数据的状态。当SELECT命令被用来发布反对数据库快照时,不管数据页的读取是否被定位在源数据库数据文件中还是在快照数据库数据文件中都是没有锁被发布的。因为在只读数据库快照中是没有锁被发布,数据库快照对于报表解决方案是一个重要的解决方案。
一个快照的实例
现在,让我们来看看数据库快照在SQL Server 2005中是如何工作的。为此,首先我需要一个源数据库作为快照的来源。下面的脚本将创建一个源数据库:
以下为引用的内容:
USE master
GO
IF EXISTS(SELECT name from sysdatabases where [name] = 'SourceDatabase')
DROP DATABASE SourceDatabase
GO
CREATE DATABASE SourceDatabaseON PRIMARY
(
NAME = SourceDatabase_Data,
FILENAME = 'C:SQLServerSourceDatabase_Data.mdf'
) LOG ON
(
NAME = SourceDatabase_Log,
FILENAME = 'C:SQLServerSourceDatabase_Log.ldf'
)
GO
注意这里产品区域的大小。我定义它的大小为CHAR(150)来强调数据文件的增长级数,这样在我接下来的实例中将更容易解释清楚快照是如何工作的。
现在既然我已经有了一个源数据库,现在我装载一些数据来扩展数据文件的大小位。如此,使用列表1中的脚本来创建销售历史表。
以下为引用的内容:
USE SourceDatabase
GO
IF OBJECT_ID('SalesHistory')>0 DROP TABLE SalesHistory
GO
CREATE TABLE SalesHistory
( SaleID INT IDENTITY(1,1),
Proct CHAR(150), SaleDate DATETIME,
SalePrice MONEY
)
DECLARE @i INT
SET @i = 1
WHILE (@i <=10000)
BEGIN INSERT INTO SalesHistory (Proct, SaleDate, SalePrice)
VALUES ('Computer', DATEADD(mm, @i, '3/11/1919'),
DATEPART(ms, GETDATE()) + (@i + 57) )
INSERT INTO SalesHistory (Proct, SaleDate, SalePrice)
VALUES ('BigScreen', DATEADD(mm, @i, '3/11/1927'),
DATEPART(ms, GETDATE()) + (@i + 13) )
INSERT INTO SalesHistory (Proct, SaleDate, SalePrice)
VALUES ('PoolTable', DATEADD(mm, @i, '3/11/1908'),
DATEPART(ms, GETDATE()) + (@i + 29) )
SET @i = @i + 1
END
GO
❸ 如何配置 SQL Server 发布服务器计算机
Configuration Manager 2007 不支持站点数据库完全复制,只应复制特定的站点数据库对象。注意 在Configuration Manager 2007 安装中,为支持站点系统访问站点数据库副本,必须复制 98 个对象(48 个表、44 个存储过程、4 个视图和两个用户定义的函数)。在 Configuration Manager 2007�0�2SP1 安装中,为支持站点系统访问站点数据库副本,必须复制 99 个对象(49 个表、44 个存储过程、4 个视图和两个用户定义的函数)。 在开始执行这些过程之前,确保已完成复制前必需任务。有关必需的复制前安装任务的详细信息,请参阅 如何执行必需的复制前安装任务。可以使用以下过程来配置宿主站点数据库的 SQL Server 以发布要复制的站点数据库,并充当其自身的分发服务器。配置宿主站点数据库的 SQL Server 以发布要复制的站点数据库在连接到宿主站点数据库的 SQL�0�2Server 的 SQL Server 2005 SQL�0�2Server�0�2Management�0�2Studio 控制台中,右键单击“复制”,然后单击“配置分发”以启动配置分发向导。在“欢迎”页面上,单击“下一步”(如果显示)。在“分发服务器”页面上,选择“‘’将充当自己的分发服务器;SQL Server 将创建分发数据库和日志”。如果SQL Server 代理服务尚未启动,必须在“启动 SQL Server 代理”页面上将其启动。注意 如果SQL Server 服务帐户对 SQL Server 计算机没有管理权限,必须手动启动 SQL Server 代理服务并将其配置为在 SQL Server 启动时自动启动。 在“快照文件夹”页面上,输入空的共享网络资源,订阅服务器 SQL Server 将访问该资源以检索存储在其中的站点数据库快照信息。重要 必须为快照文件夹指定有效的 UNC 共享路径。对快照文件夹使用本地驱动器路径将不支持在订阅服务器 SQL Server 计算机上创建的请求订阅。 在“分发数据库名称”页面上,指定要创建以支持站点数据库分发的系统数据库的数据库名称和数据库文件安装目录。注意 分发数据库文件安装路径必须是 SQL�0�2Server 计算机上的本地位置,并以驱动器号和冒号开头(例如,C:)。 在“发布服务器”页面上,选择宿主站点数据库的 SQL Server,在它变为发布服务器时将使用分发服务器数据库。在“向导操作”页面上,选择“配置分发”。在“完成向导”页面上,验证将用于配置分发的设置,然后单击“完成”。完成分发配置之后,单击配置页面上的“关闭”。配置新的本地发布以获得所需的 SQL Server 副本站点数据库信息在连接到宿主站点数据库的 SQL�0�2Server 的 SQL Server 2005 SQL�0�2Server�0�2Management�0�2Studio 控制台中,展开“复制”,右键单击“本地发布”,然后单击“新建发布”以启动新建发布向导。在新建发布向导欢迎页面上,单击“下一步”。在“发布数据库”页面上选择站点数据库。在“发布类型”页面上,选择“事务发布”。在“项目”页面上,选择要作为复制项目发布的必需站点数据库对象。确定要发布的必需站点数据库对象: 在SQL�0�2Server�0�2Management�0�2Studio 控制台中,右键单击站点数据库名称并选择“新建查询”。 在SQL�0�2Server�0�2Management�0�2Studio 结果窗格中,输入以下查询:Select�0�2ObjectName�0�2from�0�2ReplicatedObjects�0�2where�0�2SiteSystemType�0�2=�0�2'MP',然后单击“执行”。注意 支持服务器定位器点站点系统以访问 SQL�0�2Server 站点数据库副本所需的对象将作为管理点复制的对象查询的一部分返回。完成此步骤之后,不需要为复制配置其他对象以支持为访问站点副本而配置的服务器定位器点站点系统。如果仅配置 SQL�0�2Server 站点数据库复制以支持服务器定位器点访问 SQL Server 副本,您可以使用以下查询:Select�0�2ObjectName�0�2from�0�2ReplicatedObjects�0�2where�0�2SiteSystemType�0�2=�0�2'SLP'。 在“项目问题”页面上,确保已为复制选择列出的表和对象。在“筛选表行”上,不要添加任何表筛选。在“快照代理”页面上,选择“立即创建快照并使快照保持可用状态,以初始化订阅”。选择“计划在以下时间运行快照代理:”并接受默认计划。或者,您可以单击“更改”,以根据自己的复制要求为快照代理配置日常计划频率。在“代理安全性”页面上,单击“安全设置…”并配置用于快照代理和日志读取器代理的帐户。在“向导操作”页面上,验证是否已选中“创建发布”。在“完成向导”页面上,输入发布的名称并检查发布设置,然后单击“完成”。在“创建发布”页面上,在创建发布之后单击“关闭”。
❹ sql server怎么设置快照
快照并不是复制整个整个数据库,而仅仅利用快照存储原始页。因此可以看出,源数据库上建立快照会给IO增加额外负担.当对快照数据库进行查询时,快照时间点之后更改的数据会查询数据文件,
当使用快照恢复数据库时,首先要删除其他快照
快照在创建时的时间点上没有commit的数据不会被记入快照
快照是快照整个数据库,而不是数据库的某一部分
❺ SQL2008的快照怎么用
--创建数据库快照
CREATE DATABASE 快照名称 ON
( NAME = 源数据库文件名1, FILENAME = 'c:\a_1801.cc' ),
( NAME = 源数据库文件名2, FILENAME = 'c:\a_1802.cc' )
AS SNAPSHOT OF 源数据库;
GO
--数据库恢复到数据库快照
RESTORE DATABASE 源数据库 FROM DATABASE_SNAPSHOT = '快照'
--删除数据库快照
DROP DATABASE 快照