数据层应用程序组件结构管理的制作方法

xiaoxiao2020-7-22  15

专利名称:数据层应用程序组件结构管理的制作方法
数据层应用程序组件结构管理背景在应用程序的生命周期(包括应用程序的创作、安装,以及运行时环境)内,通常创建许多不同的对象,或以其他方式将它们与应用程序相关联。例如,可以将编程代码、可执行代码、软件资源,以及硬件资源与应用程序相关联,并可以为每一个项指派各种文件名和文件类型。除与编程代码、可执行代码、以及资源相关联之外,数据库应用程序可以变得与诸如策略、表、存储的过程,以及数据库策略之类的附加项目相关联。在有许多对象要跟踪和维护的情况下,数据库管理员在数据库应用程序的生命周期内有效地管理与数据库应用程序相关联的所有项常常是困难的,并且是费时的。例如, 当数据库管理员希望对数据库应用程序所使用的硬件或其他项目作出改变或者添加或改变其中安装了数据库应用程序的数据库服务器实例时,作出所希望的改变的过程会是费时的,且昂贵的。对象可以被编码或以其他方式直接地链接到它们所驻留的硬件资源或它们在其上面操作的硬件资源,且修改项目和硬件资源之间的关联可能涉及显著的重新编程。 在应用程序对象存储在多个位置的情况下或当单个数据库存储由多个应用程序使用的对象时,修改项目所涉及的工作量增大。概述为了在数据库应用程序的生命周期阶段期间实现高管理生产力,具有将构成数据库应用程序或由数据库应用程序使用的项目进行关联的分组抽象是有帮助的。在没有软件分组抽象的情况下,很难标识、概念化、移动或再现、或者以其他方式管理数据库应用程序。 此处所公开的实施例将同数据库对象的元数据相关联的容器中的数据库应用程序的元素进行关联,这允许数据库应用程序例如被移动或作为整体再现。容器将运行时资源标识符与数据库元素相关联,这些标识符允许改变硬件或其他运行时资源或者选择数据库应用程序的元素以使用不同的资源,而无需重新编码元素。另外,多个数据库应用程序容器可以与单个分组或结构相关联,该单个分组或结构允许数据库应用程序容器被移动、再现,或以其他方式作为整体被管理。结构引用数据库应用程序的元素所使用的资源标识符,以允许管理多个数据库应用程序。根据一具体实施例,一种系统包括标识数据层应用程序组件(DAC)的集合的结构。每一个数据层应用程序组件都包括数据库元素集合的逻辑表示、主存该组数据层应用程序组件的数据库运行时资源集合、以及由该组数据库运行时资源用来主存该组数据层应用程序组件的计算资源。该系统还包括用于接收结构策略的管理点。该结构策略的一个或多个动作自动地应用于由该结构标识的受影响的实体,以使结构元素符合结构策略。提供本概述是为了以讲话的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。附图简述

图1是示出使用数据层应用程序组件(DAC)的数据库开发工具的框图;图2是示出使用DAC和DAC包来安装DAC实例的方法的流程图3是示出DAC的具体实施例的一般示图;图4是示出具有相关联的DAC名称的DAC的第二实施例的框图;图5是示出包括DAC集合的服务器结构的具体实施例的框图;图6是示出包括DAC集合的服务器结构的第二实施例的框图;图7是示出在服务器结构的实体处应用数据库管理动作和策略的方法的流程图;图8是示出服务器结构的实体关系的流程图;图9是管理数据库应用程序的系统的实施例的框图;图10是示出处理服务器结构元素的方法的流程图;图11是示出用于管理SQL实例的系统的第一具体实施例的框图;图12是示出用于管理SQL实例的系统的第二具体实施例的框图;图13是示出用于管理SQL实例的系统的第三具体实施例的框图;图14是示出用于管理SQL实例的系统的第四具体实施例的框图;图15是示出用于管理SQL实例的系统的第五具体实施例的框图;以及图16是示出用于管理SQL实例的系统的第六具体实施例的框图。详细描述各具体实施例描述了对数据层应用程序组件(DAC)的使用,该DAC标识数据库应用程序的元素并为数据库应用程序提供单个管理单元。由DAC标识的数据库应用程序与数据库对象标识符和/或数据库对象的元数据相关联,通过数据库对象可以操纵数据库应用程序。另外,数据库运行时标识符与数据库应用程序的元素所使用的运行时资源中的一个或多个相关联。与数据库运行时资源的执行有关的一个或多个策略还通过DAC来标识。结果,DAC可以通过数据库对象标识符来引用,以改变、移动或复制数据库应用程序。类似地, 可以改变运行时资源,或者,可以通过改变与相应的元素相关联的数据库运行时标识符来复制数据库应用程序。结果,数据库管理员能够专注于管理数据库应用程序的内容以及如由策略指定的这些数据库应用程序的意图,而不是将时间和注意力投入于管理数据库应用程序的实例的组织方面。根据一具体实施例,公开了一种包括标识数据层应用程序组件集合的结构的系统。数据层应用程序组件中的每一个都包括数据库元素集合的逻辑表示。该结构还标识主存该组数据层应用程序组件的数据库运行时资源集合。该结构标识由该组数据库运行时资源使用的、主存该组数据层应用程序组件的计算资源。该系统还包括用于接收结构策略的管理点。该结构策略的一个或多个动作自动地应用于由该结构标识的受影响的实体,以使结构元素符合结构策略。在另一具体实施例中,公开了一种自动应用结构策略的方法。该方法包括在服务器结构的管理点处接收结构策略。该服务器结构标识一个或多个数据层应用程序组件。数据层应用程序组件中的每一个都包括数据库元素集合的逻辑表示。该服务器结构标识主存该组数据层应用程序组件的数据库运行时资源。该服务器结构标识由该组数据库运行时资源使用的、主存数据层应用程序组件的计算资源。该方法包括监视服务器结构的实体并且自动将该结构策略的一个或多个动作应用于由服务器结构标识的受影响的实体,以使得与服务器结构相关联的元素复合结构策略。例如,自动应用结构策略的一个或多个动作包括检索结构策略,针对目标集合评估结构策略,生成一个或多个对应动作以强制实施结构策略,以及对该组目标执行对应动作。该组目标可包括计算系统的一个或多个物理计算资源或者该计算系统的所有计算资源。所公开的主题包括将构成数据库应用程序的项目进行关联的软件分组抽象。软件分组抽象实现对数据库应用程序的标识、概念化、和管理。本发明包括有效地对与数据库应用程序相关联的数据库对象、策略,以及运行时资源进行建模的被称为数据层应用程序组件(DAC)的抽象。DAC形成单个管理单元用于应用程序的完整生命周期,包括版本化(versioning)。 例如,可以结合所支持的人力资源(HR)应用程序代码来开发HR DAC。随着HR应用程序可执行程序被部署到应用程序服务器,HR DAC被部署到Microsoft SQL Server的实例。然后, 可以监视和管理HR DAC0例如,当HR DAC上的预测负载可能导致HR DAC超出其上维护有 HR DAC的当前计算机或数据库实例的容量时,可以将HR DAC移动到新数据库实例。该移动可以这样来实现通过按照与DAC相关联的数据库对象标识符来引用数据库应用程序,并通过改变与数据库元素相关联的数据库运行时标识符来引用新数据库实例的运行时资源。 一般而言,DAC可以横跨多种类型的数据库运行时环境,和/或具体而言的Microsoft SQL Server 运行时环境,包括Microsoft SQL Server 数据库实例、Microsoft SQL Server 数据库引擎、Microsoft SQL Server分析服务实例、Microsoft SQL Server报告服务实例,以及不同厂商和类型的数据库服务器和/或数据库。另外,本发明可以提供作为整体管理数据库环境的好处,从而允许更专注于管理 DAC,而不太专注于管理个体计算机、数据库实例和数据库。本发明通过“结构”的概念(也被称为“Microsoft SQL Server结构”)来解决此问题,该结构对组织的DAC、数据库实例 (例如,Microsoft SQL Server)运行时环境、以及硬件资源中的全部进行建模。该结构提供DAC、运行时环境,以及资源层中的实体和容器的统一视图,并实现实体之间的更动态的映射。该结构还包括用于声明和启动管理动作的中央管理点,中央策略管理员,以及包含用于诸如影响、假设分析或部署分析之类的分析的模型和数据的中央推理点。这些声明性的、 模型驱动的特征允许数据库管理员和开发者定义实施组织规则的全局管理动作,确保DAC 被部署在具有DAC所需的所有特征的运行时环境上,并允许服务器结构中的实体在最小的手动干预下对环境变化作出响应。由关于结构中的实体的状态的更多知识驱动的这些自管理功能,是使开发、部署, 以及管理数据层应用程序组件对于数据库管理员和开发者来说更加容易所需要的。本发明可以允许数据库管理员和开发者在他们的应用程序的生命周期内管理他们的应用程序时更有成果,给予他们更多时间来将附加数据和存储平台技术结合到他们的系统中。本发明将焦点移向数据库应用程序并从对数据库实例(例如,Microsoft SQL Server实例)、数据库、计算机、存储和网络资源的常规焦点移开。DAC是位于数据库实例和数据库两者之上的新的更高级抽象。DAC包括为传统的三层应用程序形成数据层支持的数据库实例实体集。在现代系统中,数据库应用程序和系统级应用程序信息通常跨越多个数据库和数据库实例。例如,Microsoft SQL Server系统级应用程序信息可被存储在诸如 "master"和“msdb”等系统数据库中。更具体而言,本发明在被称为DAC的容器中对数据库应用程序进行建模。DAC是将数据库应用程序伪像、相关联的策略,以及应用程序的被引用的运行时资源中的全部拉到一起的逻辑表示。每一个DAC都充当单个管理单元。可以对DAC应用策略,且DAC可以作为整体管理。策略可以被用来表明所需或首选的结果或考虑的开发者或部署意图。例如, 开发者可以通过指定DAC只能部署在64位运行时环境上的策略来声明所需的意图。该结构对DAC集合进行建模,并将它们映射到底层数据库实例运行时环境(例如, Microsoft SQL Server运行时环境、Microsoft SQL Server实例)和运行时环境所使用的硬件资源。服务器结构提供DAC集合运转所需的所有运行时环境和硬件资源的模型。该结构还提供集中式管理特征,这些特征简化在使用其他技术的情况下非常复杂的动作。例如, 每一个DAC都具有由该结构管理的一个或多个已知名称(“端点名称”)。端点名称独立于 DAC所使用的硬件资源或实例。结果,应用程序使用端点名称而并非计算机和实例名称来连接,以使得能够在实例之间移动DAC,而不要求应用程序变化。将所有可用的DAC、运行时环境,以及资源的模型与结构内的集中式管理和推理功能相组合实现若干情景。例如,可以监视服务器结构中的所有DAC的资源使用。作为另一个示例,中央推理引擎可以对照分配给它们的主机运行时环境的资源来预测DAC的未来工作负载。作为另一个示例,可以响应预测的资源不足,采取动作。例如,一种系统可以动态地管控对运行时环境可用的资源,并发现具有多余容量的运行时环境,并且以最小化或至少减少对正在运行的应用程序的影响的方式将DAC移动到该运行时环境。描述一组工具和功能,用于在结构中在DAC的生命周期中(开发、部署,以及管理)管理DAC。在一特定实施例中,DAC是打包数据库对象的元数据、可用于操纵数据库对象的数据库运行时资源的数据库运行时资源标识符,以及与数据库运行时资源的执行有关的策略的单个管理单元。如图1所示,取决于DAC在生命周期中的状态,可以将不同的动作应用于 DAC。例如,参考图1,用户100(例如,开发者)可以创建DAC模型102。DAC模型102包括数据层应用程序组件(DAC) 104。DAC 104可以被包括在DAC容器106中。DAC 104包括数据库元素集合。如图1所示,DAC 104包括第一元素108、第二元素110,以及第三元素112。 第一元素108可包括数据库对象的元数据,其中包括数据库对象标识符。第二元素110可包括可用于操纵数据库对象的数据库运行时资源。第三元素112可包括与数据库运行时资源的执行有关的策略。在DAC模型102中表示的数据库应用程序的开发期间,用户100可以创建、编辑,以及确认DAC模型102,并将DAC模型102的表示保存为DAC项目114。DAC 项目114可包括一个或多个文件118。然后,当数据库应用程序处于开发过程中时,可以将 DAC项目114登入(check into)并登出(check out)源控制系统或源控制数据库116。一旦用户100(例如,开发者)已完成了 DAC模型102中表示的数据库应用程序的开发,基于DAC模型102,DAC模型102被编译或内置到完整的DAC包120中。可以将DAC 包120作为DAC类型122导入到结构126中,该DAC类型122表示可以根据需要再现和部署的DAC模型102的概念化版本。可以部署DAC类型122,以创建部署的DAC实例124,该部署的DAC实例IM表示作为DAC模型102开发的数据库应用程序的操作安装。因此,通过开发DAC模型102,开发者已经创建了可移植数据库应用程序,该可移植数据库应用程序可在无需重新编码数据库应用程序的情况下被复制。开发者也可以在部署DAC实例IM之前配置DAC类型122。此外,DAC实例124可以针对物理计算资源的特定集合来安装。参考图2,示出了部署数据层应用程序组件的具体方法的流程图。方法在202包括创建包含数据库元素集合的DAC模型,数据库元素集合包括一个或多个数据库对象的元数据。DAC模型还包括可用于操纵数据库对象的数据库运行时资源的数据库运行时资源标识符。DAC模型还包括与数据库运行时资源的执行有关的策略。在一具体实施例中,在204, 该方法包括保存DAC模型的表示作为DAC项目,并且任选地将DAC项目登入源控制系统或源控制数据库以存储DAC项目。在另一具体实施例中,在206,该方法包括在构建DAC包之前,编辑DAC模型并确认DAC模型,在部署DAC实例之前配置DAC类型,以及针对物理计算资源的特定集合安装DAC实例。移动到208,该方法包括基于DAC模型来构建DAC包。移动到210,该方法将DAC类型从DAC包导入到服务器结构中。移动到212,该方法包括部署 DAC类型,以创建部署的DAC实例。应该强调的是,DAC在服务器结构中具有在DAC类型和DAC实例之间的两个主要子部分。当将DAC导入到服务器结构中时,构建DAC类型。DAC类型定义DAC中的对象的逻辑实现,诸如表和多维数据集(cube),并包括定义开发者希望DAC如何被使用的策略。当将DAC类型部署到服务器结构中的一个或多个数据库服务器运行时环境(例如,Microsoft SQL Server运行时环境)时,构建DAC实例。DAC实例记录DAC类型中的实体如何映射到服务器运行时环境层中的他们的主机。DAC实例包括定义管理员希望DAC如何在结构中操作的策略。参考图3,示出了数据层应用程序组件(DAC)的内容的高级视图。此图示出了开发者意图(DAC类型)与部署意图(DAC实例)的概念分隔。如图3所示,可以在概念上将DAC 分成DAC类型304和DAC实例306。DAC类型304包含结构、逻辑、策略,及包括DAC定义的其他实体。DAC类型304还提供供开发者在形式上定义DAC 302的不变量、要求,以及预期使用和解释的机制。包括DAC类型304的实体旨在作为一个单元来管理。信息对于DAC302的特定版本的所有部署而言是全局的。如此,DAC类型304可以表达开发者意图、可以被版本化,并可以对于特定版本而言不可改变,并具有保证是唯一的标识符。DAC类型304的三个主要部分是,用于组织目的,被标示为属性308、应用程序架构310,以及开发者意图和策略312。DAC类型304的属性308是DAC类型304所特有的特征或属性。例如,属性308可包括人类可读名称和描述。作为再一个示例,属性308可包括诸如主要和次要版本号之类的一个或多个版本标识符。作为又一个示例,属性308可包括被保证对DAC类型304唯一的标识符。作为又一个示例,属性308可包括公知端点名称。作为又一个示例,属性308可包括对其他DAC类型的依赖关系。DAC类型304的应用程序架构310定义包括DAC 302的数据库实例和数据库对象。 DAC类型304的此部分中的对象定义是DAC 302所固有的,且任何更改都可以生成DAC类型的新版本。应用程序架构310基本上定义DAC 302包括“什么”。例如,应用程序架构310 可包括诸如表、多维数据集,以及数据挖掘模型之类的应用程序结构。作为再一个示例,应用程序架构310可包括诸如存储过程、用户定义的函数,以及触发器之类的应用程序逻辑。 作为再一个示例,应用程序架构310可包括被视为应用程序定义的一部分的引用数据。例如,可以引用诸如邮区编码和其他邮政编码、或州和省代码之类的查找数据。DAC类型304的开发者意图和策略312提供关于DAC 302旨在如何被使用或解释的附加信息。例如,开发者意图和策略312可包括必须可用于部署DAC 302的结构资源要求。例如,DAC 302可能要求Microsoft SQL Server 2008,从而实现对空间数据类型和CLR 集成、以及80GB的磁盘空间的支持。作为再一个示例,开发者意图和策略312可包括定义被内置到DAC 302中的可置配性的配置意图(参数化)。与策略相关的另一示例是对可用性要求的指定,例如,DAC要求部署在其中启用群集的SQL krver实例。这可以允许不影响 DAC版本的部署专用配置,包括在部署时可以或必须提供的信息。例如,配置参数可以指示, 部署过程必须提供到诸如Microsoft SQL krver的文件组和实例的名称之类的特定类型的结构资源的映射。作为再一个示例,开发者意图和策略312可包括指定DAC 302的哪个部分向外部暴露的接口定义。这实现公共接口与DAC 302内部的实现细节的分离。例如, 接口定义将指定哪些实体可以被客户端应用程序或另一 DAC引用。作为再一个示例,开发者意图和策略312可包括诸如针对此DAC 302执行的查询之类的工作负载配置概况信息。如图3所示,DAC实例306捕捉实际实例或部署特定信息。此信息是对特定部署唯一的。DAC实例306表达部署意图。DAC实例306与DAC类型304相关联。对于每一个 DAC类型304,可以存在多个DAC实例。DAC实例306具有被保证在服务器结构内是唯一的标识符。DAC实例306包含服务器结构映射。DAC实例306的属性314是特定于DAC 302的部署的实例的特征或属性。属性314 包括诸如DAC实例306标识符和部署名称之类的项目。DAC实例306的部署架构316是DAC实例306中定义为特定部署所特有的SQL对象的部分。部署架构316包括诸如授权主体和索引之类的对象。DAC实例306的部署意图和策略318提供有关DAC 302旨在“如何”被部署或解释的信息。部署意图和策略318包括诸如为特定部署所特有的预期结构映射和预期策略之类的项。结构映射320是DAC实例306中定义DAC实例306和低层资源之间的映射的部分。结构映射320的内容的示例包括诸如关系型数据库实例或分析服务器实例之类的 Microsoft SQL krver运行时映射,以及诸如磁盘存储器和计算机之类的硬件资源。数据322是DAC实例306中表示与特定DAC实例相关联的数据的部分。数据322 包括由应用程序的用户创建的应用程序数据和操作数据,如为DAC实例306或应用程序所特有的性能数据。参考图4,在400示出了数据层应用程序组件(DAC)的具体实施例。DAC 402包括数据库元素集合404。数据库元素集合404包括数据库对象406的数据库对象标识符。数据库元素集合404还包括可用于操纵数据库对象408的数据库运行时资源的数据库运行时资源标识符。数据库元素集合404还包括与数据库运行时资源的执行有关的策略410。 DAC402还包括与数据库元素集合404相关联的DAC名称412。DAC名称412可被访问以供数据库应用程序414使用。数据库元素集合404通过程序与用户可选支持计算机资源集合 418相关联,如416所示。DAC名称412(例如,端点名称)有点象域名服务(DNQ名称。应用程序可执行程序连接到DAC名称,而不连接到主存DAC 402的特定计算机或实例。通过将DAC 402映射到计算机和数据库实例,在结构中建立DAC 402与特定计算机或实例的关联。可以例如通过简单地将DAC 402重新映射到Microsoft SQL krver的新实例来将DAC 402移动到新实例, 而不影响应用程序连接到数据库的方式(例如,不影响连接串)。没有一个应用程序必须更改;它们仍全部连接到相同DAC端点名称。例如,可以将带有DAC端点名称为Payroll (工资单)的DAC从Computerl (计算机1)上的默认数据库实例移到Computed (计算机2)上的另一实例。因为所有应用程序都引用已知的DAC端点名称Payroll,因此它们仍连接到同一个 DAC 402。在一具体实施例中,用户可选择支持计算机资源集合418是可使用自动工具改变的(例如,软件应用程序、用户控制的应用程序,诸如Microsoft SQL Server Management Studio、Microsoft Visual Studio、命令行、powershell 等等)。在另一具体实施例中,与集合相关联的DAC名称412是可从多个数据库应用程序访问的。在另一具体实施例中,在修改用户可选择支持计算机资源集合418时,DAC名称 412是不变的。在另一特定实施例中,在修改数据库元素集合404中的数据库元素时,DAC名称 412是不变的。在另一特定实施例中,数据库运行时资源是Microsoft SQL Server的实例,且当将Microsoft SQL Server 的实例从第一Microsoft SQL Server 实例修改到第二Microsoft SQL Server实例时,DAC名称412不变。在另一特定实施例中,数据库元素集合404可以改变,或者用户可选择支持计算机资源集合418可以改变,而DAC端点名称412不变,以使得当数据库元素集合404被改变或者当用户可选择支持计算机资源集合418被改变时,一个或多个数据库应用程序(例如, 数据库应用程序414)的应用程序连接串不需要被重新编码(例如,改变、更新、要求重新编译应用程序,要求重新创建应用程序二进制文件和/或可执行程序)。在另一特定实施例中,使用DAC名称412的数据库应用程序位于不同的联网计算机上。在另一特定实施例中,与数据库运行时资源的执行有关的策略410被应用于DAC 名称412,并且,当数据库元素集合404改变时,或当用户可选择支持计算机资源集合418改变时,策略410继续被应用。在另一特定实施例中,DAC 402还包括与数据库元素集合404接口的应用程序编程接口(API)。例如,API可以实现对数据库元素集合的元素的利用的测量。例如,API可以允许开发者与数据库元素集合404接口,如图1所示。在一特定实施例中,DAC 402被存储在计算机可读介质中。计算机可读介质可包括打包数据库对象的元数据、可用于操纵数据库对象的数据库运行时资源的数据库运行时资源标识符,以及与数据库运行时资源的执行有关的策略的单个管理单元。虽然一次只描述了一个,但是,应该理解,单个管理单元可以打包多个数据库对象的元数据、可用于操纵数据库对象的数据库运行时资源的多个数据库运行时资源标识符,以及与数据库运行时资源的执行有关的多个策略。另外,多个数据库对象包括架构、表、视图、存储过程、函数、触发器、数据类型、索引、登录、用户、许可、策略、统计数据、主键、外键、默认值,以及检查约束, 和/或可以在数据库实例或数据库中创建的任何其他对象。可以将单个管理单元映射到第一物理计算资源。可以将单个管理单元从第一物理计算资源重新映射到第二物理计算资源。第一物理计算资源的示例是处理器、网络设备或存储器存储设备。在一特定实施例中,单个管理单元由相关联的DAC名称来标识,其中,DAC名称可被访问以供数据库应用程序使用。数据库运行时资源可用于操纵可以是数据库实例的数据库对象。数据库实例可包括Microsoft SQL Server数据库引擎的实例、Microsoft SQL Server分析服务的实例,或 SQL报告服务的实例,或其他数据库类型和厂商的实例。策略可以与数据库运行时资源的执行相关,包括资源限制策略或与软件或硬件资源要求有关的过程。参考图5,在500示出了系统的特定实施例。系统500包括DAC集合502。对于数据库对DAC的主存,多个DAC可以驻留在单个数据库中或者单个DAC可以跨越多个数据库。 在图5所示出的实施例中,第一 DAC 504、第二 DAC 506,以及第三DAC 508被包括在DAC集合502中。替换地,DAC集合502可包括任何数量的DAC。DAC 504、506,以及508中的每一个包括数据库元素集合510、512,以及514的逻辑表示。系统500还包括主存DAC集合502的数据库运行时资源集合516。在图5所示出的实施例中,数据库运行时资源集合516包括第一数据库运行时资源518、第二数据库运行时资源520,以及第三数据库运行时资源522。或者,数据库运行时资源集合516可包括任何数量的数据库运行时资源。系统500还包括数据库运行时资源集合516用来主存DAC集合502的计算资源 524。在图5所示出的实施例中,计算资源524包括第一计算资源526、第二计算资源528, 以及第三计算资源530。或者,计算资源524可包括任何数量的计算资源。计算资源524可包括一个或多个计算机服务器资源、一个或多个计算机数据存储资源,或者一个或多个虚拟机资源。一个或多个计算机服务器资源中的每一个都可包括处理器、存储器,或网络元件。一个或多个计算机数据存储资源中的至少一个可以是包括多个文件的操作系统存储卷。最初可以将一个或多个计算机服务器资源中的至少一个映射到第一存储区域网络(SAN),且随后将它们映射到第二 SAN。在一个实施例中,DAC集合502中的DAC 504,506,以及508中的每一个包括DAC
容器。每一个DAC容器可包括打包数据库对象的元数据、可用于操纵数据库对象的数据库运行时资源的数据库运行时资源标识符,以及与数据库运行时资源的执行有关的策略的单
个管理单元。DAC集合502中的第一 DAC 504可以取决于DAC集合502中的第二 DAC 506。DAC集合502中的DAC 504、506,以及508中的每一个可以由结构501的DAC层来表示。包括计算资源526、528,以及530的计算资源524可以由结构501的硬件资源层来表示。数据库运行时资源集合516中的数据库运行时资源518、520以及522中的每一个可以由结构501的结构化查询语言(SQL)服务器运行时环境层来表示。数据库运行时资源集合516可包括提供Microsoft SQL Server服务的一个或多个运行时实例。一个或多个运行时实例可包括Microsoft SQL Server、Microsoft SQL Server分析服务,以及Microsoft SQL Server报告服务中的一个或多个实例。此外,一个或多个Microsoft SQL Server运行时实例可包括架构和视图。可以将DAC 504,506和508中的每一个映射到数据库运行时资源518、520和522 中的一个或多个,且可以将每一个数据库运行时资源518、520和522映射到一个或多个物理计算资源526、528和530。可以将数据库运行时资源从第一计算机重新映射到第二计算机。DAC 504,506和508中的每一个可包括相关联的DAC端点名称。DAC端点名称可被访问以供数据库应用程序使用。参考图6,在600示出了包括DAC集合的结构的第二实施例的框图。结构608是 DAC集合、主存这些DAC的Microsoft SQL Server运行时环境,以及那些运行时用来主存这些DAC的资源的基于模型的表示。该结构模型具有如图6所示的三层DAC层610、服务器运行时环境层612,以及主机资源层614。模型内的所有对象通过使用一组一般建模概念 (名词)来描述,且具有可以对那些对象执行的一系列动作(动词)。例如,动作可包括在文件系统正在快速增长或者被预测达到资源限制时将该文件系统上的一个或多个文件移至另一操作系统卷上的第二文件系统。作为另一示例,动作可包括在正在执行软件应用程序的处理器正在经历高负载时自动将软件应用程序移至具有较低处理器负载的另一计算机。作为又一示例,动作可包括自动执行根据测得的服务质量度量(例如,所承诺的性能服务质量(QoQ水平)来维护性能(例如,应用程序性能)的一个或多个动作。DAC层610主存DAC的结构定义。在所示出的实施例中,DAC层610包括第一 DAC 622、第二 DAC 624,以及第三DAC 626。或者,DAC层610可包括任何数量的DAC。服务器运行时环境层612提供结构608内的数据库运行时资源(例如,Microsoft SQL krver服务)的视图。在所示出的实施例中,运行时环境层612包括第一数据库运行时资源616、第二数据库运行时资源618,以及第三数据库运行时资源620。或者,服务器运行时环境层612 可包括任何数量的数据库运行时资源。主机资源层614表示结构608中的元素所使用的计算和存储容量。在所示出的实施例中,主机资源层614包括计算机资源630,包括第一计算机636和计算机服务器638。此外,主机资源层614包括数据资源632,包括第一存储资源 640和第二存储资源642。此外,主机资源层614包括虚拟资源634,包括第一虚拟资源644 和第二虚拟资源646。或者,主机资源层614可包括任何数量的计算机资源、数据资源或虚拟资源。结构608标识DAC、主存DAC集合的数据库运行时资源,以及数据库运行时资源用来主存DAC的计算资源。DAC 610中的每一个包括数据库元素集合的逻辑表示。推理点(例如,中央推理点604)监视结构608的实体。使用一个或多个策略(例如,中央策略606)来在由结构608标识的受影响的实体处自动地应用接收到的数据库管理动作和策略。结构608中的每一层都包含四种类型的实体容器、元素、资源和映射。容器是结构608的给定层内的顶层实体,并提供直观的管理单元和身份。容器的示例包括DAC、计算机、虚拟机、存储设备、Microsoft SQL Server、Microsoft SQL Server分析服务,以及 Microsoft SQL krver报告服务的实例。元素是结构608中驻留在容器中的单元。例如, 表和存储过程是驻留在DAC中的元素。资源是具有有限容量,并且具有确定其容量的属性的一种特殊类型的元素。处理器设备是细粒度资源的示例,且其时钟速度是涉及其容量的属性的示例。存储设备是包含诸如物理磁盘之类的更细粒度资源的资源的示例。存储设备的容量不仅由它包含的物理磁盘的属性来决定而且还由诸如RAID级别之类的其配置属性来决定。映射表示结构608的两个部分之间的关系。映射是使结构608成为Microsoft SQL krver环境的实际模型的名词。映射可以是容器到容器、容器到元素、容器到资源、元素到元素、元素到资源,以及资源到资源。结构608中的每一层610、612和614的构成可以通过应用上文所描述的一般建模概念来定义。每一层都包括一个或多个容器,那些容器内的元素和资源,以及服结构608的相邻层中的容器或元素之间的映射。DAC层610主存DAC的结构定义。每一个DAC都可以使用DAC容器来定义。每一个DAC容器由诸如结构、代码、版本,以及策略之类的表示应用程序实体的很多元素构成。DAC层610上的映射描述DAC和Microsoft SQL Server运行时环境(例如, Microsoft SQL Server的实例)之间的关系。例如,可以将DAC层610中的DAC映射到服务器运行时环境层612中的Microsoft SQL Server的实例。然后,可以通过在多个实例之间重新映射DAC来将DAC从一个实例移到另一实例。作为示例,第一 DAC 622可被映射到第一数据库运行时资源616 (例如,Microsoft SQL Server的第一实例),然后,可以通过将第一 DAC 622重新映射到第二数据库运行时资源618来将第一 DAC 622移动到第二数据库运行时资源618 (例如,Microsoft SQL Server的第二实例)。映射还可以描述多个DAC之间的关系。DAC可以表达对另一 DAC的依赖,以便允许重新使用共同元素。例如,可以定义具有由诸如实施用于订购供应的公司策略的一组存储过程之类的由多个应用程序共享的元素的“基础”DAC。需要那些元素的任何其他DAC可以通过映射到“基础”DAC来引用它们。例如,第一 DAC 622可以依赖于第二 DAC 624。运行时环境层612提供服务器结构内的Microsoft SQL Server服务的视图。 Microsoft SQL ServerjsifWW^^SMicrosoft SQL Server>Microsoft SQL Server^v 析服务,以及Microsoft SQL Server报告服务的实例。每一个运行时容器都具有一个或多个数据库元素。数据库元素可包括架构、表、视图、存储过程、函数、数据类型、索引、登录、用户、策略、统计数据、主键、外键、默认值,检查约束,和/或可以在数据库实例或数据库中创建的任何其他元素。运行时环境层612处的映射描述特定数据库实例运行时环境(例如,Microsoft SQL Server的实例)和分配给它的物理资源之间的关系。例如,将驻留服务器运行时环境层612中的数据库实例映射到硬件资源层614中的物理计算机。可以通过在计算机之间重新映射数据库实例来在物理计算机之间移动实例。作为示例,可以将第一数据库资源616 映射到第一服务器636,且可以通过将第一数据库资源616从第一服务器636重新映射到第二服务器638来将第一数据库资源616移动到第二服务器638。主机资源层614表示服务器结构608中的元素所使用的计算和存储容量。主机资源层614上的容器包括物理计算机、虚拟机,以及操作系统存储卷。资源容器还可以包含子元素。例如,物理服务器包含处理器、存储器,以及网络元素。操作系统存储卷可以包含文件元素以及与存储所提及的伪像有关的其他元素。主机资源层614上的映射描述物理资源之间的关系。例如,主机资源层映射表达哪些SAN逻辑单元号(LUN)可从每一个物理计算机访问。SAN LUN可以通过改变物理计算机和SAN LUN之间的映射来在物理计算机之间移动。结构608支持管理动作的中央声明和可应用于结构608中的实体的策略。结构 608的管理点(例如,中央管理点602)可以接收数据库管理动作和策略。结构608还提供可以监视结构实体和自动地应用管理动作和策略的推理引擎。图6示出了结构608的中央管理机制。中央管理机制都引用记录了结构608中的容器的相关细节、关系,以及约束的模型。结构608中的Microsoft SQL Server实例之一可以被命名为中央管理点602,并为所有结构层提供集中式管理功能(如发现、策略定义,以及监视)。中央管理点602是所有容器动作被触发(例如,导入、移动、创建,以及部署)的地方。中央管理点602可以被主存在由结构608所标识的数据库运行时资源中的一个上。例如,中央管理点602可被主存在第一数据库运行时资源616上、第二数据库运行时资源618,或第三数据库运行时资源 620上。中央管理点602可以为服务器结构层610、612,以及614提供发现、策略定义,以及监视。中央推理点604提供结构608中的元素的数据模型。该模型被分析引擎用来预测资源使用趋势,以及结构608上的可能的动作的影响。中央推理点604可以被用来对由结构608标识的实体采取中央推理动作。中央推理动作可包括第一动作,该第一动作,例如, 估计卸载第一 DAC的预期影响,其中其他DAC可以具有对第一 DAC的依赖。中央推理动作也可以包括第二动作,该第二动作,例如,估计修改一个或多个计算资源对一个或多个DAC 的预期影响。中央推理动作也可以包括第三动作,该第三动作,例如,呈现结构608中的被配置成主存要部署的DAC的Microsoft SQL Server实例的列表。因此,结构608可用于确定推荐动作以及对推荐动作的预期影响。一用户界面可基于对执行推荐动作的预期影响来显示相关硬件资源和结构608的软件应用程序的预期利用图。在预期利用图中显示对执行推荐动作的预期影响可允许管理员决定是否执行推荐动作。如果管理员认为对相关硬件资源和软件应用程序的预期影响是不可接受的,则管理员可选择不执行推荐动作。如果管理员确定预期影响是可接受的,则管理员可选择执行推荐动作。中央策略606可包括作为被定义为引导行为或动作的权威性原理的策略,且其中,策略指定可以应用于由结构608标识的实体集的条件集。例如,该组实体可包括一个或多个Microsoft SQL Server运行时实例,且策略可以基于Microsoft SQL Server实例的软件版本来对将一个或多个Microsoft SQL Server运行时实例结合到结构608进行限制。 作为示例,可以只将Microsoft SQL Server 2008实例结合到运行时环境层612中。作为另一个示例,该组实体可包括一个或多个计算资源,且策略可以基于操作系统的版本或存储器量来对将一个或多个计算资源结合到结构608进行限制。作为示例,只有包含Windows Server 2008的64位版本和至少4千兆字节(4GB)存储器的计算机可以被结合到主机资源层614。所述策略是限制将运行时实例和硬件资源包括到结构608中的策略的示例。或者,策略可限制将DAC结合到结构608中。例如,策略只可准许DAC进入其查询符合最佳实践的结构608中。最佳实践可以在结构模型中被表示为可通过程序验证的规则集。最佳实践的示例是避免在数据库查询中使用“SELECT*”语句。另一示例是要求所有存储的过程都符合特定命名约定。中央管理点602可以触发结构动作。例如,结构动作可包括导入动作、导出动作、 部署动作、复制动作、确认动作、安装动作、卸载动作、添加动作、移除动作、获取动作、设置动作、枚举动作、移动动作、创建动作、保存动作、升级动作、开始动作、停止活动、删除动作、 重启动作、运行动作、挂起动作、恢复动作、禁用动作、启用动作、测量动作、监视动作、预测动作、管控动作、映射动作、解除映射动作、发现动作、比较动作、合并动作、阻塞动作、解除阻塞动作、授权动作,或撤消动作。服务器结构动作还可包括优化动作。考虑资源利用率何时太高的缓解动作是优化数据库配置。数据库优化示例包括添加索引或数据压缩。生命周期动词描述用于从创建或导入到结构608的时间到从结构608移除的时间管理实体的动作组。例如,生命周期动词覆盖诸如创建、修改,以及删除给定实体等动作。一些生命周期动词可以应用于层610、612和614中的一个或多个。生命周期动词包括导入动作、导出动作、部署动作、复制动作、确认动作、安装动作、卸载动作、添加动作、移除动作、获取动作、设置动作、枚举动作、移动动作、创建动作、保存动作,以及升级动作。导入动作从外部永久数据存储创建新容器以及相关联的元素。导入动作可以应用于DAC层610。例如,导入动作可以将DAC从DAC包文件导入到结构608。导出动作从容器及其包含的元素创建永久外部数据存储(例如,文件)。导出动作可以应用于DAC层610。 例如,导出动作可以将DAC导出到文件。部署动作将容器以及其对象放在预期位置。部署动作可以应用于DAC层610。例如,部署动作可以将第一 DAC 622部署到运行时环境层612中的一个实例(例如,第一实例 616)。复制动作将一组元素从一个容器复制到另一容器。复制动作可以应用于DAC层 610和运行时环境层612。例如,复制动作可以将DAC从一个Microsoft SQL Server实例复制到运行时环境层612中的另一实例(例如,从第一实例616到第二实例618)。确认动作检查目标容器、元素、资源或映射是否符合指定准则。确认动作可以应用于DAC层610,服务器运行时环境层612,以及主机资源层614。例如,确认动作可以确认 Microsoft SQL Server的实例是否已启用CLR集成。安装动作将DAC配置成可在结构608中操作。该安装动作可以应用于DAC层610 和运行时环境层612。例如,安装动作可以在第一数据库实例616上安装DAC。卸载动作从指定位置移除容器以及其元素。该卸载动作可以应用于DAC层610和运行时环境层612。 例如,卸载动作可以从第一数据库实例616卸载DAC。添加动作将在外部创建的容器、元素或资源的表示结合到结构中。添加动作可以应用于运行时环境层612,以及主机资源层614。例如,添加动作可以将第一Microsoft SQL Server实例616添加到运行时环境层612中。移除动作将外部创建的容器、元素或资源与结构608解除关联。移除动作可以应用于运行时环境层612,以及主机资源层614。例如, 移除动作可以从运行时环境层612移除Microsoft SQL Server实例616。获取动作检索容器、元素、资源或映射的当前配置。获取动作可以应用于DAC层 610,运行时环境层612,以及主机资源层614。例如,获取动作可以获取在第一 Microsoft SQL Server实例616上安装的DAC的版本号。设置动作更新容器、元素、资源或映射的当前配置。设置动作可以应用于DAC层 610,运行时环境层612,以及主机资源层614。例如,设置动作可以设置在第一 Microsoft SQL Server实例616上安装的DAC的版本号。枚举动作获取容器内的一组元素或资源。枚举动作可以应用于DAC层610,运行时环境层612,以及主机资源层614。例如,枚举动作可以枚举第一服务器636上的资源。移动动作将一组元素或资源从一个容器、元素或资源移动到另一个。移动动作可以应用于DAC层610,运行时环境层612,以及主机资源层614。例如,移动动作可以将数据库从Microsoft SQL Server的一个实例移动到运行时环境层612中的另一实例。作为又一示例,移动动作可移动数据库实例(例如,SQL Server实例)或者可将数据库文件从一个计算机系统移至另一计算机系统。创建动作创建新容器或元素。创建动作可以应用于DAC层610和运行时环境层 612。例如,创建动作可以创建指定DAC要求部署在Microsoft SQL Server 2008上的新策略约束。保存动作保持容器、元素、资源或映射的当前配置。保存动作可以应用于DAC层 610,运行时环境层612,以及主机资源层614。例如,保存动作可以保存在第一 Microsoft SQL Server实例616上安装的DAC的版本号。升级动作将容器或元素的现有配置转换为新定义。升级动作可以应用于DAC层 610和运行时环境层612。例如,升级动作可以将在第一 Microsoft SQL Server实例616 上安装的订单表定义从第一版本升级到第二版本。结构608具有若干个进程,这些进程执行诸如监视性能、协调变化,以及确认是否符合策略之类的动作。下面动词组可以被用来管理进程。所有其余的动词适用于结构608 的所有层(例如,DAC层610、运行时环境层612,以及主机资源层614)。进程控制动词包括开始动作、停止动作、重启动作、运行动作、挂起动作、恢复动作、禁用动作,以及启用动作。开始动作启动持续运行直到停止的进程。例如,开始动作启动第一Microsoft SQL Server实例616上的协调。停止动作停止运行中的进程。例如,停止动作可以停止第一 Microsoft SQL Server实例616上的协调。重启动作停止运行中的进程,然后,再次启动它。例如,重启动作可以重启第一 Microsoft SQL Server实例616上的协调。运行动作启动执行并在完成时自动地停止的进程。例如,运行动作可以在第一 Microsoft SQL Server 实例616上运行发现。挂起动作暂停一进程,该进程保持暂停,直到它被恢复。例如,挂起动作可挂起第一 Microsoft SQL Server实例616上的发现。恢复动作继续挂起的进程。例如,恢复动作可以恢复第一 Microsoft SQL Server实例616上的发现。禁用动作将进程配置成不可用,以使得它无法被启动。进程保持被禁用,直到它被启用。例如,禁用动作可以禁用第一 Microsoft SQL Server实例616上的协调。启用动作将被禁用的进程配置成能够启动。例如,启用动作可以启用第一 Microsoft SQL Server实例616上的协调。性能管理动词被用来就结构资源的当前利用率分析结构608的当前或预测的健康状态。例如,可以监视测得的诸如查询之类的DAC操作的等待时间统计数据以确定当前健康状态并预测将来的健康状态。这些动词还提供用于管控由结构608内的各种容器和元素对资源的使用的手段。性能管理动词可包括测量动作、监视动作、预测动作,以及管控动作。测量动作收集与资源、元素或容器有关的性能统计数据。例如,测量动作可以测量第一服务器636的卷E上被数据库文件Finance.mdb (财政.mdb)所使用的空间。监视动作相对于策略评估与资源、元素或容器相关的性能统计数据。例如,监视动作可以监视第一服务器636的卷E上被数据库文件Finance, mdb所使用的空间,来查看利用超出容量的 80%的情况的出现。预测动作根据历史数据、资源变化,或诸如部署或移动之类的结构动作来预测容器、元素或资源的性能统计数据。例如,预测动作可以预测何时将需要额外的存储器以适应Finance DAC(财政DAC)的增长。作为再一个示例,预测动作预测何时将需要额外的资源以适应总体结构的增长。管控动作指定分配给容器或元素的最小或最大资源量。 例如,管控动作可以将第一 Microsoft SQL Server实例616的CPU使用限制到第二服务器 638的CPU容量的50%。资源管控还可应用于容器和/或元素的集合。映射动词提供管理结构608内的多层之间的关系的简单手段。映射动词主要被用来在两个相邻层之间建立关系。映射动词可包括映射动作和解映射动作。在概念上,这些动词还可以被视为可以对结构608采取的顶层动作,其导致一系列其他生命周期动作被执行。例如,将DAC映射到Microsoft SQL Server的实例告诉系统,DAC应该在该实例上可用。这将调用使该DAC在指定的实例上可用所需的诸如部署或安装之类的所有动词。映射动作在容器、元素或资源之间创建关系。例如,映射动作可以将第一 DAC 622 加入到第一 Microsoft SQL Server实例616。解除映射动作移除容器、元素或资源之间的映射。例如,解除映射动作可以将第一 DAC 622与第一 Microsoft SQL Server实例616分罔。协调是用于标识结构中已经从它们的规定的定义漂移的实体的进程。例如,协调检测生产服务器中的表的定义是否已与在DAC中的定义的变得不同。三个服务器结构动词实现协调。协调动词可包括发现动作、比较动作,以及合并动作。发现动作定义查找新项并给出有成果的洞察的操作。例如,发现动作可以发现第一 Microsoft SQL Server实例616中的Employee表中的新列。比较动作将容器、元素或资源的当前配置与预定义配置匹配,并报告任何差异。例如,比较动作可以将存在于第一 Microsoft SQL Server实例616上的Employee (雇员)表对照DAC中的表定义进行比较, 并发现第一 Microsoft SQL Server实例616中的表的版本具有DAC中未定义的列。合并动作从多个实例创建容器、元素或资源的单个配置。例如,合并动作可以将Employee表中的新列的定义合并到DAC定义。访问动词提供控制对结构模型的部分的访问以支持长时间运行的进程的手段。例如,将文件从一个卷移动到另一卷的进程必须控制对目的地卷的访问,以使得多个进程不会作出使空间冲突的分配。安全性动词将对结构608内的容器和元素的访问限制到被授权的用户。本发明不提供新的授权基础结构,而是这些动词表示跨结构608的授权配置的统一接口。访问和安全性动词可包括阻塞动作、解除阻塞动作,授权动作,以及撤消动作。阻塞动作给发布进程提供对容器、元素或资源的配置的排他性访问,并防止其他进程访问该配置。此动词作用于服务器结构608的模型内的数据,而不是作用于实际实体本身。例如,阻塞动作可以阻止对第一服务器636的存储卷E的访问,以便可以预留空间以执行文件迁移。解除阻塞动作释放对容器、元素或资源的配置的排他性访问。此动词作用于服务器结构608的模型内的数据,而不是作用于实际实体本身。例如,在文件迁移完成之后,解除阻塞动作可以解除对第一服务器636的存储卷E的访问的阻挡。授权动作给予访问容器、元素或资源的主体许可(principal permission) 0例如,授权动作可以授权主体 Janet对DAC进行写访问。撤消动作拒绝访问容器或元素的主体许可。例如,撤消动作可以撤消主体Janet对DAC的写访问。参考图7,示出了自动地应用数据库管理动作和策略的方法的特定实施例。在 702,该方法包括在结构的中央管理点(例如,在图6中的服务器结构608的中央管理点602)处接收结构策略。该结构标识DAC、主存DAC集合的数据库运行时资源,以及数据库运行时资源用来主存DAC的计算资源。DAC中的每一个包括数据库元素集合的逻辑表示。移动到704,该方法还包括在中央推理点(例如,图6中的服务器结构608的中央推理点604) 处监视该结构的实体。移至706,该方法还包括自动将结构策略的一个或多个动作应用于由该结构标识的受影响的实体,以使得结构元素符合结构策略(例如,使用图6中的中央策略 606)。参考图8,实体关系图(ERD)示出了结构如何表示描述了数据层的组件的模型以及它们如何关联。图8中的实体关系图(ERD)示出了此模型如何成形以支持结构的三层的结构和语义。每一层都表示成模型内的正式实体,如容器、元素和资源。该模型还定义这些实体之间的关系语义,从而导致结构的定义的结构。此结构通过实现本公开的实施例来推理并对结构采取措施,来促进下一节中所描述的机制。参考图9,在900示出了系统的具体说明性实施例。中央管理服务器(CMS)902向结构提供集中式管理点。CMS 902连接到中央管理储存库(CMR)904。结构中的数据库实例 (例如,Microsoft SQL Server)的托管实例连接到CMS 902,并将信息上传到CMR 904中。 CMS 902提供用于发现网络上的SQL服务实例、预设DAC、将DAC元素放在所希望的位置、对照准则检查DAC、以及协调结构中的元素之间的差异的动作。CMR 904包含结构的模型(例如,所有相关细节、关系,以及约束)。CMS 902是用于部署分析、影响分析,以及假设分析的中央推理点,并包含核心、详细的,以及链接的数据类型。两种类型基于从IMR(例如,IMR 910和914)复制到CMR 904的频度来利用类别表示CMR 904中所包含的数据。频繁被复制的数据被称为核心数据。不太频繁被复制的数据被称为详细数据。链接的数据类型充当指向不存储在CMR 904中的数据的索引或指针。中央管理数据仓库(CMDW)906实现跨一组物理计算机和实例集中式地报告历史性能统计数据。收集驻留在每一个托管SQL Server运行时实例上的数据,并将它们上传到 CMDff 906数据库的用于监视和报告目的的位置。中央结构服务(CFS)908为核心CMS 902动作提供API。这些动作包括发现网络上的SQL服务实例、预设DACjf DAC元素放在所希望的位置、对照准则检查DAC、以及协调结构中的元素之间的差异。实例管理储存库(IMR)是存在于每一个数据库实例内的数据库。例如,第一 IMR 910 存在于第一 Microsoft SQL Server 实例 912 内。第二 IMR 914 存在于第二 Microsoft SQL Server实例916内。IMR是结构的所有部署或修改的初始目标。被称为“集合组”的机制复制IMR信息,并将它上传到CMR 904,以提供结构的聚合层视图。实例管理数据仓库(IMDW)是存在于每一个数据库实例内的管理数据仓库。例如, 第一 IMDW 918存在于第一 Microsoft SQL Server实例912内。第二 IMDW 920存在于第二 Microsoft SQL Server实例916内。IMDW是实例和主计算机的性能数据(例如,报告和 /或监视)和配置数据的初始目标,其稍后被上传到CMDW 906中以提供服务器结构的聚合视图。实例结构服务器(IFS)为核心管理动作提供API。例如,第一 IFS 922存在于第一 Microsoft SQL Server 实例 912 内。第二 IFS 924 存在于第二 Microsoft SQL Server 实例916内。这些动作包括确认并在本地实例上安装DAC实例,发现安装漂移,并提供协调操作。IFS也可以测量实例和DAC的性能并执行从CMS 902发送的动作。参考图10,在1000,示出了端对端管理过程的说明性视图。本发明提供用于在从开发至部署到操作的完整软件生命周期中管理数据库应用程序的工具和基础结构。在本节中,对前一节中所描述的主要体系结构组件施加本发明的一些规范工作流,以便洞察核心设计原理。在1002,安装系统并配置结构。在1004,从现有部署中创建DAC并将其导入到结构中。在1006,监视并预测服务器结构利用率。基于监视和预测,可以调整结构资源。例如,在1008,管控结构资源。在1010,移动结构元素。参考图11,示出了安装过程的说明性示例。安装包由三个组件构成工具扩展、结构服务,以及管理储存库架构。工具扩展应用于Microsoft Visual Mudio或Microsoft SQL Server Management Mudio并且也可为附加工具扩展。结构服务和管理储存库架构被安装在中央管理服务器和托管实例内。在1102,获取安装包。在1104,安装工具扩展(例如,针对Microsoft Visual Mudio 和 Microsoft SQL Server Management Studio)。在 1106,安装和配置中央管理服务器(CMS)和中央结构服务(CFS)。在1108,安装中央管理储存库(CMR)和中央管理数据仓库(CMDW)架构。在1110,发现所有运行时实例,并发现将变为结构中的托管实例的实例。 在1112,在每一个托管实例内创建结构安装作业。在1114,在每一个托管实例中安装实例管理储存库(IMR)和实例管理数据仓库(IMDW)架构。在1116安装结构IMDW到CMDW数据上传机制并在1118启动该机制。参考图12,示出了从现有部署创建DAC并将其导入到结构中的说明性示例。DAC 是结构内的核心逻辑管理单元。结构管理DAC以确保最佳资源利用。通过创建新DAC项目来在 Microsoft Visual Studio 或者 Microsoft SQL Server Management studio 内创作 DAC0另外,可通过选定应用程序数据库对象来从先前的数据库部署逆向工程设计出新的 DAC。在1202,创建DAC。在1204,将实例对象添加到DAC。在1206,将实例设置和策略添加到DAC。在1208,将部署设置和策略添加到DAC。在1210,对照IMR确认DAC设置和策略。在1212,将DAC保存到IMR。在1214,将DAC从IMR复制到CMR。可任选地,在1216,创建DAC包二进制文件以供以后在Visual Studio中开发使用。参考图13,示出了监视和预测服务器结构利用的一个说明性示例。可以跨服务器结构和DAC设置和评估资源利用策略,以避免资源被过度利用和利用不足。在1302,在CMR中设置全局资源监视策略。在1304,将统计信息添加到IMDW。在 1306,在IMR中设置数据库资源监视策略。在1308,在IMDW中监视资源利用统计数据。或者,可以监视和预测其他性能健康统计数据(例如,诸如查询等DAC操作的等待时间统计数据)。在1310,将IMDW资源利用统计数据导出到CMDW。在1312,在CMDW中监视当前资源利用。在1314,在CMDW中监视预测资源利用。参考图14,示出了调整服务器结构资源的一个说明性示例。可以跨结构和DAC设置和评估资源分配策略,以平衡对DAC可用的资源。可以通过诸如就地资源管控之类的动作,以及诸如在卷之间移动文件或在服务器之间移动数据库应用程序之类的移动结构元素,来实现对资源的调整。就地资源管控的示例包括基于一个或多个资源管控规则来将 CPU、存储器或存储空间资源重新分配给数据库实例或DAC。可以通过实现新资源管控策略来调整结构资源。在1402,对于与目标DAC有关的DAC,预测资源平衡选项。在1404,在CMR中设置新资源策略。在1406,将新资源策略复制到每一个IMR。在1408,在每一个IMR中实现资源管控规则。参考图15,示出了调整结构资源的另一说明性示例。在图15中,示出了将DAC从一个文件移动到另一文件的过程。在1502,从CMR中获取DAC。在1504,预测潜在目标卷。在1506,将DAC映射到另一卷(卷2)。在1508,将DAC从CMR复制到IMR。在1510,在IMR中确认DAC。在1512,安装DAC (更改数据库,复制文件……)。在1514,在CMR中确认DAC。参考图16,示出了调整结构资源的另一说明性示例。在图16中,示出了将DAC从一个Microsoft SQL Server实例移动到另一实例的过程。在1602,从CMR中获取DAC。在1604,预测潜在目标实例。在1606,将DAC映射到运行时实例2。在1608,将DAC从CMR复制到实例2 IMR。在1610,在实例2 IMR中确认 DAC0在1612,将DAC安装到实例2 IMR中。在1614,在CMR中移动DAC端点名称。在1616, 在CMR中确认DAC。这里所描述的实施例的说明旨在提供对各实施例的结构的一般理解。说明不旨在作为利用这里所描述的结构或方法的装置和系统的所有元件和特征的完整描述。许多其他实施例对本领域的技术人员在审阅本发明后是显而易见的。也可以利用其他实施例,并从本发明派生出其他实施例,以便可以在不偏离本发明的范围的情况下作出结构和逻辑上的替换和改变。相应地,本发明和附图应被视为说明性的,而不是限制性的。本领域技术人员将进一步理解,结合这里所说明的实施例所描述的各种说明性逻辑块、配置、模块、电路、以及算法步骤,可以作为电子硬件、计算机软件或两者的组合来实现。为清楚地示出硬件或软件的此互换性,上文已经一般地在功能方面描述了各种说明性组件、块、配置、模块、电路,以及步骤。此类功能集是被实现为硬件还是软件取决于具体应用和强加于整体系统的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能集,但此类设计决策不应被解释为致使脱离本公开的范围。结合此处所公开的各实施例所描述的方法的各个步骤可直接用硬件、由处理器执行的软件模块、或两者的组合来实现。软件模块可驻留在诸如随机存取存储器(RAM)、闪存、 只读存储器(ROM)、寄存器、硬盘、可移动盘、⑶-ROM、或本领域内已知的任何其他形式的存储介质等计算机可读介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读取/写入信息。在替换方案中,存储介质可以集成到处理器中,或者处理器和存储介质可以作为分立的元件驻留在计算设备或计算机系统中。虽然这里显示和描述了具体的实施例,但是,应该了解,被设计为实现相同或类似的目的的任何随后的安排都可以代替所示出的具体实施例。本说明书计划涵盖各种实施例的任何随后的修改或变化。提交本发明的摘要的同时要明白,将不用它来解释或限制权利要求的范围或含义。此外,在前面的具体实施方式
中,出于将本公开连成一个整体的目的,各种特征可以组合到一起,或在一个实施例中进行描述。本发明不应被解释为反映带权利要求的实施例需要比每一个权利要求中明确地记载的特征更多的特点的意图。相反,如下面的权利要求所反映的,本发明的主题可以涉及少于所公开的实施例中的任一个的所有特征。
提供上文对所公开的实施例的描述,以使本领域技术人员能作出或使用所公开的实施例。对这些实施例的各种修改对于本领域技术人员将是显而易见的,并且本文中定义的普适原理可被应用于其他实施例而不会脱离本公开的范围。因此,本发明并不旨在限于此处所示出的各实施例,而是按照与所附权利要求书所定义的原理和新颖特征相一致的尽可能最宽的范围。
权利要求
1.一种系统,包括结构(501),其标识数据层应用程序组件(502)的集合,所述数据层应用程序组件中的每一个都包括数据库元素(510、512、514)的集合的逻辑表示;主存所述数据层应用程序组件(502)的集合的数据库运行时资源(516)的集合;以及所述数据库运行时资源的集合用来主存所述数据层应用程序组件(502)的集合的计算资源(524);以及接收结构策略的管理点(602),其中所述结构策略中的一个或多个动作自动地应用于由所述结构(501)标识的受影响的实体,以使一个或多个结构元素符合所述结构策略。
2.如权利要求1所述的系统,其特征在于,所述一个或多个动作包括当文件系统增长或被预测达到资源限制时,自动将所述文件系统上的一个或多个文件移至另一操作系统卷上的第二文件系统;当处理器正在经历高负载时,自动将软件应用程序自动地移至具有较低处理器负载的另一计算机;以及根据测得的服务质量度量来自动地执行一个或多个动作以维护性能。
3.如权利要求1所述的系统,其特征在于,所述计算资源包括一个或多个计算机资源, 一个或多个计算机数据存储资源,或一个或多个虚拟机资源。
4.如权利要求3所述的系统,其特征在于,所述一个或多个计算机资源中的每一个都包括处理器、存储器或网络元件,并且其中所述一个或多个计算机数据存储资源中的至少一个是包括多个文件的操作系统卷,并且其中所述一个或多个计算机服务器资源中的至少一个最初被映射到第一存储区域网络并且随后被映射到第二存储区域网络。
5.如权利要求1所述的系统,其特征在于,所述数据层应用程序组件中的每一个都通过结构的数据层应用程序组件层来表示,所述计算资源中的每一个都通过所述结构的硬件资源层来表示,所述数据库运行时资源中的每一个都通过所述结构的运行时环境层来表示。
6.如权利要求1所述的系统,其特征在于,所述数据层应用程序组件中的每一个都被映射到所述数据库运行时资源中的一个,并且其中每一数据库运行时资源都被映射到一个或多个物理计算资源。
7.如权利要求6所述的系统,其特征在于,所述数据库运行时资源中的一个从第一计算机重新映射到第二计算机。
8.如权利要求6所述的系统,其特征在于,所述数据库运行时资源中的一个从第一操作系统卷重新映射到第二操作系统卷。
9.如权利要求1所述的系统,其特征在于,所述结构策略的所述一个或多个动作包括以下各项中的一个或多个根据第一资源管控规则来将一个或多个资源的子集分配给特定应用程序、根据第二资源管控规则来重新分配第一计算机系统的硬件资源、以及根据第三资源管控规则来将软件应用程序以及与所述软件应用程序相关联的文件移动到第二计算机系统。
10.一种自动地应用结构策略的方法,所述方法包括在服务器结构(501)的管理点(602)处接收(702)结构策略,所述服务器结构(501)标识数据层应用程序组件(502),所述数据层应用程序组件(502)中的每一个都包括数据库元素集合的逻辑表示;主存所述数据层应用程序组件(502)的集合的数据库运行时资源(516);以及所述数据库运行时资源(516)用来主存所述数据层应用程序组件(502)的计算资源 (524);监视(704)所述服务器结构(501)的实体;以及自动将所述结构策略的一个或多个动作应用于由所述服务器结构(501)标识的受影响的实体,以使得与所述服务器结构(501)相关联的元素符合所述结构策略。
11.如权利要求10所述的方法,其特征在于,自动地应用所述结构策略的所述一个或多个动作包括检索所述结构策略,针对目标集合评估所述结构策略,生成一个或多个对应的动作以强制实施所述结构策略,以及对所述目标集合执行所述对应的动作。
12.如权利要求10所述的方法,其特征在于,所述结构策略被用来确定所述结构元素中的每一个的健康状态。
13.如权利要求10所述的方法,其特征在于,还包括提供策略定义、策略强制实施、服务器结构对象部署,以及对服务器结构层的监视。
14.如权利要求10所述的方法,其特征在于,所述结构策略是被定义为引导行为或动作的权威性原理,并且其中所述结构策略指定可以应用于由所述服务器结构标识的实体集的条件集。
15.如权利要求14所述的方法,其特征在于,所述实体集包括一个或多个数据库运行时实例,并且所述结构策略限制将所述一个或多个数据库运行时实例结合到所述结构中。
全文摘要
公开了用于管理数据库应用程序的系统和方法。一种系统包括标识数据层应用程序组件集合的结构。数据层应用程序组件中的每一个都包括数据库元素集合的逻辑表示。该结构标识主存该数据层应用程序组件集合的数据库运行时资源集合,并且该结构标识该数据库运行时资源集合用来主存数据层应用程序组件集合的计算资源。该系统还包括用于接收结构策略的管理点。该结构策略的一个或多个动作自动地应用于由该结构标识的受影响的实体,以使结构元素符合结构策略。
文档编号G06F17/00GK102171694SQ200980139746
公开日2011年8月31日 申请日期2009年9月15日 优先权日2008年9月30日
发明者J·M·奥斯雷克, J·冯, K·范海宁, M·霍林斯沃思, P·瑟沙德瑞, S·比切 申请人:微软公司

最新回复(0)