数据层应用程序组件的制作方法

xiaoxiao2020-7-22  9

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

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

最新回复(0)