利用SQL Server 2008进行自动化管理


  本文标签:自动化管理 编程接口 配置 策略

  Microsoft SQL Server 的每个版本都会带来创新的可管理性功能,通过自动化管理任务、集中管理及使管理员专注于具有更高价值的战略活动上,降低了数据服务解决方案的总体拥有成本  。Microsoft SQL Server 2008 是以早期发布的企业级版本的可管理性功能为基础创建的,而且引进了全面的性能数据收集器、仓库、报表以及基于策略的管理解决方案,使用户能够对基于 SQL Server 的企业数据服务解决方案进行前所未有的控制  。

  本文介绍了 SQL Server 2008 的可管理性功能,并描述了它们的用途:
◆自动化维护、最佳实践以及配置管理,以减少管理开销  。
◆分析及优化企业范围内的数据服务性能  。
◆方便地伸缩管理操作并管理遍及组织各处的各类数据服务  。

  利用 SQL Server 2008 自动化管理

  SQL Server 2008 通过丰富的、基于策略的配置管理以及维护任务的自动化,缩短了数据库管理员和操作员执行管理功能所需的时间  。

  利用基于策略的管理配置 SQL Server

  “基于策略的框架”能够定义策略,并将其应用于数据环境中的服务器、数据库及其他对象  。定义良好的策略有助于管理员在数据服务环境中主动控制及管理更改  。该框架具有以下优势:
◆意向管理  。该框架提供了系统配置的逻辑视图,使管理员能够主动定义所需的数据服务配置,而不是在出现问题时才执行更改  。
◆智能监视  。“基于策略的框架”策略可以监视并阻止对系统进行偏离所需配置的更改  。
◆虚拟管理  。有了该框架,可以跨越多台服务器进行管理,这使整个企业执行一致的配置策略更加容易  。

  在配置策略管理时,“基于策略的框架”使用下列对象:

  Facet(方面)  。包含一些属性,用于揭示与策略管理某领域相关的选项  。例如,Surface Area(外围应用)包含与某些特定的 SQL Server 功能有关的属性,如 Database Mail Enabled 和 CLR Integration Enabled  。

  Condition(条件)  。表示 facet 状态,基于单个 facet,可用于一个或多个策略中  。例如,可以创建名为Minimal Surface Area 的条件,其中 Surface Area facet 中的所有属性都将被赋予False 值  。

  Policy(策略)  。包含针对一个或多个目标强制实施的单个条件  。例如,可以创建名为 Locked Down Server 的策略,它将 Minimal Surface Area 条件赋予该服务器  。

  Category(类别)  。包含一个或多个策略  。数据库拥有者可将数据库订阅到一个或多个类别中  。例如,可以创建名为 Corporate DB Policies 的类别,其中的一个策略可以强制实施数据库对象命名约定,另一个策略可以强制实施特定的数据库兼容级别,并将业务数据库线订阅到该类别中  。在默认情况下,所有数据库都将隐式订阅到默认的类别中  。此外,在服务器或数据库级别上,类别可被标记为“活动”或“不活动”,这样管理员就能够控制对策略的强制实施  。

  Target(目标)  。即实体,如服务器、数据库、登录、表或指定策略的其他数据库对象  。SQL Server 实例中的所有目标构成了目标层次结构  。在策略中,当将一组筛选器应用于目标层次结构时,将会定义目标集  。例如,一个目标集可能包含 Production 架构所拥有的所有索引  。

  基于策略的框架 Facet

  每个框架 facet 都代表 SQL Server 管理的一个方面,其中定义了一个或多个相关的配置选项  。SQL Server 2008 提供大量预定义的 facet,它们可用于定义强制实施特定配置选项值的策略  。例如,SQL Server 2008 提供 Surface Area facet,如图1所示  。

   

  可以创建条件以定义所需的配置,且该配置以 facet 中的设置为基础  。

  最后,要定义策略,只需指定想要强制实施的条件即可  。

  SQL Server 2008 提供了全面的 facet 集,它们可用于为 SQL Server 2008 实现指定配置设置和规则  。下面是一些利用预先提供的 facet 定义策略的例子:

  ◆利用 Server facet 强制实施特定的服务器配置设置,如登录身份验证模式  。
◆利用 Surface Area facet 控制要启用的功能,并减少服务器的外围应用  。
◆利用 Database facet 强制实施特定的数据库设置,如兼容级别  。
◆利用 Multipart Name facet 强制实施表视图和其他架构已绑定的数据库对象的命名约定  。
◆利用各种 facet 为数据库解决方案强制实施已知的最佳实践,例如确保数据文件存储在单独的驱动器上,以与日志文件分开存储

  在整个企业范围内分布策略

  该框架能够将策略类别发布到环境中附加的 SQL Server 上  。可以在 SQL Server 实例(称为“配置服务器”)上定义策略,然后将这些策略复制到其他服务器上(称为“配置目标”)  。对配置服务器上的策略或类别所做的任何更改(如将特定类别标记为“不活动”)都会自动传播到所有的配置目标上,这将极大地降低与强制实施企业范围配置策略遵从有关的开销  。除了分布策略外,还可利用 Query Editor 在一组配置目标中执行查询  。

  应用策略

  定义策略时,可选择策略的执行模式,这将确定该策略是否为主动强制实施的、是否按计划执行以及是否通过管理干预手动执行  。下面是策略属性中的四种执行模式选项:

  ◆On Demand  。管理员手动调用策略检查  。
◆On Schedule,log out-of-compliance  。SQL Server Agent作业定期执行策略,并记录与活动的策略不符的任何配置设置  。
◆Changes are attempted, prevent out-of-compliance  。DDL 触发与活动的策略不符的回滚事务  。
◆Changes are attempted, log out-of-compliance  。当相关更改发生并记录与活动的策略不符的任何配置设置时,事件通知将评估策略  。

  自动维护

  通过 SQL Server Agent 服务,SQL Server 2008 使管理员能够灵活地为数据库环境提供自动的和主动的管理和维护策略  。SQL Server Agent 提供了以下用于配置自动环境的组件:

  Jobs(作业)  。要完成的一系列单个或多个步骤  。这些步骤可能包含 Transact SQL 语句、SQL Server Integration Services 包或命令行语句  。
Alerts(警报)  。当 SQL Server 中发生特殊事件时,将自动生成这些预配置消息  。

  Operators(操作员)  。利用附加联系人信息定义的用户,可能包含电子邮件地址、传呼机号码或 net send 地址  。当预配置的事件发生时,这些操作员将会收到警报,要么通知他们执行成功或失败,要么表示作业或作业步骤已完成  。

  Schedules(计划)  。当作业运行时才指定  。作业可与多个计划相关  。

  多服务器作业可在集中式服务器上进行维护,并可用于管理遍及组织各处的 SQL Server 实例  。

  维护计划

  “维护计划”使管理员能够快速配置标准维护策略,如常规数据库和事务日志备份以及SQL Server 实例上要实施的索引维护  。Maintenance Plan Wizard(维护计划向导)提供了一种快速且用户友好的方式,可为一个或多个数据库定义维护计划  。与作业类似,在主服务器/目标服务器配置下,多服务器维护计划可在集中式服务器上进行管理  。除了 Maintenance Plan Wizard 之外,SQL Server Management Studio 还提供了丰富的设计接口,利用这些接口可为维护计划任务定义增强的工作流  。

  编程管理接口

  通过创建应用程序和脚本以执行常见的管理任务,就可以定制及扩展管理功能  。此方法可以极大地简化数据服务的操作和管理,它将管理任务委托给经验较少的管理员,并提供只包含这些任务所需功能的简单实用工具  。

   

  SQLCMD

  为便于对批处理文件使用多脚本自动化,SQL Server 2008 提供了 SQLCMD  。SQLCMD 是一种全面的命令行工具,可用于运行执行管理任务的参数化和多服务器脚本  。通过在批处理文件或脚本中结合使用 SQLCMD 操作,可以获得高水平的管理自动化,而且操作员不必使用复杂的管理接口  。

  服务器管理对象

  Server Management Objects(服务器管理对象,SMO)是一种增强的Application Programming Interface(应用程序编程接口,API),可为开发人员呈现完整的 SQL Server 管理环境  。可以利用 SMO 创建强大的定制应用程序,以管理基于 SQL Server 的解决方案  。