数据库服务器系统的存储层的制作方法

xiaoxiao2020-7-22  5

专利名称:数据库服务器系统的存储层的制作方法
数据库服务器系统的存储层背景数据库服务器是被配置成向通常被称为“客户机”的计算机程序或计算机提供数据库服务。这样的数据库服务可包括,例如,将数据存储在数据库中,从数据库检索数据,修改存储在数据库中的数据,或执行与对存储在数据库中的数据的管理和利用有关的其他服务。为执行这些功能,数据库服务器可以被配置成对存储在数据库中的数据执行诸如搜索、 排序,以及索引之类的功能。这样的服务器提供良好性能、高可用性,以及可缩放性是符合数据库服务器的管理员和用户的利益的。另外,这样的服务器应该提供使用、管理和管理的简便性。概述提供本概述是为了以精简的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。此处描述了用于跨多个数据存储设备存储来自数据库的数据的方法,其中每一数据存储设备只能够被一组互连的计算机系统中的对应的计算机系统访问。根据该方法,接收数据库的标识符。还接收存储层(storage tier)实例的标识符,其中该存储层实例包括每一个数据存储设备内的一个或多个存储位置的逻辑表示。响应于接收到数据库的标识符和存储层实例的标识符,将来自数据库的数据存储由存储层实例逻辑表示的存储位置中的两个或更多个中,其中在其中存储数据的两个或更多个存储位置中的每一个在数据存储设备中的对应的一个内。此处还描述了一种系统。该系统包括多个互连的计算机系统和多个数据存储设备。数据存储设备中的每一个连接到互连的计算机系统中的对应的一个,并只可被其访问。 该系统还包括在互连的计算机系统中的至少一个上执行的计算机程序逻辑。计算机程序逻辑包括命令处理器和数据虚拟化管理器。命令处理器被配置成接收数据库的标识符,并接收存储层实例的标识符,其中存储层实例包括每一个数据存储设备内的一个或多个存储位置的逻辑表示。数据虚拟化管理器被配置成响应于命令处理器接收到数据库的标识符和存储层实例的标识符,将来自数据库的数据存储在在由存储层实例逻辑表示的存储位置中的两个或更多个中,其中在其中存储数据的两个或更多个存储位置中的每一个在数据存储设备中的对应的一个内。此处还描述了一种计算机程序产品。该计算机程序产品包括在其上记录有用于允许处理单元跨多个数据存储设备存储来自数据库的数据的计算机程序逻辑的计算机可读介质,其中每一数据存储设备只能够被一组互连的计算机系统中的对应的计算机系统访问。计算机程序逻辑包括第一装置、第二装置和第三装置。第一装置用于使得处理单元能接收数据库的标识符。第二装置用于使得处理单元能接收存储层实例的标识符,其中存储层实例包括每一个数据存储设备内的一个或多个存储位置的逻辑表示。第三装置用于使得处理器响应于能接收到数据库的标识符和存储层实例的标识符,将来自数据库的数据存储在由存储层实例逻辑表示的存储位置中的两个或更多个中,其中在其中存储数据的两个或更多个存储位置中的每一个在数据存储设备中的对应的一个内。下面将参考各个附图,详细描述本发明的进一步特点和优点,以及本发明的各实施例的结构和操作。值得注意的是,本发明不仅限于此处所描述的特定实施例。这样的实施例只是出于例示的目的。基于此处所包含的原理,另外的实施例对那些相关领域技术人员是显而易见的。附图简述结合到本说明书并构成本说明书的一部分的附图示出了本发明,且与描述一起, 进一步用于说明本发明的原理,并允许那些精通相关技术人员实施和使用本发明。

图1是其中可以实现本发明的实施例的示例数据库系统的框图。图2是一数据库系统的框图,其中在单个计算机系统上安装并执行包括数据库服务器的实例和群集基础结构逻辑的对应的实例的砖(brick)。图3是其中在同一个计算机系统上安装并执行两个或更多砖的数据库系统的框图。图4是包括多个存储位置的数据存储设备的框图。图5是示出了群集基础结构逻辑的代表性实例的框图。图6是示出了可以被包括在群集基础结构逻辑的实例内的一个或多个管理器的框图。图7是示出了被包括在群集基础结构逻辑的实例内的多个代理的框图。图8是示出了一个表和从其中导出的分区之间的关系的示图。图9是示出了一个分区和从其中导出的段之间的关系的示图。图10是一数据库系统的框图,该数据库系统包括段的物理表示的克隆(clone)跨与不同的计算机系统相关联的数据存储设备分布。图11是描绘了可能涉及执行涉及存储层实例的创建、更改或丢弃的功能的实体的框图。图12描绘了可以用来创建存储层的示例方法的流程图。图13描绘了可以用来更改现有存储层实例以将一个或多个新存储位置与存储层实例相关联的示例方法的流程图。图14描绘了可以用来更改现有存储层实例以将一个或多个新存储位置与存储层实例解除关联的示例方法的流程图。图15描绘了可以用来丢弃现有存储层实例的示例方法的流程图。图16是描绘了在执行与将数据库指派到存储层实例以及据此存储来自数据库的数据有关的功能时可能涉及的实体的框图。图17描绘了可以用来将数据库与存储层实例相关联并可以据此存储来自数据库的数据的方法的流程图。图18描绘了可以被用来实现本发明的各个方面的示例基于处理器的计算机系统。通过下面的结合附图对本发明进行的详细说明,本发明的特点和优点将变得更加显而易见,在附图形中,类似的附图标记在整个说明书中标识对应的元素。在附图中,相同的附图标记一般指示相同的、功能上类似的和/或在结构上类似的元素。元素首先在其中出现的附图由对应的附图标记中最左边的数字来指示。详细描述A.示例操作环境图1是其中可以实现本发明的实施例的示例数据库系统100的框图。如图1所示,系统100包括多个砖,标示为砖10 ,10 ,10 ,…,102n,其中η指示系统100中砖的总数。每个砖包括数据库服务器112的实例以及与其通信地耦合的群集基础结构逻辑114 的实例。具体而言,砖10 包括数据库服务器11 的实例以及与其通信地耦合的群集基础结构逻辑IH1的实例,砖10 包括数据库服务器11 的实例以及与其通信地耦合的群集基础结构逻辑1142的实例,等等。虽然系统100被示为包括三个以上的砖,但是,可以理解, 系统100也可以包括仅两个砖或仅三个砖。如在图1中进一步示出的,每一砖102^10 通过通信基础结构104连接到每一个其他砖102^104。每一数据库服务器实例IU1-IUn包括被配置成向此处被称为“客户机”的其他计算机程序或计算机提供数据库服务的计算机程序的实例。这样的数据库服务可包括,例如, 将数据存储在数据库中,从数据库检索数据,修改存储在数据库中的数据,或执行与对存储在数据库中的数据的管理和利用有关的其他服务。为执行这些功能,每一数据库服务器实例IU1-IUn可以被配置成对存储在数据库中的数据执行诸如搜索、排序,以及索引之类的功能。在一个实施例中,数据库服务器114-11 的每一实例包括由华盛顿州雷德蒙市的微软公司发布的Microsoft SQL Server 的一个版本,虽然本发明没有这样的限制。群集基础结构逻辑IH1-IHn的每一实例包括计算机程序逻辑,该计算机程序逻辑被配置成允许多个数据库服务器实例112「l^n作为单个逻辑数据库系统一起操作,以便向与数据库服务器实例IU1-IUn进行交互的每一用户/客户机呈现单个系统映像。群集基础结构逻辑IH1-IHn的每一实例还被配置成允许与单个数据库相关联的数据被多个数据库服务器实例112^11 同时存储、检索、修改或以其他方式处理。在数据库系统100的一种实现中,图1中所示的数据库服务器实例IU1-IUn和对应的群集基础结构实例IH1-IHn的每一组合被安装在基于对应的处理器的计算机系统上,并在其上执行,以执行如前所述的功能以及其他功能。在本文中的别处参考图18描述了一个这样的基于处理器的计算机系统的示例。例如,图2是数据库系统100的一种实现的框图,其中在基于单个处理器的计算机系统202上安装和执行包括数据库服务器实例11 和群集基础结构逻辑实例IH1的砖 10&。如图2所示,计算机系统202连接到通信基础结构104,并连接到一个或多个数据存储设备204。在一种实现中,数据存储设备204只能被计算机系统202访问。在这样的实现中,由数据库系统100的上下文内的数据库服务器实例11 存储、检索、修改或以其他方式处理的任何数据库数据将被存储在附连到计算机系统202的数据存储设备204上。数据存储设备204可包括任何类型的直接附连存储器(DAQ设备,包括,但不仅限于硬盘驱动器、光驱动器,或可以通过诸如串行高级技术附连(SATA)接口、小型计算机系统接口(SCSI)、串行附连SCSI (SAQ接口或光纤通道接口之类的标准接口直接地附连到计算机系统202的其他类型的驱动器。数据存储设备204也可以包括可通过存储区域网络 (SAN)或任何形式的网络附连存储器(NAS)访问的任何类型的数据存储设备。在数据库系统100的替换实现中,可以在基于相同处理器的计算机系统上安装和执行两个或更多砖。在图3中示出了这样的实现的框图。如图3所示,在基于单个处理器的计算机系统302上安装和执行多个砖102^102^每一个砖包括对应的数据库服务器实例和群集基础结构逻辑实例。安装在计算机系统302上的砖的数量——标示为m,优选地小于数据库系统100中砖的总数——表示为η。如在图3中进一步示出的,计算机系统302连接到通信基础结构104,并连接到一个或多个数据存储设备304。在一种实现中,数据存储设备304只能被计算机系统302访问。在这样的实现中,由数据库系统100的上下文内的数据库服务器实例IU1-IUm存储、检索、修改或以其他方式处理的任何数据库数据将被存储在附连到计算机系统302的数据存储设备304上。存储在数据存储设备304上的数据库数据在102^10 之间不被共享。相反地,每一砖都具有其自己的对应的数据存储——在图3 中标示为数据存储306^30(^例如,如果数据库数据被存储在数据存储设备304内的文件中,则每一文件对于砖102^10 中的一个而言是独占的。作为另一个示例,如果数据库数据以原始存储格式来存储,则数据存储设备304内的物理盘对于砖102^10 中的对应的一个而言是独占的。在图1-3中,通信基础结构104旨在表示能够将数据从一个计算机系统携带到另一计算机系统的任何通信基础结构。例如,在一种实现中,通信基础结构104包括使用吉比特以太网技术、InfiniBand 技术等等来实现的高速局域网(LAN)。然而,这些示例不旨在进行限制,而是可以使用其他通信基础结构。图4是数据存储设备400的框图,其可以表示如上文参考图2所讨论的数据存储设备204中的任一个,或如上文参考图3所讨论的数据存储设备304中的任一个。如图4 所示,数据存储设备400包括多个存储位置40 ,4022,…,402it)每一这样的存储位置可以包括,例如,可由与数据存储设备400所附连到的计算机系统相关联的文件系统标识和访问的卷。每一这样的存储位置也可以包括包含一个或多个卷的存储器的逻辑单元。每一这样的逻辑单元可以使用逻辑单元号(LUN)来标识。图5是更详细地示出了多个群集基础结构逻辑实例IH1-IHn的单个代表性实例 114的框图。如图5所示,群集基础结构逻辑IH1-IHn的每一实例包括多个代理502,并任选地包括一个或多个管理器504。管理器504中的每一个被配置成控制允许多个数据库服务器实例IU1-IUn作为单个逻辑数据库系统一起操作所需的某些功能的性能,并允许与单个数据库相关联的数据被多个数据库服务器实例IU1-IUn同时存储、检索、修改或以其他方式处理。如图6所示, 管理器504可包括配置管理器602、数据虚拟化管理器604、全局死锁管理器606和事务协调管理器608中的一个或多个。配置管理器602是关键群集管理器,并协调诸如对其他管理器和代理进的启动和关闭、对群集的重配置等等关键活动。数据虚拟化管理器604负责数据虚拟化。它关于应该将所有用户数据放置在哪里,以及应该将与这样的用户数据相关联的元数据放在哪里作出决定。出于达成可缩放性和避免瓶颈的目的,数据虚拟化管理器604还负责负载平衡。数据虚拟化管理器604实现用于以可缩放性换取数据的可用性和对齐的策略。在数据库系统100的一种实现中,如前所述的管理器类型中的每一个的实例只包括在群集基础结构逻辑IH1-IHn的η个实例的子集内。因此,例如,在其中η大于2的实现中,数据虚拟化管理器604的实例可以被只包括在群集基础结构逻辑IH1-IHn的2个实例内。这用以节省资源,而且可以在万一当前正在执行的管理器发生故障的情况下有某一冗余度。每一管理器类型只有一个实例被允许在任何给定时间作出决策。每一管理器都被配置成通过向位于群集基础结构逻辑IH1-IHn的每一实例内的代理的对应的实例发送命令并从其接收信息来执行其指定功能。如图7所示,这些代理504包括配置管理器代理 702、数据虚拟化管理器代理704、全局死锁管理器代理706和事务协调管理器代理708。数据库系统100部分地通过提供在多个不同的计算机系统上执行的多个数据库服务器实例IU1-IUn来实现高可用性,每一个数据库服务器实例可以被用来访问单个逻辑数据库。如果数据库服务器实例或它在其上执行的计算机系统发生故障,则可以使用在不同的计算机系统上执行的一个或多个其他数据库服务器实例来获取数据库服务。数据库系统100通过以下操作来实现增强的性能跨与在其上执行砖102^10 的不同计算机系统相关联的多个数据存储设备存储来自数据库的数据,以使得与处理这样的数据相关联的工作负荷可以跨多个计算机系统地分布。数据库系统100通过跨这样的数据存储设备存储相同数据库数据的副本来进一步实现高可用性,以使得如果一个计算机系统和/或与其相关联的数据存储设备发生故障,则可以通过不同的计算机系统和相关联的数据存储设备来访问相同数据的替换性副本。现在将参考图8-10例示这些概念。具体而言,图8描绘了数据库中包括诸如示例性行812之类的一系列行的表802。 每一数据库服务器实例IU1-IUn被配置成向用户提供用于创建这样的表的能力,以及此外用于分割这样的表以产生被叫做分区的行的组。例如,如图8中所进一步示出的,表802 可以被分割成第一分区804和第二分区806。数据虚拟化管理器604被配置成将每一分区进一步分割成被叫做“段”的较小的行的组。例如,如图9所示,第一分区804可以被分割成第一段902,第二段904和第三段 906。段是逻辑实体。段的物理表示被称为克隆。数据虚拟化管理器604进一步被配置成跨与不同的计算机系统相关联的数据存储设备分布克隆,以改善性能和提供高可用性。数据虚拟化管理器604可以基于冗余因子来确定要创建和跨数据存储设备分布的克隆的数量。可以由系统管理员或用户取决于实现来设置冗余因子。例如,图10是被表示为数据库系统1000的数据库系统100的一个实现的框图,其中,克隆跨与不同的计算机系统相关联的数据存储设备分布。如图10所示,执行砖1014的计算机系统1010连接到数据存储设备1012,执行砖IOM的计算机系统1020连接到数据存储设备1022,而执行砖1034的计算机系统1030连接到数据存储设备1032。计算机系统经由通信基础结构1004连接。假设图9的第一段902在物理上被表示为克隆1002^100 和10023,图9的第二段904在物理上被表示为克隆1004^1004和10043,而图9的第三段 906在物理上被表示为克隆Iooe1Uooe2和10063。如图10所示,数据虚拟化管理器604将与每一段相关联的一个克隆分别分布到数据存储设备1012、1022和1032中的每一个。例如,克隆100 被存储在数据存储设备1012 内,克隆100 被存储在数据存储设备1022内,而克隆100 被存储在数据存储设备1032 内。结果,与对构成第一分区804的所有三个段902、904和906操作的任何过程相关联的工作负荷可以容易地跨计算机系统1010、1020、1030分布,因为每一计算机系统都具有对
9必要的数据的本地访问,以便执行过程。此外,如果计算机系统1010、1020、1030中的任一个或其相关联的数据存储设备万一发生故障,则由段902、904和906逻辑表示的数据仍可经由其他计算机系统和相关联数据存储设备中的任一个来访问。数据库系统1000的体系结构可以被称为“不共享任何东西”体系结构,因为系统 1000内的每一计算机系统不与其他计算机系统中的任一个计算机系统共享任何共用资源来访问和处理必需的数据库数据。体系结构有利地通过添加新计算机系统和数据存储设备来方便地横向扩展。B.存储层某些常规数据库服务器要求用户指定与特定数据库相关联的数据将被存储在哪里的物理位置。存储指定可包括,例如,一个或多个数据库文件。作为数据库创建过程的一部分,用户可能需要指定物理存储位置。如前面的章节所描述的将这样的一个方案延伸到数据库系统100会造成许多问题。例如,如果数据库的创建者需要指定与数据库相关联的数据将如何存储在与在其上执行砖102^10211的计算机系统相关联的各种数据存储设备中,则数据库系统100的单个系统镜像宗旨将被违犯。此外,如果数据库系统100被纵向扩展以包括更大数量的计算机系统和更大数量的相关联数据存储设备,则与跨所有数据存储设备指定存储位置相关联的复杂性同等地增大。另外,如上文所示的,与数据库系统100相关联的目标是高可用性。这在数据库系统100中部分地通过跨与多个不同的计算机系统相关联的多个不同的数据存储设备协调地创建和存储相同的数据库数据的多个表示来实现。这种创建和存储方案允许无缝地处理诸如砖的故障之类的问题。允许用户指定与数据库相关联的数据将被存储在哪里的准确物理位置可以阻碍或禁用这样的自动化创建和存储功能。更进一步,在其中用户需要指定与数据库相关联的数据将被存储在哪里的物理位置的数据库系统中,用户可能需要处理当与单个数据库相关联的多个文件被存储在不同的物理位置时出现的文件名激增(proliferation)的问题。本发明的一个实施例通过提供全系统范围的逻辑存储容器(被称为存储层)来解决前述问题中的每一个问题。每一存储层都逻辑地表示一个或多个存储位置。由存储层逻辑表示的存储位置可以存在在多个不同的数据存储设备内,其中多个不同的数据存储设备中的每一个只能够被一组互连的计算机系统中的对应的计算机系统来访问。使用存储层有利地使得诸如数据库系统100之类的系统能向作为数据库系统100的一部分的每一砖上的用户呈现单个系统映像。通过提供存储层,本发明的一个实施例为存储器提供可以由用户直接地处理的单个系统抽象。因此,用户不必顾虑细粒度细节和与跨大量的数据存储设备存储数据相关联的复杂性。这样的单个系统抽象给用户提供在处理数据库系统范围内的存储要求时使用、 经营、和管理的简便性。此外,与存储层合作时涉及的复杂性有利地保持恒定,而不管数据库系统的大小如何。使用存储层还允许诸如数据虚拟化管理器604之类的软件实体负责跨多个不同的数据存储设备创建和存储数据库数据。结果,用户不必顾虑指定与数据库相关联的数据
10将被存储在哪里的准确物理位置。用户也不用担心关于文件名扩散问题,因为,在一个实施例中,文件被系统软件实体自动地命名。1.数据库文件和文件组为提供对存储层的属性和使用的更好理解,现在将描述可以与根据本发明的一实施例的存储层相关联的各种类别的数据库数据。此描述与数据库系统100的一个实施例特别相关,其中,数据库服务器IU1-IUn的每一实例都包括由美国华盛顿州雷德蒙市的微软公司发布的Microsoft SQL Server 的一个版本。然而,本发明不仅限于这样的实施例。数据库系统100中的数据库可以具有三种类型的文件主数据文件、辅助数据文件和日志文件。主数据文件是数据库的起始点,并指向数据库中的其他文件。每一数据库具有一个主文件。对于主数据文件的推荐的文件名扩展是.mdf。辅助数据文件构成除主数据文件以外的与数据库相关联的所有数据文件。某些数据库可以不具有任何辅助数据文件,而其他数据库具有若干个辅助数据文件。对于辅助数据文件的推荐的文件名扩展是.ndf。日志文件保留被用来恢复数据库的所有日志信息。对于每一个数据库,必须有至少一个日志文件,虽然可以有一个以上的日志文件。对于日志文件的推荐的文件名扩展是· Idf0在数据库系统100中,可以将数据库对象和文件编组在文件组中,以便用于分配和管理的目的。有两种类型的文件组主文件组和用户定义文件组。与数据库相关联的主文件组包含主数据文件和未被专门指派给另一文件组的任何其他文件。系统表(下面将讨论)的所有页面被分配在主文件组中。用户定义文件组是通过在CREATE DATABASE (创建数据库)或ALTER DATABASE (更改数据库)语句中使用FILEGR0UP (文件组)关键字来指定的任何文件组。日志文件决不会是文件组的一部分。日志空间被与数据空间分开地管理。没有文件可以是一个以上的文件组的成员。表、索引,以及大型对象数据可以与指定的文件组相关联。在此情况下,所有页面都将被分配在该文件组中,或者,表和索引都可以被分区。经分区的表和索引的数据被划分成若干个单元,其中每一个单元可以被置于数据库中的单独文件组中。每一数据库中的一个文件组被指定为默认文件组。当创建表或索引而不指定文件组时,假设所有页面将从默认文件组分配。一次只有一个文件组可以是默认文件组。db_ owner(数据库_所有者)固定数据库角色的成员可以将默认文件组从一个文件组切换到另一文件组。如果没有指定默认文件组,则主文件组是默认文件组。与数据库系统100相关联的系统元数据可以被存储在数个系统数据库中,其中每一个系统数据库具有数个前述文件类型。例如,系统元数据可包括master数据库和模型数据库,其中每一个都包括数据和日志文件。系统表中有三种元数据配置管理器、事务协调管理器和数据虚拟化管理器的逻辑元数据、物理元数据和持久状态/元数据。逻辑元数据是被复制或在物理上被保存到与数据库系统100中的每一个砖相关联的数据存储设备的数据。一个叫做“元数据管理器”的软件实体被配置成执行此功能。物理元数据描述存储在只能被特定砖在其上执行的计算机系统访问的数据存储设备上的元数据。没有被复制的副本,且系统表被建模为在每一数据库段上具有单独的数据段。如此,这些表的内容是相对于每一砖本地存储的所有物理元数据的并。根据预定义的算法将配置管理器/事务协调管理器/数据虚拟化管理器元数据复制到与某些砖相关联的数据存储设备。从元数据管理器观点来看,此元数据被视为“物理元数据”。2.存储层的属性在下表1中提供了根据本发明的一个实施例的对存储层的每一实例通用的属性的描述。将描述的一些属性与数据库系统100的一个实施例特别相关,其中, 数据库服务器IU1-IUn的每一实例包括由华盛顿州雷德蒙市的微软公司发布的 Microsoft SQL Server 的一个版本,虽然存储层的用途不仅限于这样的实施例。
属性值备注storage—tier_id (存储_层_1(1)[l,k],其中,k是4 字节整数值。系统生成的值。不可改变的属性。在给定数据库系统上是唯一的。名称遵循对象命名约定的任何名称。由系统为默认实例提供的。用户为附加实例提供的名称。可使用 ALTER STORAGE TIER (更改存储层)命令来更新。在给定数据库系统上是唯一的。类型{system_data (M 统_数据、,system Jog 、系统_日志), temp—data (临时_数据),temp_log (临时_ 日志),data、数据、,log 、曰志、}在实例创建期间设置。随后无法被修改。is_de fault (为 _ 默认)布尔在数据库系统中总有一个并且正好一个给定存储层类型的默认实例。storage_pool (存储j也)存储器规范集合可使用 ALTER STORAGE TIER命令来更新。表1 存储层的描述如表1所示,存储层实例的属性被标记为storagejierjd、名称、类型、is_ default和storage_pool。storage_tiie_id属性包括由数据库系统100内的软件实体生成的唯一地标识数据库系统100内的每一砖的单个存储层实例的不可改变的值。
12
名称属性包括与数据库系统100内的每一砖的存储层实例唯一地相关联的名称。 名称可能需要遵循与数据库服务器实例IU1-IUn相关联的对象命名约定,诸如结构化查询语言(SQL)对象命名约定。在数据库系统100的一种实现中,系统为每一种类型的存储层提供默认存储层实例。在这样的实现中,由数据库系统100提供与默认存储层实例相关联的名称,而相比之下,所有用户创建的存储层实例都由用户命名。在一个实施例中,用于命名存储层的命名空间是平坦非分层命名空间。如表1所指出的,可以使用ALTER STORAGE TIER命令来更新与存储层实例相关联的名称,如此处比较详细地描述的。存储层的每一实例具有在存储层实例的创建期间设置的类型属性。一旦设置,就无法修改指派给存储层实例的类型。存储层类型包括,但不仅限于,system_data, system, log、temp_data、temp_log、data和log。下面将更详细地描述这些存储层类型。属性iS_default指定存储层实例是否是存储层的默认实例。在一个实施例中,给定存储层类型只有一个默认实例。属性St0rage_p00l标识与存储层实例相关联的一个或多个存储规范。在下表2中描述了根据本发明的一个实施例的存储规范的示例。如表2所示,与存储规范实例相关联的属性包括 storage_tier_id (存储 _ 层 _id)、storage_spec_id (存储 _ 空间 _id)、brick_ id (砖」d)和路径。
权利要求
1.一种用于跨多个数据存储设备存储来自数据库的数据的方法,其中每一数据存储设备都只能够被一组互连的计算机系统中的对应的计算机系统访问,所述方法包括接收所述数据库的标识符(1702);接收存储层实例的标识符,其中所述存储层实例包括所述数据存储设备的每一个内的一个或多个存储位置的逻辑表示(1704);以及响应于接收到所述数据库的所述标识符和所述存储层实例的所述标识符,将来自所述数据库的数据存储在由所述存储层实例逻辑表示的所述存储位置中的两个或更多个中,其中在其中存储数据的所述两个或更多个存储位置中的每一个在所述数据存储设备中的对应的一个内(1706)。
2.如权利要求1所述的方法,其特征在于,将来自所述数据库的数据存储在由所述存储层实例逻辑表示的所述存储位置中的两个或更多个中包括将来自所述数据库的数据的相同段的副本存储在所述两个或更多个存储位置里的每一个中。
3.如权利要求1所述的方法,其特征在于,还包括创建所述存储层实例,其特征在于, 创建所述存储层实例包括接收所述存储层实例的所述标识符;接收所述数据存储设备中的每一个内的所述一个或多个存储位置中的每一个的标识符;以及响应于接收到所述存储层实例的所述标识符以及所述数据存储设备中的每一个内的所述一个或多个存储位置中的每一个的所述标识符,将所述存储层实例与所述数据存储设备中的每一个内的所述一个或多个存储位置进行关联。
4.如权利要求1所述的方法,其特征在于,还包括更改所述存储层实例,其特征在于, 更改所述存储层实例包括接收所述存储层实例的所述标识符;接收所述数据存储设备中的至少一个内未由所述存储层实例逻辑表示的至少一个存储位置的标识符;以及响应于接收到所述存储层实例的所述标识符和未由所述存储层实例逻辑表示的所述至少一个存储位置的所述标识符,将所述至少一个存储区与所述存储层实例进行关联,以使得所述存储层实例逻辑地表示所述至少一个存储区。
5.如权利要求4所述的方法,其特征在于,还包括响应于所述更改存储层实例,将来自所述数据库的数据存储在所述至少一个存储位置。
6.如权利要求1所述的方法,其特征在于,还包括更改所述存储层实例,其特征在于, 更改所述存储层实例包括接收所述存储层实例的所述标识符;接收由所述存储层实例逻辑表示的至少一个存储位置的标识符;响应于接收到所述存储层实例的所述标识符以及由所述存储层实例逻辑表示的所述至少一个存储位置的所述标识符,将所述至少一个存储位置与所述存储层实例解除关联, 以使得所述存储层实例不再逻辑地表示所述至少一个存储位置。
7.如权利要求6所述的方法,其特征在于,还包括响应于所述更改存储层实例,从所述至少一个存储位置移除来自所述数据库的数据。
8.一种包括其中存储有控制逻辑的计算机可读介质的计算机程序产品,所述控制逻辑包括被安排成执行如权利要求1-7中的任一项所述的方法步骤的计算机可读取程序装置。
9.一种系统,包括多个互连的计算机系统O02);多个数据存储设备O04),所述数据存储设备中的每一个被连接到所述互连的计算机系统中的对应的一个002),并且只能被其访问;以及在所述互连的计算机系统中的至少一个上执行的计算机程序逻辑,所述计算机程序逻辑包括被配置成接收数据库的标识符并接收存储层实例的标识符的命令处理器(1112),其中所述存储层实例包括所述数据存储设备O04)的每一个内的一个或多个存储位置(1604) 的逻辑表示;以及数据虚拟化管理器(1612),所述数据虚拟化管理器(161 被配置成响应于由所述命令处理器(111 接收到所述数据库的所述标识符和所述存储层实例的所述标识符,将来自所述数据库的数据存储在由所述存储层实例逻辑表示的所述存储位置(1604)中的两个或更多个中,其中在其中存储数据的所述两个或更多存储位置(1604)中的每一个在所述数据存储设备O04)中的对应的一个内。
10.如权利要求9所述的系统,其特征在于,所述命令处理器进一步被配置成接收所述存储层实例的所述标识符,接收所述数据存储设备中的每一个内的所述一个或更多个存储位置中的每一个的标识符,以及响应于接收到所述存储层实例的所述标识符和所述数据存储设备中的每一个内的所述一个或多个存储位置中的每一个的所述标识符,将所述存储层实例与所述数据存储设备中的每一个内的所述一个或多个存储位置进行关联。
11.如权利要求9所述的系统,其特征在于,所述命令处理器进一步被配置成接收所述存储层实例的所述标识符,接收所述数据存储设备中的至少一个内未由所述存储层实例逻辑表示的至少一个存储位置的标识符,以及将所述至少一个存储位置与所述存储层实例进行关联,以使得响应于接收到所述存储层实例的所述标识符和未由所述存储层实例逻辑表示的所述至少一个存储位置的所述标识符,所述存储层实例逻辑地表示所述至少一个存储位置。
12.如权利要求11所述的系统,其特征在于,所述数据虚拟化管理器进一步被配置成响应于所述至少一个存储位置与所述存储层实例的关联,将来自所述数据库的数据存储在所述至少一个存储位置。
13.如权利要求9所述的系统,其特征在于,所述命令处理器进一步被配置成接收所述存储层实例的所述标识符,接收由所述存储层实例逻辑表示的至少一个存储位置的标识符,以及将所述至少一个存储位置与所述存储层实例解除关联,以使得响应于接收到所述存储层实例的所述标识符和由所述存储层实例逻辑表示的所述至少一个存储区的所述标识符,所述存储层实例不再逻辑地表示所述至少一个存储位置。
14.如权利要求13所述的系统,其特征在于,所述数据虚拟化管理器进一步被配置成响应于所述至少一个存储位置与所述存储层实例解除关联,从所述至少一个存储位置移除来自所述数据库的数据。
15.如权利要求9所述的系统,其特征在于,所述数据虚拟化管理器被配置成通过将命令发送到在所述互连的计算机系统中的两个或更多个上执行的数据虚拟化管理器代理,将来自所述数据库的数据存储由所述存储层逻辑表示的所述存储位置中的两个或更多个中。
全文摘要
描述了用于跨多个数据存储设备存储来自数据库的数据的技术,其中每一数据存储设备只能够被一组互连的计算机系统中的对应的计算机系统访问。根据该技术,接收数据库的标识符。还接收存储层实例的标识符,其中该存储层实例包括每一个数据存储设备内的一个或多个存储位置的逻辑表示。响应于接收到数据库的标识符和存储层实例的标识符,将来自数据库的数据存储在由存储层实例逻辑表示的存储位置中的两个或更多个中,其中在其中存储数据的两个或更多个存储位置中的每一个在数据存储器中的对应的一个内。
文档编号G06F17/30GK102165448SQ200980139428
公开日2011年8月24日 申请日期2009年9月15日 优先权日2008年9月30日
发明者A·什日尼瓦斯, J·F·路德曼, M·A·乌拉, M·K·斯里尼瓦斯, R·H·格伯, V·卡瑟瑞 申请人:微软公司

最新回复(0)