技术开发 频道

SQL Server 2008基于策略的管理

  【IT168 技术文档】1. 针对一台或多台服务器,在安全性和性能方面实现非常好的方案

  SQL Server 2008 引入了Policy-Based Management。 Policy-Based Management 是一套基于规则的框架,它可以针对一个或多个SQL Server 2008 的实例。在SQL Server Management Studio 中用户可以创建策略,在不同级别上对数据库服务器进行管理(包括服务器级别、数据库级别、以及SQL Server 对象级别),并且可以对其设定单独的条件限制或一组条件限制。

  在第一个练习当中,我们将对一些预先创建的、满足SQL Server 2008非常好的方案的策略以及条件进行强制、验证、以及设置计划任务。此外,第一个练习还将帮助您熟悉Policy-Based Management 的架构及其所提供的条件。

  任务一:

  研究并启用SQL Server 中的一些策略(重点关注安全性和性能方面的非常好的方案)。首先我们将了解一些性能相关的策略

  步骤:

  1. 启动SQL Server Management Studio.

  在Windows 任务栏中,依次点击Start | All Programs | Microsoft SQL Server 2008 | SQL Server Management Studio

  2. 当SQL Server Management Studio 打开以后会提示进行连接。在Connect to Server 对话框中,输入如下连接属性并点击Connect:

  Server type: Database Engine

  Server name: CHICAGO\ConfigServer

  Authentication: Windows Authentication

  我们只有使用一台“配置服务器”才能够通过策略集中存储并集中管理全部的标准配置、服务器连接组(为了让SQL Server Management Studio 的连接性更好) 以及集中化的数据集合和数据分析。该服务器的名称(及其硬件配置) 并不重要,与其它SQL Server服务器有所不同也无大碍。我们只需要通过该服务器集中化的使用SQL Server 中新的管理功能,包括:Policy-Based Management (此实验的内容), Performance Data Collection, 以及管理注册服务器和服务器组的属性。

  3. 在Object Explorer, 展开Management 然后点击Policy Management, 最后展开Facets.

  4. 在Object Explorer Details 窗口中(如果该窗口没有显示在SQL Server Management Studio中,请点击View, Object Explorer Details),我们可以看到SQL Server 所支持的74 个方面并且默认情况下没有任何策略。SQL Server 2008中所有满足“非常好的方案的策略”都是以.xml 文件的形式提供。如果需要导入满足“非常好的方案的策略”,只需要右键点击Policies 然后再点击Import Policy….

  5. 在Import 对话框中,点击“Files to import:” 右侧的…按钮。当显示Select Policy 菜单的时候,您将可以看到名为“SQL Server Best Practices” 的链接。如果您看到了这个链接,则点击进入C:\Program Files\Microsoft SQL Server\100\Tools\Polices 目录,如果没有看到这个链接,则手动浏览到该目录中。SQL Server 2008 中针对Database Engine, Analysis Services 以及Reporting Services提供了符合非常好的方案的相关策略。出于实验目的,我们将关注有关Database Engine 的非常好的方案。进入到\Database Engine\1033 文件夹。选择所有的.xml 文件,然后这些被选中的文件将会在“Files to import:” 中罗列出来。注意对话框的其它选项,尤其是Policy state 下拉列表中的这三个选项:

  • Preserve policy state on import

  • Enable all policies on import

  • Disable all policies on import

  6. 选择“Disable all policies on import” ,这样我们的“配置服务器”默认不会启用策略,以便于我们后续对策略慢慢进行定义,然后再将定义好的策略在生产环境中进行实施。点击OK,导入所有满足“非常好的方案的策略”.

  注意:SQL Server 2008 支持的所有策略在其相应的xml 文件中默认都是禁用的;但当将这些策略导入到“目标”服务器的时候,您可以选择“Preserve policy state on import”或者选择Enable all on import.

  7. 加载完成后您将看到50条策略,71个条件以及原始的74个方面.

  8. 查看一下这些策略的名称。每一条策略都针对一个或多个目标并有一个或多个条件,您可以选择相应条件进行强制执行,或者仅仅进行验证和监控。大多数策略您可能已经很熟悉了,甚至就是您目前所遵循的一些非常好的方案:

  • CmdExec Rights Secured: 相关内容我们需要在SQL Server Surface Area Configuration Tool 中进行查看(一般情况下我们要将其关闭).

  • Data and Log File Location: 查看数据库的属性,但是如果服务器数量很多,你不得不在每一台服务器中进行相关操作,或者编写T-SQL 语句来分析所有数据库的数据文件位置和日志文件位置。这条策略可以很轻松的验证特定数据库的日志文件和数据文件是否存储在不同的逻辑驱动器上

  • Database Auto Close: 查看数据库属性,你可以查看数据库选项的状态,但有时候却不知道某些选项是否应当打开或关闭。在这个非常好的方案中提示最好不要启用该选项(针对生产环境的服务器),因为启用该选项可能会造成无谓的系统开销

  9. 如果想了解策略的详细信息,可以双击该策略,此时弹出的页面中将会有两个选项:general 和description. Descriptions 页面中的内容虽然很简练,但帮助很大。如果想深入研究,你还可以查看该策略生效的条件。下面我们将以SQL Server Lightweight Pooling 这条策略为例

  10. 双击SQL Server Lightweight Pooling 策略,将其打开

  11. 点击Description 选项卡并阅读如下内容:Checks whether lightweight pooling is disabled on the server. Setting lightweightpooling to 1 causes SQL Server to switch to fiber mode scheduling. Fiber mode is intended for certain situations when the context switching of the UMS workers are the critical bottleneck in performance. Because this situation is unusual, fiber mode rarely enhances performance or scalability on the typical system.

  虽然描述中的信息无法让你立即成为轻型池方面的专家,但却能让你大概对此有所了解

  12. 在“Additional Hyperlink help”中点击“Test Link” 按钮,此时会打开联机丛书中的相关文章,并进一步描述轻型池以及对该选项的推荐设置。某些情况下打开此设置是有益处的,但根据SQL Server 团队的研究,大多数情况下推荐将此项设置关闭。

  13. 返回到SQL Server Lightweight Pooling 策略的Open Policy 对话框

  14. 如果强制此项策略,我们希望能够在违反策略的时候提供更为详细的信息,因此在Additional Help Hyperlink 区域输入如下信息:

  15. *注意:上述信息并不是必须要输入,在后面的步骤中我们将会看到这些信息在什么情况下会显示出来,因此你也可以任意输入一些文字。同时,尽量保证文字的简洁,因为只有大概120个字符(根据窗口大小)可以显示出来。建议只输入对链接的描述信息即可。

  最后,在点击OK 之前,请注意Date modified 和Modified by 这两个字段当前还是空的

  16. 信息更改完成以后,点击OK. 然后马上双击该策略将其重新打开。这时可以看到我们之前所输入的描述信息和链接,另外“date modified” 和“modified by” 字段中的信息也进行了更新

  17. 将策略保持打开状态,返回到General 选项卡,我们将设置强制执行该策略。但此时Enable 复选框仍是灰色的。这是因为采用“On Demand” 方式的策略不能“enabled”,这些策略只能手动执行

  18. 将Evaluation Mode 改为On Schedule,此时Enabled 复选框将不再是灰色,但会提示出现错误

  19. 注意对话框上部提示的错误:CheckOnSchedule requires a Schedule. Select an existing Schedule, create a new Schedule, or change the Execution mode.

  20. 同时在Schedule 框中也有相对应的错误提示。将鼠标移动过去可以看到相同的消息。

  21. 点击对话框上部以黄色高亮显示的错误消息,可以将此信息展开:

  22. 注意在左下角有两个额外的图标:

  23. 点击右侧的图标(Copy message text) 可以将详细信息复制到剪贴板中

  24. 打开记事本(Start, run, notepad.exe) 并将剪贴板中的内容粘贴过来,可以看到更为详细

  的信息:

  TITLE: Microsoft SQL Server Management Studio

  ------------------------------

  CheckOnSchedule requires a Schedule. Select an existing Schedule, create a new Schedule, or change the Execution mode.

  For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.0.1600.22+((SQL_PreRelease).080709-1414+)&EvtSrc=MissingJobScheduleException&LinkId=20476

  ------------------------------

  BUTTONS:

  OK

  ------------------------------

  25. 如果要设置计划,首先需要决定是采用现有的计划还是单独新建一个计划。点击Pick 可以查看是否有以创建好的合适的计划。检查轻型池并不需要很频繁,现有计划当中最为不频繁的也要每隔6个小时执行一次。另外还有的计划是当SQL Server Agent 启动时运行,但这又显得太过于稀松。如果你进一步研究会发现,更改轻型池选项需要重新启动SQL Server,这也将导致SQL Server Agent 重启。因此,选择RunAsSQLAgentServiceStartSchedule 计划然后点击OK 返回General 选项卡

  26. 最后,点击Enabled 复选框,然后点击OK 按钮完成对策略所作的更改

  27. 对策略进行评估很容易,我们可以从Object Explorer 或Object Explorer Details 中右键点击该策略,然后点击Evaluate,该策略将在当前实例中执行。验证过程结束时,将会显示该策略是否存在冲突

  28. 注意在Details 栏中有一个链接View… ,可以查看详细信息。点击View… 将会显示Results Detailed View 对话框,在这里可以看到Expected Value, Actual Value, Policy Description, Additional Help 以及我们前面所定义的链接:

0
相关文章