当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 最新的关键SQL Server漏洞已被微软证实

MSSQL
如何在 SQL SERVER 中快速有条件删除海量数据
Transact_SQL 小手册
一个过滤重复数据的 SQL 语句
MS-SQL Server 2005 其中三个版本的比较
SQL Server 的 SQL 语句导入导出大全
一些 T-SQL 技巧
显示 Sql Server 中所有表中的信息
MS-SQL Server 中单引号的两种处理方法
sql数据库不能直接用instr函数
MDF文件在SQL Server中的恢复技术
SQL Server 中调整自增字段的当前初始值
如何创建SQL Server 2000故障转移群集
SQL Server连接失败错误及解决
最长用最基本的MSSQL数据库备份与还原
清除SQLServer日志的两种方法
如何强制删除或恢复SQLServer正在使用的数据库
如何恢复数据库备份到一个已存在的正在使用的数据库上
设定sql server定期自动备份数据库
xp_cmdshell开启与关闭
更改SQL Server更改当前数据库的所有者:sp_changedbowner

MSSQL 中的 最新的关键SQL Server漏洞已被微软证实


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 86 ::
收藏到网摘: n/a

微软在12月22日早上发布新的安全通告证实,一处远程执行代码漏洞影响到了整个SQL Server产品线。

该漏洞的入侵代码在两周前已经被公布在互联网上,微软在安全通告上称,该漏洞尚未影响到Microsoft SQL Server 7.0 SP4, Microsoft SQL Server 2005 SP3,和 Microsoft SQL Server 2008.

目前该漏洞涉及到的版本有:SQL Server 2000,  SQL Server 2005,  SQL Server 2005 Express Edition,  SQL Server 2000 Desktop Engine (MSDE 2000),  SQL Server 2000 Desktop Engine (WMSDE), 和 Windows Internal Database (WYukon)。微软称,目前该漏洞并没有暴露无疑,他们正在与合作伙伴着力解决这一问题,在完成调查之后,将通过补丁的方式向用户发放。

性能数据收集器工作原理

当性能数据收集器初次建立时,它会完成许多幕后工作。例如,它会创建一个SSIS包,用于收集数据并传送到管理数据仓库中。它还将创建一系列计划任务,用户按设定好的规则来执行任务。另外,它还会在MSDB数据库增加新表,以存储日志和其它配置信息。

掌握性能数据收集器工作原理的最简单方法是,理解数据从一开始产生到最后存储在MDW中的整个过程。在本文中限于篇幅,我们以服务器行为数据收集器(Server Activity Data Collector)为例进行介绍。

服务器行为数据收集组主要用来收集两种不同种类的数据:DMV快照和性能计数器,其中后者对于监控SQL Server的整体性能非常有帮助。从服务器行为属性窗口中可以一目了然的看到这两种数据类型。

 

图2 每一个数据收集组集都有自己的属性界面

在图2中,在“收集条目(Collection Items)”下有两种数据类型。第一个是“Server Activity – DMV Snapshots”,每隔60秒对特定DMV进行一次快照。在“输入参数(Input Parameters)”下,你可以查看用来收集数据的T-SQL代码。从图2截屏中你看到的只是所有代码的一部分,不过你可以拖动滑动块来查看其全部代码。

 

图3 服务器行为—性能计数器收集条目被高亮

图3是选中“Server Activity – Performance Counters”时的截屏。在下面的输入参数屏幕中,你可以看到,某些性能监控计数器被每隔60秒收集一次。和DMV快照一样,这只是其中一个特定计数器的快照。

现在我们对服务器行为数据收集组所收集的数据类型有了简单的了解,那么这个性能数据收集器是如何收集这些信息并将其存储在MDW中的呢?

数据收集实际上就是部分SQL Server代理任务的按计划执行。当运行一个任务时,它会启动一个叫做数据收集器运行组件(dcexec.exe)的程序,用来加载和执行SSIS包。在本文的例子中,SSIS包每隔60秒收集DMV和性能监控器计数器,然后这些信息被存储在被监控SQL Server实例的一个本地文件夹中。值得注意的是,在上图中的“Cached – Collect and Update Data on the Same Schedule option,”选项要被选中。

随后每隔15分钟,将执行另一个SQL Server代理任务和SSIS包,收集存储在本地缓存文件夹中的数据,并将其移动到MDW中。从下图中,你可以看到属性页面的另一部分,在这儿你可以设定多长时间进行一次上传数据。

 

图4 设定数据上传计划

一旦数据被移动到MDW后,它就以使用三种内置报表之一或任何你创建的定制报表来形成报表。

数据收集器通过两种不同的方式来实现数据被收集和移动到MDW中:缓冲和非缓冲。缓冲方式就是上面我所介绍的方式,一个任务和SSIS包用于收集数据并将其存储在本地缓冲文件中,然后另一个任务和SSI包将数据从本地缓冲文件移动到MDW中。这种方式有助于降低数据收集器的负载,因为它降低了数据在监控实例和MDW之间的移动频率。

非缓冲方式,在磁盘使用数据收集组中使用,其工作方式略有不同。它不使用两步来移动数据到MDW,而是一步完成收集和上传数据工作。这种方式会略微增加负载,但是如果不频繁使用,不会对SQL Server的性能带来太大影响。

数据收集器的另一个功能是老数据会按照一个默认的计划来自动从MDW中清除,或者你也可以在图2和图3中设定数据在MDW中保留的时间。

你或许会问这样一个问题,性能数据收集器会产生多大负载。尽管这可能取决于你的服务器的负载以及你的服务器的硬件,通常来讲,在默认数据集设置下,它会增加4%左右的CPU利用率,每天收集大约250-300MB的数据。如果你创建自己的数据集合集,其负载可能要更大一些。

性能数据收集器的报表功能

性能数据收集器包含三个内置报表,每一个默认数据收集组对应一个报表。在本篇文章中,我们不会对每一个进行详细介绍,只是对它们进行快速的亮点介绍,如果你想深入的了解它们,可以自己去使用研究。

首先,让我们来看一下磁盘使用报表。

 

图5 磁盘使用数据收集组跟踪报告磁盘空间信息

该报告跟踪你的MDB和LDF文件的磁盘空间使用情况,既提供真实的数据也可显示简单的趋势线。这些信息可以帮助DBA更加主动,防止遭遇空间用尽的情况发生。点击其中的任何数据库,你将看到一个子报表,显示每一个数据库中数据是如何划分空间的。

接下来的报表是查询统计数据历史报表。

 

图6 使用查询统计数据历史报表帮你找出占用大量SQL Server资源的查询

虽然在上图的例子中你没有看到太多查询行为,不过你所看到的只是使用CPU资源最多的前10个查询。你可以根据CPU使用率、总体I/O、物理读操作和逻辑写等对这些数据进行分类。在你找出了最耗资源的查询后,你可以对它们逐一进行分析,该报表为你提供了关于该查询的足够多的详细信息,包括它的完整代码和图形化执行计划等。

第三个报表是服务器行为历史报表。

 

图7 服务器行为历史报表包含性能监控器计数器和DMV的等待状态信息

在所有报表中,这个报表提供的数据最多。你不仅能够跟踪基本硬件资源信息,诸如CPU使用率、内存使用率、磁盘I/O使用情况和网络使用情况,你还可以查看最活跃的SQL Server等待状态;以及SQL Server的行为,诸如登录、事务处理、用户连接等等。你可以对该界面上的任何信息进行追溯,以查看更详细具体的信息。

总结

通过本篇文章我们了解到,SQL Server 2008性能数据收集器可以让我们创建一个中心数据库来存储性能数据;它包含三个内置数据收集组来收集和存储数据;为了帮助我们识别和排除SQL Server性能相关的问题,我们可以使用其内置的三个报表来查看收集存储的数据。

我需要重点强调的一件事情是,如果你希望在自己的生产服务器上启用该功能,需要首先进行测试工作。原因有二:一是你必须评估一下它是否能够提供你想要的信息;二是你是否能接受它所带来的负载增加。如果这两方面都没有问题,你就可以开始设置启用这个SQL Server 2008的新功能了。