• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 38
    • 下载费用:30 金币  

    彩蝴蝶重庆时时彩软件: 数据库服务器系统的存储层.pdf

    关 键 词:
    数据库 服务器 系统 存储
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN200980139428.1

    申请日:

    2009.09.15

    公开号:

    CN102165448A

    公开日:

    2011.08.24

    当前法律状态:

    撤回

    有效性:

    无权

    法律详情: 发明专利申请公布后的视为撤回IPC(主分类):G06F 17/40申请公布日:20110824|||实质审查的生效IPC(主分类):G06F 17/40申请日:20090915|||公开
    IPC分类号: G06F17/40; G06F17/30 主分类号: G06F17/40
    申请人: 微软公司
    发明人: M·K·斯里尼瓦斯; R·H·格伯; V·卡瑟瑞; J·F·路德曼; A·什日尼瓦斯; M·A·乌拉
    地址: 美国华盛顿州
    优先权: 2008.09.30 US 12/241,912
    专利代理机构: 上海专利商标事务所有限公司 31100 代理人: 高见
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN200980139428.1

    授权公告号:

    ||||||

    法律状态公告日:

    2013.12.04|||2011.10.05|||2011.08.24

    法律状态类型:

    发明专利申请公布后的视为撤回|||实质审查的生效|||公开

    摘要

    描述了用于跨多个数据存储设备存储来自数据库的数据的技术,其中每一数据存储设备只能够被一组互连的计算机系统中的对应的计算机系统访问。根据该技术,接收数据库的标识符?;菇邮沾娲⒉闶道谋晔斗?,其中该存储层实例包括每一个数据存储设备内的一个或多个存储位置的逻辑表示。响应于接收到数据库的标识符和存储层实例的标识符,将来自数据库的数据存储在由存储层实例逻辑表示的存储位置中的两个或更多个中,其中在其中存储数据的两个或更多个存储位置中的每一个在数据存储器中的对应的一个内。

    权利要求书

    1.一种用于跨多个数据存储设备存储来自数据库的数据的方法,其中每一数据存储设备都只能够被一组互连的计算机系统中的对应的计算机系统访问,所述方法包括:接收所述数据库的标识符(1702);接收存储层实例的标识符,其中所述存储层实例包括所述数据存储设备的每一个内的一个或多个存储位置的逻辑表示(1704);以及响应于接收到所述数据库的所述标识符和所述存储层实例的所述标识符,将来自所述数据库的数据存储在由所述存储层实例逻辑表示的所述存储位置中的两个或更多个中,其中在其中存储数据的所述两个或更多个存储位置中的每一个在所述数据存储设备中的对应的一个内(1706)。2.如权利要求1所述的方法,其特征在于,将来自所述数据库的数据存储在由所述存储层实例逻辑表示的所述存储位置中的两个或更多个中包括:将来自所述数据库的数据的相同段的副本存储在所述两个或更多个存储位置里的每一个中。3.如权利要求1所述的方法,其特征在于,还包括创建所述存储层实例,其特征在于,创建所述存储层实例包括:接收所述存储层实例的所述标识符;接收所述数据存储设备中的每一个内的所述一个或多个存储位置中的每一个的标识符;以及响应于接收到所述存储层实例的所述标识符以及所述数据存储设备中的每一个内的所述一个或多个存储位置中的每一个的所述标识符,将所述存储层实例与所述数据存储设备中的每一个内的所述一个或多个存储位置进行关联。4.如权利要求1所述的方法,其特征在于,还包括更改所述存储层实例,其特征在于,更改所述存储层实例包括:接收所述存储层实例的所述标识符;接收所述数据存储设备中的至少一个内未由所述存储层实例逻辑表示的至少一个存储位置的标识符;以及响应于接收到所述存储层实例的所述标识符和未由所述存储层实例逻辑表示的所述至少一个存储位置的所述标识符,将所述至少一个存储区与所述存储层实例进行关联,以使得所述存储层实例逻辑地表示所述至少一个存储区。5.如权利要求4所述的方法,其特征在于,还包括:响应于所述更改存储层实例,将来自所述数据库的数据存储在所述至少一个存储位置。6.如权利要求1所述的方法,其特征在于,还包括更改所述存储层实例,其特征在于,更改所述存储层实例包括:接收所述存储层实例的所述标识符;接收由所述存储层实例逻辑表示的至少一个存储位置的标识符;响应于接收到所述存储层实例的所述标识符以及由所述存储层实例逻辑表示的所述至少一个存储位置的所述标识符,将所述至少一个存储位置与所述存储层实例解除关联,以使得所述存储层实例不再逻辑地表示所述至少一个存储位置。7.如权利要求6所述的方法,其特征在于,还包括:响应于所述更改存储层实例,从所述至少一个存储位置移除来自所述数据库的数据。8.一种包括其中存储有控制逻辑的计算机可读介质的计算机程序产品,所述控制逻辑包括:被安排成执行如权利要求1-7中的任一项所述的方法步骤的计算机可读取程序装置。9.一种系统,包括:多个互连的计算机系统(202);多个数据存储设备(204),所述数据存储设备中的每一个被连接到所述互连的计算机系统中的对应的一个(202),并且只能被其访问;以及在所述互连的计算机系统中的至少一个上执行的计算机程序逻辑,所述计算机程序逻辑包括:被配置成接收数据库的标识符并接收存储层实例的标识符的命令处理器(1112),其中所述存储层实例包括所述数据存储设备(204)的每一个内的一个或多个存储位置(1604)的逻辑表示;以及数据虚拟化管理器(1612),所述数据虚拟化管理器(1612)被配置成响应于由所述命令处理器(1112)接收到所述数据库的所述标识符和所述存储层实例的所述标识符,将来自所述数据库的数据存储在由所述存储层实例逻辑表示的所述存储位置(1604)中的两个或更多个中,其中在其中存储数据的所述两个或更多存储位置(1604)中的每一个在所述数据存储设备(204)中的对应的一个内。10.如权利要求9所述的系统,其特征在于,所述命令处理器进一步被配置成接收所述存储层实例的所述标识符,接收所述数据存储设备中的每一个内的所述一个或更多个存储位置中的每一个的标识符,以及响应于接收到所述存储层实例的所述标识符和所述数据存储设备中的每一个内的所述一个或多个存储位置中的每一个的所述标识符,将所述存储层实例与所述数据存储设备中的每一个内的所述一个或多个存储位置进行关联。11.如权利要求9所述的系统,其特征在于,所述命令处理器进一步被配置成接收所述存储层实例的所述标识符,接收所述数据存储设备中的至少一个内未由所述存储层实例逻辑表示的至少一个存储位置的标识符,以及将所述至少一个存储位置与所述存储层实例进行关联,以使得响应于接收到所述存储层实例的所述标识符和未由所述存储层实例逻辑表示的所述至少一个存储位置的所述标识符,所述存储层实例逻辑地表示所述至少一个存储位置。12.如权利要求11所述的系统,其特征在于,所述数据虚拟化管理器进一步被配置成响应于所述至少一个存储位置与所述存储层实例的关联,将来自所述数据库的数据存储在所述至少一个存储位置。13.如权利要求9所述的系统,其特征在于,所述命令处理器进一步被配置成接收所述存储层实例的所述标识符,接收由所述存储层实例逻辑表示的至少一个存储位置的标识符,以及将所述至少一个存储位置与所述存储层实例解除关联,以使得响应于接收到所述存储层实例的所述标识符和由所述存储层实例逻辑表示的所述至少一个存储区的所述标识符,所述存储层实例不再逻辑地表示所述至少一个存储位置。14.如权利要求13所述的系统,其特征在于,所述数据虚拟化管理器进一步被配置成响应于所述至少一个存储位置与所述存储层实例解除关联,从所述至少一个存储位置移除来自所述数据库的数据。15.如权利要求9所述的系统,其特征在于,所述数据虚拟化管理器被配置成通过将命令发送到在所述互连的计算机系统中的两个或更多个上执行的数据虚拟化管理器代理,将来自所述数据库的数据存储由所述存储层逻辑表示的所述存储位置中的两个或更多个中。

    说明书

    数据库服务器系统的存储层

    背景

    数据库服务器是被配置成向通常被称为“客户机”的计算机程序或计算机提供数据库服务。这样的数据库服务可包括,例如,将数据存储在数据库中,从数据库检索数据,修改存储在数据库中的数据,或执行与对存储在数据库中的数据的管理和利用有关的其他服务。为执行这些功能,数据库服务器可以被配置成对存储在数据库中的数据执行诸如搜索、排序,以及索引之类的功能。

    这样的服务器提供良好性能、高可用性,以及可缩放性是符合数据库服务器的管理员和用户的利益的。另外,这样的服务器应该提供使用、管理和管理的简便性。

    概述

    提供本概述是为了以精简的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求?;さ闹魈獾墓丶卣骰虮匾卣?,也不旨在用于限定所要求?;さ闹魈獾姆段?。

    此处描述了用于跨多个数据存储设备存储来自数据库的数据的方法,其中每一数据存储设备只能够被一组互连的计算机系统中的对应的计算机系统访问。根据该方法,接收数据库的标识符?;菇邮沾娲⒉?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包括多个砖,标示为砖1021,1022,1023,…,102n,其中n指示系统100中砖的总数。每个砖包括数据库服务器112的实例以及与其通信地耦合的群集基础结构逻辑114的实例。具体而言,砖1021包括数据库服务器1121的实例以及与其通信地耦合的群集基础结构逻辑1141的实例,砖1022包括数据库服务器1122的实例以及与其通信地耦合的群集基础结构逻辑1142的实例,等等。虽然系统100被示为包括三个以上的砖,但是,可以理解,系统100也可以包括仅两个砖或仅三个砖。如在图1中进一步示出的,每一砖1021-102n通过通信基础结构104连接到每一个其他砖1021-102n。

    每一数据库服务器实例1121-112n包括被配置成向此处被称为“客户机”的其他计算机程序或计算机提供数据库服务的计算机程序的实例。这样的数据库服务可包括,例如,将数据存储在数据库中,从数据库检索数据,修改存储在数据库中的数据,或执行与对存储在数据库中的数据的管理和利用有关的其他服务。为执行这些功能,每一数据库服务器实例1121-112n可以被配置成对存储在数据库中的数据执行诸如搜索、排序,以及索引之类的功能。在一个实施例中,数据库服务器1121-112n的每一实例包括由华盛顿州雷德蒙市的微软公司发布的SQL的一个版本,虽然本发明没有这样的限制。

    群集基础结构逻辑1141-114n的每一实例包括计算机程序逻辑,该计算机程序逻辑被配置成允许多个数据库服务器实例1121-112n作为单个逻辑数据库系统一起操作,以便向与数据库服务器实例1121-112n进行交互的每一用户/客户机呈现单个系统映像。群集基础结构逻辑1141-114n的每一实例还被配置成允许与单个数据库相关联的数据被多个数据库服务器实例1121-112n同时存储、检索、修改或以其他方式处理。

    在数据库系统100的一种实现中,图1中所示的数据库服务器实例1121-112n和对应的群集基础结构实例1141-114n的每一组合被安装在基于对应的处理器的计算机系统上,并在其上执行,以执行如前所述的功能以及其他功能。在本文中的别处参考图18描述了一个这样的基于处理器的计算机系统的示例。

    例如,图2是数据库系统100的一种实现的框图,其中在基于单个处理器的计算机系统202上安装和执行包括数据库服务器实例1121和群集基础结构逻辑实例1141的砖1021。如图2所示,计算机系统202连接到通信基础结构104,并连接到一个或多个数据存储设备204。在一种实现中,数据存储设备204只能被计算机系统202访问。在这样的实现中,由数据库系统100的上下文内的数据库服务器实例1121存储、检索、修改或以其他方式处理的任何数据库数据将被存储在附连到计算机系统202的数据存储设备204上。

    数据存储设备204可包括任何类型的直接附连存储器(DAS)设备,包括,但不仅限于硬盘驱动器、光驱动器,或可以通过诸如串行高级技术附连(SATA)接口、小型计算机系统接口(SCSI)、串行附连SCSI(SAS)接口或光纤通道接口之类的标准接口直接地附连到计算机系统202的其他类型的驱动器。数据存储设备204也可以包括可通过存储区域网络(SAN)或任何形式的网络附连存储器(NAS)访问的任何类型的数据存储设备。

    在数据库系统100的替换实现中,可以在基于相同处理器的计算机系统上安装和执行两个或更多砖。在图3中示出了这样的实现的框图。如图3所示,在基于单个处理器的计算机系统302上安装和执行多个砖1021-102m,每一个砖包括对应的数据库服务器实例和群集基础结构逻辑实例。安装在计算机系统302上的砖的数量——标示为m,优选地小于数据库系统100中砖的总数——表示为n。如在图3中进一步示出的,计算机系统302连接到通信基础结构104,并连接到一个或多个数据存储设备304。在一种实现中,数据存储设备304只能被计算机系统302访问。在这样的实现中,由数据库系统100的上下文内的数据库服务器实例1121-112m存储、检索、修改或以其他方式处理的任何数据库数据将被存储在附连到计算机系统302的数据存储设备304上。存储在数据存储设备304上的数据库数据在1021-102m之间不被共享。相反地,每一砖都具有其自己的对应的数据存储——在图3中标示为数据存储3061-306m。例如,如果数据库数据被存储在数据存储设备304内的文件中,则每一文件对于砖1021-102m中的一个而言是独占的。作为另一个示例,如果数据库数据以原始存储格式来存储,则数据存储设备304内的物理盘对于砖1021-102m中的对应的一个而言是独占的。

    在图1-3中,通信基础结构104旨在表示能够将数据从一个计算机系统携带到另一计算机系统的任何通信基础结构。例如,在一种实现中,通信基础结构104包括使用吉比特以太网技术、技术等等来实现的高速局域网(LAN)。然而,这些示例不旨在进行限制,而是可以使用其他通信基础结构。

    图4是数据存储设备400的框图,其可以表示如上文参考图2所讨论的数据存储设备204中的任一个,或如上文参考图3所讨论的数据存储设备304中的任一个。如图4所示,数据存储设备400包括多个存储位置4021,4022,…,402i。每一这样的存储位置可以包括,例如,可由与数据存储设备400所附连到的计算机系统相关联的文件系统标识和访问的卷。每一这样的存储位置也可以包括包含一个或多个卷的存储器的逻辑单元。每一这样的逻辑单元可以使用逻辑单元号(LUN)来标识。

    图5是更详细地示出了多个群集基础结构逻辑实例1141-114n的单个代表性实例114的框图。如图5所示,群集基础结构逻辑1141-114n的每一实例包括多个代理502,并任选地包括一个或多个管理器504。

    管理器504中的每一个被配置成控制允许多个数据库服务器实例1121-112n作为单个逻辑数据库系统一起操作所需的某些功能的性能,并允许与单个数据库相关联的数据被多个数据库服务器实例1121-112n同时存储、检索、修改或以其他方式处理。如图6所示,管理器504可包括配置管理器602、数据虚拟化管理器604、全局死锁管理器606和事务协调管理器608中的一个或多个。

    配置管理器602是关键群集管理器,并协调诸如对其他管理器和代理进的启动和关闭、对群集的重配置等等关键活动。

    数据虚拟化管理器604负责数据虚拟化。它关于应该将所有用户数据放置在哪里,以及应该将与这样的用户数据相关联的元数据放在哪里作出决定。出于达成可缩放性和避免瓶颈的目的,数据虚拟化管理器604还负责负载平衡。数据虚拟化管理器604实现用于以可缩放性换取数据的可用性和对齐的策略。

    在数据库系统100的一种实现中,如前所述的管理器类型中的每一个的实例只包括在群集基础结构逻辑1141-114n的n个实例的子集内。因此,例如,在其中n大于2的实现中,数据虚拟化管理器604的实例可以被只包括在群集基础结构逻辑1141-114n的2个实例内。这用以节省资源,而且可以在万一当前正在执行的管理器发生故障的情况下有某一冗余度。每一管理器类型只有一个实例被允许在任何给定时间作出决策。每一管理器都被配置成通过向位于群集基础结构逻辑1141-114n的每一实例内的代理的对应的实例发送命令并从其接收信息来执行其指定功能。如图7所示,这些代理504包括配置管理器代理702、数据虚拟化管理器代理704、全局死锁管理器代理706和事务协调管理器代理708。

    数据库系统100部分地通过提供在多个不同的计算机系统上执行的多个数据库服务器实例1121-112n来实现高可用性,每一个数据库服务器实例可以被用来访问单个逻辑数据库。如果数据库服务器实例或它在其上执行的计算机系统发生故障,则可以使用在不同的计算机系统上执行的一个或多个其他数据库服务器实例来获取数据库服务。

    数据库系统100通过以下操作来实现增强的性能:跨与在其上执行砖1021-102n的不同计算机系统相关联的多个数据存储设备存储来自数据库的数据,以使得与处理这样的数据相关联的工作负荷可以跨多个计算机系统地分布。数据库系统100通过跨这样的数据存储设备存储相同数据库数据的副本来进一步实现高可用性,以使得如果一个计算机系统和/或与其相关联的数据存储设备发生故障,则可以通过不同的计算机系统和相关联的数据存储设备来访问相同数据的替换性副本。现在将参考图8-10例示这些概念。

    具体而言,图8描绘了数据库中包括诸如示例性行812之类的一系列行的表802。每一数据库服务器实例1121-112n被配置成向用户提供用于创建这样的表的能力,以及此外用于分割这样的表以产生被叫做分区的行的组。例如,如图8中所进一步示出的,表802可以被分割成第一分区804和第二分区806。

    数据虚拟化管理器604被配置成将每一分区进一步分割成被叫做“段”的较小的行的组。例如,如图9所示,第一分区804可以被分割成第一段902,第二段904和第三段906。段是逻辑实体。段的物理表示被称为克隆。

    数据虚拟化管理器604进一步被配置成跨与不同的计算机系统相关联的数据存储设备分布克隆,以改善性能和提供高可用性。数据虚拟化管理器604可以基于冗余因子来确定要创建和跨数据存储设备分布的克隆的数量??梢杂上低彻芾碓被蛴没【鲇谑迪掷瓷柚萌哂嘁蜃?。

    例如,图10是被表示为数据库系统1000的数据库系统100的一个实现的框图,其中,克隆跨与不同的计算机系统相关联的数据存储设备分布。如图10所示,执行砖1014的计算机系统1010连接到数据存储设备1012,执行砖1024的计算机系统1020连接到数据存储设备1022,而执行砖1034的计算机系统1030连接到数据存储设备1032。计算机系统经由通信基础结构1004连接。假设图9的第一段902在物理上被表示为克隆10021、10022和10023,图9的第二段904在物理上被表示为克隆10041、10042和10043,而图9的第三段906在物理上被表示为克隆10061、10062和10063。

    如图10所示,数据虚拟化管理器604将与每一段相关联的一个克隆分别分布到数据存储设备1012、1022和1032中的每一个。例如,克隆10021被存储在数据存储设备1012内,克隆10022被存储在数据存储设备1022内,而克隆10023被存储在数据存储设备1032内。结果,与对构成第一分区804的所有三个段902、904和906操作的任何过程相关联的工作负荷可以容易地跨计算机系统1010、1020、1030分布,因为每一计算机系统都具有对必要的数据的本地访问,以便执行过程。此外,如果计算机系统1010、1020、1030中的任一个或其相关联的数据存储设备万一发生故障,则由段902、904和906逻辑表示的数据仍可经由其他计算机系统和相关联数据存储设备中的任一个来访问。

    数据库系统1000的体系结构可以被称为“不共享任何东西”体系结构,因为系统1000内的每一计算机系统不与其他计算机系统中的任一个计算机系统共享任何共用资源来访问和处理必需的数据库数据。体系结构有利地通过添加新计算机系统和数据存储设备来方便地横向扩展。

    B.存储层

    某些常规数据库服务器要求用户指定与特定数据库相关联的数据将被存储在哪里的物理位置。存储指定可包括,例如,一个或多个数据库文件。作为数据库创建过程的一部分,用户可能需要指定物理存储位置。

    如前面的章节所描述的将这样的一个方案延伸到数据库系统100会造成许多问题。例如,如果数据库的创建者需要指定与数据库相关联的数据将如何存储在与在其上执行砖1021-102n的计算机系统相关联的各种数据存储设备中,则数据库系统100的单个系统镜像宗旨将被违犯。

    此外,如果数据库系统100被纵向扩展以包括更大数量的计算机系统和更大数量的相关联数据存储设备,则与跨所有数据存储设备指定存储位置相关联的复杂性同等地增大。

    另外,如上文所示的,与数据库系统100相关联的目标是高可用性。这在数据库系统100中部分地通过跨与多个不同的计算机系统相关联的多个不同的数据存储设备协调地创建和存储相同的数据库数据的多个表示来实现。这种创建和存储方案允许无缝地处理诸如砖的故障之类的问题。允许用户指定与数据库相关联的数据将被存储在哪里的准确物理位置可以阻碍或禁用这样的自动化创建和存储功能。

    更进一步,在其中用户需要指定与数据库相关联的数据将被存储在哪里的物理位置的数据库系统中,用户可能需要处理当与单个数据库相关联的多个文件被存储在不同的物理位置时出现的文件名激增(proliferation)的问题。

    本发明的一个实施例通过提供全系统范围的逻辑存储容器(被称为存储层)来解决前述问题中的每一个问题。每一存储层都逻辑地表示一个或多个存储位置。由存储层逻辑表示的存储位置可以存在在多个不同的数据存储设备内,其中多个不同的数据存储设备中的每一个只能够被一组互连的计算机系统中的对应的计算机系统来访问。使用存储层有利地使得诸如数据库系统100之类的系统能向作为数据库系统100的一部分的每一砖上的用户呈现单个系统映像。

    通过提供存储层,本发明的一个实施例为存储器提供可以由用户直接地处理的单个系统抽象。因此,用户不必顾虑细粒度细节和与跨大量的数据存储设备存储数据相关联的复杂性。这样的单个系统抽象给用户提供在处理数据库系统范围内的存储要求时使用、经营、和管理的简便性。此外,与存储层合作时涉及的复杂性有利地保持恒定,而不管数据库系统的大小如何。

    使用存储层还允许诸如数据虚拟化管理器604之类的软件实体负责跨多个不同的数据存储设备创建和存储数据库数据。结果,用户不必顾虑指定与数据库相关联的数据将被存储在哪里的准确物理位置。用户也不用担心关于文件名扩散问题,因为,在一个实施例中,文件被系统软件实体自动地命名。

    1.数据库文件和文件组

    为提供对存储层的属性和使用的更好理解,现在将描述可以与根据本发明的一实施例的存储层相关联的各种类别的数据库数据。此描述与数据库系统100的一个实施例特别相关,其中,数据库服务器1121-112n的每一实例都包括由美国华盛顿州雷德蒙市的微软公司发布的SQL的一个版本。然而,本发明不仅限于这样的实施例。

    数据库系统100中的数据库可以具有三种类型的文件:主数据文件、辅助数据文件和日志文件。主数据文件是数据库的起始点,并指向数据库中的其他文件。每一数据库具有一个主文件。对于主数据文件的推荐的文件名扩展是.mdf。

    辅助数据文件构成除主数据文件以外的与数据库相关联的所有数据文件。某些数据库可以不具有任何辅助数据文件,而其他数据库具有若干个辅助数据文件。对于辅助数据文件的推荐的文件名扩展是.ndf。

    日志文件保留被用来恢复数据库的所有日志信息。对于每一个数据库,必须有至少一个日志文件,虽然可以有一个以上的日志文件。对于日志文件的推荐的文件名扩展是.1df。

    在数据库系统100中,可以将数据库对象和文件编组在文件组中,以便用于分配和管理的目的。有两种类型的文件组:主文件组和用户定义文件组。与数据库相关联的主文件组包含主数据文件和未被专门指派给另一文件组的任何其他文件。系统表(下面将讨论)的所有页面被分配在主文件组中。用户定义文件组是通过在CREATE?DATABASE(创建数据库)或ALTER?DATABASE(更改数据库)语句中使用FILEGROUP(文件组)关键字来指定的任何文件组。

    日志文件决不会是文件组的一部分。日志空间被与数据空间分开地管理。

    没有文件可以是一个以上的文件组的成员。表、索引,以及大型对象数据可以与指定的文件组相关联。在此情况下,所有页面都将被分配在该文件组中,或者,表和索引都可以被分区。经分区的表和索引的数据被划分成若干个单元,其中每一个单元可以被置于数据库中的单独文件组中。

    每一数据库中的一个文件组被指定为默认文件组。当创建表或索引而不指定文件组时,假设所有页面将从默认文件组分配。一次只有一个文件组可以是默认文件组。db_owner(数据库_所有者)固定数据库角色的成员可以将默认文件组从一个文件组切换到另一文件组。如果没有指定默认文件组,则主文件组是默认文件组。

    与数据库系统100相关联的系统元数据可以被存储在数个系统数据库中,其中每一个系统数据库具有数个前述文件类型。例如,系统元数据可包括master数据库和模型数据库,其中每一个都包括数据和日志文件。系统表中有三种元数据:配置管理器、事务协调管理器和数据虚拟化管理器的逻辑元数据、物理元数据和持久状态/元数据。

    逻辑元数据是被复制或在物理上被保存到与数据库系统100中的每一个砖相关联的数据存储设备的数据。一个叫做“元数据管理器”的软件实体被配置成执行此功能。

    物理元数据描述存储在只能被特定砖在其上执行的计算机系统访问的数据存储设备上的元数据。没有被复制的副本,且系统表被建模为在每一数据库段上具有单独的数据段。如此,这些表的内容是相对于每一砖本地存储的所有物理元数据的并。

    根据预定义的算法将配置管理器/事务协调管理器/数据虚拟化管理器元数据复制到与某些砖相关联的数据存储设备。从元数据管理器观点来看,此元数据被视为“物理元数据”。

    2.存储层的属性

    在下表1中提供了根据本发明的一个实施例的对存储层的每一实例通用的属性的描述。将描述的一些属性与数据库系统100的一个实施例特别相关,其中,数据库服务器1121-112n的每一实例包括由华盛顿州雷德蒙市的微软公司发布的的一个版本,虽然存储层的用途不仅限于这样的实施例。

    表1:存储层的描述

    如表1所示,存储层实例的属性被标记为storage_tier_id、名称、类型、is_default和storage_pool。storage_tiie_id属性包括由数据库系统100内的软件实体生成的唯一地标识数据库系统100内的每一砖的单个存储层实例的不可改变的值。

    名称属性包括与数据库系统100内的每一砖的存储层实例唯一地相关联的名称。名称可能需要遵循与数据库服务器实例1121-112n相关联的对象命名约定,诸如结构化查询语言(SQL)对象命名约定。在数据库系统100的一种实现中,系统为每一种类型的存储层提供默认存储层实例。在这样的实现中,由数据库系统100提供与默认存储层实例相关联的名称,而相比之下,所有用户创建的存储层实例都由用户命名。在一个实施例中,用于命名存储层的命名空间是平坦非分层命名空间。如表1所指出的,可以使用ALTER?STORAGE?TIER命令来更新与存储层实例相关联的名称,如此处比较详细地描述的。

    存储层的每一实例具有在存储层实例的创建期间设置的类型属性。一旦设置,就无法修改指派给存储层实例的类型。存储层类型包括,但不仅限于,system_data、system_log、temp_data、temp_log、data和log。下面将更详细地描述这些存储层类型。

    属性is_default指定存储层实例是否是存储层的默认实例。在一个实施例中,给定存储层类型只有一个默认实例。

    属性storage_pool标识与存储层实例相关联的一个或多个存储规范。在下表2中描述了根据本发明的一个实施例的存储规范的示例。如表2所示,与存储规范实例相关联的属性包括storage_tier_id(存储_层_id)、storage_spec_id(存储_空间_id)、brick_id(砖_id)和路径。

    表2:存储规范的描述

    属性storage_tier_id是唯一地标识存储规范与其相关联的存储层实例的不可改变的值。

    属性storage_spec_id是与由storage_tier_id标识的存储层实例有关的唯一地标识存储规范实例的值。如表2所指出的,storage_tier_id和storage_spec_id的组合定义唯一地标识数据库系统100内的所有砖的存储规范的组合键。

    属性storage_spec_name包括与存储规范相关联的名称。storage_spec_name在任何给定存储层实例上必须是唯一的,并可能需要遵循用于命名与数据库服务器实例1121-112n相关联的标识符的某些规则。

    属性brick_id是数据库系统100内砖1021-102n中存储规范与之相关联的一个的唯一标识符。

    属性“路径”描述了至与由brick_id标识的砖在其上执行的计算机系统相关联的数据存储设备内的存储位置的路径。如上文参考图4所讨论的,存储位置可以包括,例如,可由与计算机系统相关联的文件系统识别和访问的卷。也如上文参考图4所讨论的,存储位置可以包括包含一个或多个卷的存储的逻辑单元,其中逻辑单元可以通过逻辑单元号(LUN)来标识。

    3.存储层类型

    如上文参考表1所讨论的,每一存储层实例具有类型属性。与存储层相关联的类型确定该存储层的属性的数量,包括,但不仅限于,可以为该类型创建的存储层实例的数量,是否可以由用户创建或丢弃存储层的实例,以及可以与存储层的实例相关联的数据库文件的类型。

    下表3标识了根据本发明的一个实施例的存储层实例的不同类型。下面将描述与这些不同的存储层类型中的每一个相关联的属性。

    表3:存储层类型

    system_data和system_log存储层类型的属性。在任何给定时间可以有一个且只有一个类型system_data和system_log的存储层的实例。这些实例分别带有名称StSystemData和StSystemLog,并由数据库系统100提供。这些存储层实例控制对与数据库系统100相关联的系统元数据的存储器分配。具体而言,存储层实例StSystemData控制对于构成系统元数据的数据库(例如,主(master)数据库和模型数据库)的数据文件的存储分配,而存储层实例StSystemLog控制对于构成系统元数据的数据库的日志文件的存储分配。在本发明的一个实施例中,必须在与数据库系统100中的每一个砖相关联的一个或多个数据存储设备上预设系统元数据的存储。

    用户不允许丢弃类型system_data和system_log的存储层的系统提供的实例。用户也不能创建类型system_data和system_log的存储层实例。用户可以预设更多存储或更改与存储层类型system_data和system_log的系统提供的实例相关联的预设存储。

    对于类型system_data和system_log的每一个存储层实例,is_default属性的值为真,并且无法被更改。

    temp_data和temp_log存储层类型的属性。在任何给定时间可以有一个且只有一个类型temp_data和temp_log的存储层的实例。这些实例分别带有名称StSystemData和StSystemLog,并由数据库系统100提供。在一个实施例中,tempdb(临时数据库)描述了每一数据库服务器实例1121-112n的恰当操作所需的且在数据库系统100的一个实施例中在全局级别下提供的(即,供所有砖使用)临时数据库。存储层实例StTempData控制对于tempdb的主文件组的存储分配,而存储层实例StTempLog控制对于tempdb的日志文件的存储分配。在本发明的一个实施例中,必须在与数据库系统100中的每一个砖相关联的一个或多个数据存储设备上预设用于tempdb数据和日志文件的存储。

    用户不允许丢弃类型temp_data和temp_log的存储层的系统提供的实例。用户也不能创建类型temp_data和temp_log的存储层实例。用户可以预设更多存储或更改与存储层类型temp_data和temp_log的系统提供的实例相关联的预设的存储。

    对于类型temp_data和temp_log的每一个存储层实例,is_default属性的值为真,并且无法被改变。

    data和log存储层类型的属性。类型data的存储层实例控制对与用户创建数据库相关联的数据文件的存储分配,而类型log的存储层实例控制对与用户创建数据库相关联的日志文件的存储分配。用户可以只创建data和log存储层类型的实例??梢源唇ㄈ我馐康氖道?。在一个实施例中,可以在与数据库系统100中的任何砖相关联的任何数据存储设备(诸)上预设数据和日志文件。在又一实施例中,必须在于其上为给定用户创建数据库的数据文件预设存储的相同砖上预设该用户创建数据库的日志文件的存储。

    如果没有数据库当前链接到存储层实例,则类型data或类型log的存储层的实例可以被用户丢弃。在一个实施例中,数据库系统100维护标识当前链接到存储层实例的数据库的数量的与每一存储层实例相关联的属性,表示为RefCount(参考计数)。如此,只有当与实例相关联的RefCount等于零时,才可以丢弃类型data或类型log的存储层实例。

    为这些存储层类型中的每一种类型提供了系统提供的默认实例。对于类型data的系统提供的默认实例被命名为StData,对于类型log的系统提供的默认实例被命名为StLog。数据库系统100最初将这些默认实例的is_default值设置为真。当这些类型中的任一个类型的新实例被选择为默认时,数据库系统100自动地在前面的默认实例上将is_default的值标记为假。如此,在任何时间,在数据库系统100中可以有一个且只有一个每一存储层类型的默认实例。

    4.存储层实例的创建、更改和丢弃

    现在将描述可以创建、更改或丢弃存储层实例的方式。这些功能可以由数据库系统100的任何用户来执行,虽然可以预料这样的功能通常将由数据库管理员(DBA)、存储管理员,或负责数据库系统100的管理的其他授权人员来执行。

    图11是描绘了在执行涉及存储层实例的创建、更改或丢弃的功能时可能涉及的实体的框图。如图11所示,这些实体包括砖1021,该砖1021包括如上文参考图1所讨论的数据库服务器实例1121和群集基础结构逻辑实例1141,虽然可以使用数据库系统100中的任何其他砖??突Щ?102可通信地连接到数据库服务器实例1121。这样的连接可以通过通信基础结构104或经由某种其他通信基础结构来建立。群集基础结构逻辑实例1141提供对逻辑系统元数据1104的访问,该逻辑系统元数据1104如上文所讨论的,被复制或在物理上被保存到与数据库系统100中的每一砖相关联的数据存储设备。

    如在图11中进一步示出的,数据库服务器实例1121包括命令处理器1112和元数据管理器1114。命令处理器1112是被配置成接收和处理由客户机1102的用户提交的命令的软件逻辑,其中这样的命令可包括用于创建、更改或丢弃存储层的命令??突Щ?102提供用户可以用来提交这样的命令的用户界面。在一个实施例中,命令包括事务-SQL(T-SQL)命令,虽然本发明没有这样的限制。

    元数据管理器1114包括部分地被配置为响应于由命令处理器1112对某些命令的处理,创建、修改或删除与存储层相关联的元数据的软件逻辑。与存储层相关联的元数据被存储为逻辑系统元数据1104的一部分。由于逻辑系统元数据1104在物理上被保存到与数据库系统100中的每一砖相关联的数据存储设备,因此由元数据管理器1114对这样的元数据的创建、修改或删除在群集基础结构逻辑实例1141的协助下执行。

    图12描绘了创建存储层可以所采用的示例方法的流程图1200。流程图1200的步骤是只作为示例来描述的,且不旨在限制本发明。此外,虽然可以参考各种逻辑和/或物理实体和在本文中的别处描述的系统来描述流程图1200的步骤,但是,精通相关技术的人员将轻松地理解,方法不必一定使用这样的实体和系统来实现。

    如图12所示,流程图1200的方法从步骤1202开始,在该步骤中,命令处理器1112接收存储层实例的标识符。存储层实例的标识符可以包括例如将被指定给存储层实例的名称。存储层实例的标识符可以作为由客户机1102的用户向数据库服务器实例1121提交的命令——诸如T-SQL命令——的部分来接收。

    在步骤1204中,命令处理器1112接收一个或多个存储位置的标识符。存储位置可以包括,例如,多个数据存储设备中的每一个内的一个或多个存储位置,其中多个数据存储设备中的每一个可分别被数据库系统100内的不同的砖来访问。如在别处所指出的,在某些实施例中,存储位置可以包括卷或标识一个或多个卷的LUN(逻辑单元号)。存储位置的标识符可以包括,例如,到目录的路径。一个或多个存储位置的标识符可以作为由客户机1102的用户向数据库服务器实例1121提交的命令的——诸如T-SQL命令——的部分来提供。命令可以是用来在步骤1202中提供存储层实例的标识符的相同命令。

    在步骤1206中,响应于在步骤1202中接收到存储层实例的标识符和在步骤1204中接收到一个或多个存储位置的标识符,命令处理器1112将在步骤1202中标识的存储层实例与在步骤1204中标识的存储位置相关联,以使得存储层实例逻辑地表示存储位置。命令处理器1112可以,例如,响应于接收到包括存储层实例的标识符和存储位置的标识符的命令——诸如T-SQL命令,执行此步骤。一旦进行了前述的关联,由元数据管理器1114通过使用群集基础结构逻辑实例1141将表示关联的元数据存储为逻辑系统元数据1104的部分。

    一旦根据前述的方法创建了存储层实例,它就可以被数据虚拟化管理器604用来自动地将来自系统或与实例相关联的用户创建数据库的数据存储在由实例所标识的存储位置。在一个实施例中,系统数据库文件和存储层实例之间的关系是由数据库系统100建立的,而用户创建数据库文件和存储层实例之间的关系可以由数据库系统100建立或者由用户作为数据库创建过程的一部分来建立。

    下面提供了用于创建存储层实例的示例命令句法:

    在前述的命令中,storage_tier_name(存储_层_名称)是标识要创建的存储层实例的名称,type_name(类型_名称)标识要创建的存储层实例的类型,而<storage_spec>(<存储_空间>)标识要由存储层实例来逻辑表示的存储位置。在一个实施例中,type_name(类型_名称)可以是data或log中的一个,其中这样的类型对应于上文参考表3所描述的data和log类型。在又一实施例中,<storage_spec>对应于如上文参考表2所描述的存储规范。

    下面是用于创建类型log的新的用户定义存储层实例的前述命令句法的使用的示例:

    图13中描绘了藉由其可以更改现有的存储层实例以便将一个或多个新存储位置与存储层实例相关联的示例方法的流程图1300。流程图1300的步骤是只作为示例来描述的,而不旨在限制本发明。此外,虽然可以参考各种逻辑和/或物理实体和在本文中的别处所描述的系统来描述流程图1300的步骤,但是,精通相关技术的人员将轻松地理解,方法不必一定使用这样的实体和系统来实现。

    如图13所示,流程图1300的方法从步骤1302开始,在该步骤中,命令处理器1112接收存储层实例的标识符。存储层实例的标识符可以包括例如已被指派给存储层实例的名称。存储层实例的标识符可以作为由客户机1102的用户向数据库服务器实例1121提交的命令——诸如T-SQL命令——的部分来接收。

    在步骤1304中,命令处理器1112接收未由存储层实例逻辑表示的至少一个存储位置的标识符。至少一个存储位置可以包括,例如,数据存储设备内可被数据库系统100内的特定砖访问的存储位置。至少一个存储位置的标识符可以包括,例如,到目录的路径。至少一个存储位置的标识符可以作为由客户机1102的用户向数据库服务器实例1121提交的命令——诸如T-SQL命令——的部分来提供。命令可以是用来在步骤1302中提供存储层实例的标识符的相同命令。

    在步骤1306中,响应于在步骤1302中接收到存储层实例的标识符和在步骤1304中接收到至少一个存储位置的标识符,命令处理器1112将在步骤1304中标识的至少一个存储位置与在步骤1302中标识的存储层实例相关联,以使得存储层实例逻辑地表示至少一个存储位置。命令处理器1112可以,例如,响应于接收到包括存储层实例的标识符和至少一个存储位置的标识符的命令——诸如T-SQL命令,执行此步骤。一旦发生了前述的关联,元数据管理器1114就对与存储层实例相关联的并且存储在逻辑系统元数据1104中的元数据作出相对应的修改,其中这样的修改是使用群集基础结构逻辑实例1141来作出的。

    一旦根据前述方法改变了存储层实例,数据虚拟化管理器604就可以将来自已被指派给存储层实例的数据库文件的数据自动地存储在相关联的存储位置。

    图14中描绘了藉由其可以更改现有存储层实例以便将一个或多个存储位置与存储层实例解除关联的示例方法的流程图1400。流程图1400的步骤是只作为示例来描述的,不旨在限制本发明。此外,虽然可以参考各种逻辑和/或物理实体和在本文中的别处所描述的系统来描述流程图1400的步骤,但是,精通相关技术的人员将轻松地理解,方法不必一定使用这样的实体和系统来实现。

    如图14所示,流程图1400的方法从步骤1402开始,在该步骤中,命令处理器1112接收存储层实例的标识符。存储层实例的标识符可以包括例如已被指派给存储层实例的名称。存储层实例的标识符可以作为由客户机1102的用户向数据库服务器实例1121提交的命令——诸如T-SQL命令——的部分来接收。

    在步骤1404中,命令处理器1112接收由存储层实例逻辑表示的至少一个存储位置的标识符。至少一个存储位置可以包括,例如,数据存储设备内可被数据库系统100内的特定砖访问的存储位置。至少一个存储位置的标识符可以包括例如到目录的路径。至少一个存储位置的标识符可以作为由客户机1102的用户向数据库服务器实例1121提交的命令——诸如T-SQL命令——的部分来提供。命令可以是用来在步骤1402中提供存储层实例的标识符的相同命令。

    在步骤1406中,响应于在步骤1402中接收到存储层实例的标识符和在步骤1404中接收到至少一个存储位置的标识符,命令处理器1112将在步骤1404中标识的至少一个存储位置1404与在步骤1402中标识的存储层实例解除关联,以使得存储层实例不再逻辑地表示至少一个存储位置。命令处理器1112可以,例如,响应于接收到包括存储层实例的标识符和至少一个存储位置的标识符的命令——诸如T-SQL命令,执行此步骤。一旦发生了前述的解除关联,元数据管理器1114就对与存储层实例相关联的并且存储在逻辑系统元数据1104中的元数据作出相对应的修改,其中这样的修改是使用群集基础结构逻辑实例1141来作出的。

    一旦根据前述的方法更改了存储层实例,数据虚拟化管理器604就可以从解除关联的存储位置自动地移除已被指派给存储层实例的数据库文件的数据。

    下面提供了用于更改存储层实例的示例命令句法:

    在前述的命令中,storage_tier_name(存储_层_名称)是标识要更改的存储层实例的名称。ADD(添加)、REMOVE?STORAGE_SPEC(移除存储_空间),以及MODIFY(修改)子命令可以各自被包括在ALTER?STORAGE?TIER(更改存储层)命令内,以分别向存储层添加存储位置,从存储层删除存储位置,或修改存储层名称。

    下面是用于向类型data的默认存储层实例预设某一存储的前述命令句法的使用的一个示例:

    下面是用于向类型log的默认存储层实例预设某一存储的前述命令句法的使用的另一示例:

    图15描绘了藉由其可以丢弃现有存储层实例的示例方法的流程图。流程图1500的步骤是只作为示例来描述的,且不旨在限制本发明。此外,虽然可以参考各种逻辑和/或物理实体和在本文中的别处所描述的系统来描述流程图1500的步骤,但是,精通相关技术的人员将轻松地理解,方法不必一定使用这样的实体和系统来实现。

    如图15所示,流程图1500的方法从步骤1502开始,在该步骤中,命令处理器1112接收存储层实例的标识符。存储层实例的标识符可以包括例如已被指派给存储层实例的名称。存储层实例的标识符可以作为由客户机1102的用户向数据库服务器实例112提交的命令——诸如T-SQL命令——的部分来接收。

    在步骤1504中,命令处理器1112确定是否有当前与在步骤1502中标识的存储层实例相关联的任何数据库。在一个实施例中,数据库系统100维护与每一存储层实例相关联的、标识当前链接到存储层实例的数据库的数量的属性,标示为RefCount。如此,命令处理器1112可以通过分析RefCount的值来确定是否有当前与在步骤1502中标识的存储层实例相关联的任何数据库。如果RefCount大于0,那么,一个或多个数据库当前与存储层实例相关联。如果RefCount等于0,那么,没有数据库当前与存储层实例相关联。

    在步骤1506中,响应于在步骤1502中接收到存储层实例的标识符并确定没有数据库当前与标识的存储层实例相关联,命令处理器1112丢弃所标识的存储层实例。命令处理器1112可以,例如,响应于接收到包括存储层实例的标识符的命令——诸如T-SQL命令,执行此步骤。一旦丢弃了存储层实例,元数据管理器1114就从逻辑系统元数据1104中删除与存储层实例相关联的元数据,其中这样的删除是使用群集基础结构逻辑实例1141来执行的。

    下面提供了用于丢弃存储层实例的示例命令句法:

    在前述命令中,storage_tier_name是标识要丢弃的存储层实例的名称。

    5.将数据库指派给存储层实例,并据此进行存储

    现在将描述数据库可被指派给存储层实例并据此进行存储的方式。特定数据库和特定存储层实例之间的关联可以由数据库系统100自动地预设,或者可以由用户作为数据库创建过程的部分来创建??缬纱娲⒉闶道呒硎镜囊桓龌蚨喔龃娲⑽恢么娲⒗醋允菘獾氖菔怯芍钊缫陨衔牟慰纪?所描述的数据虚拟化管理器604之类的数据虚拟化管理器自动地处理的过程。

    图16是描绘了在执行与将数据库指派给存储层实例以及据此存储来自数据库的数据有关的功能时可能涉及的实体的框图。如图16所示,这些实体包括砖1021,该砖1021包括如上文参考图1所讨论的数据库服务器实例1121和群集基础结构逻辑实例1141,虽然可以使用数据库系统100中的任何其他砖??突Щ?602通信地连接到数据库服务器实例1121。这样的连接可以通过通信基础结构104或经由某种其他通信基础结构来建立。

    如在图11中进一步示出的,数据库服务器实例1121包括命令处理器1112。命令处理器1112是被配置成接收和处理由客户机1602的用户提交的命令的软件逻辑,其中这样的命令可包括与数据库的创建有关的命令??突Щ?602提供用户可以用来提交这样的命令的用户界面。在一个实施例中,命令包括T-SQL命令,虽然本发明没有这样的限制。

    群集基础结构逻辑实例1141包括数据虚拟化管理器1612,该数据虚拟化管理器1612被配置成将来自所创建的数据库的数据存储在由与数据库相关联的存储层实例逻辑表示的多个存储位置1604中的任一个。每一个存储位置可以位于可以被数据库系统100内的不同的计算机系统访问的不同的数据存储设备内。

    在一替换实施例中,数据虚拟化管理器1612被包括在数据库系统100中除群集基础结构逻辑实例1141以外的群集基础结构逻辑的实例内,且群集基础结构逻辑实例1141包括数据虚拟化管理器代理,该代理被配置成与之进行通信,以使数据虚拟化管理器1612执行前述功能。

    在图17中描绘了可以将数据库与存储层实例相关联以及据此存储来自数据库的数据的示例方法的流程图1700。流程图1700的步骤是只作为示例来描述的,而不旨在限制本发明。此外,虽然可以参考各种逻辑和/或物理实体和在本文中的别处所描述的系统来描述流程图1700的步骤,但是,精通相关技术的人员将轻松地理解,方法不必一定使用这样的实体和系统来实现。

    如图17所示,流程图1700的方法从步骤1702开始,在该步骤中,命令处理器1112接收数据库的标识符。在一个实施例中,数据库的标识符包括文件组的标识符。文件组的标识符可以作为由客户机1602的用户向数据库服务器实例1121提交的命令——诸如T-SQL命令——的部分来接收。

    在步骤1704中,命令处理器1112接收存储层实例的标识符。存储层实例的标识符可以包括例如已被指派给存储层实例的名称。存储层实例的标识符可以作为由客户机1102的用户向数据库服务器实例1121提交的命令——诸如T-SQL命令——的部分来接收。命令可以是用来在步骤1702中提供数据库的标识符的相同命令。

    在步骤1706中,数据虚拟化管理器1612将来自在步骤1702中标识的数据库的数据存储在由步骤1704中标识的存储层实例逻辑表示的存储位置1604。取决于实现,这可以涉及以文件格式或原始存储格式来存储数据。这也可以涉及将来自数据库的数据存储在被定位在与系统100内的不同计算机系统相关联的不同数据存储设备内的存储位置。数据虚拟化管理器1612可以通过向在这样的不同的计算机系统上执行的数据虚拟化管理器代理发送命令来执行此功能。取决于不同的因素,此步骤可包括将来自数据库的数据的不同段的克隆存储在不同存储位置里的每一个处,将来自数据库的数据的相同段的克隆存储在这些存储位置里的每一个处,或两者兼有。在一个实施例中,此步骤也可以涉及将来自数据库的数据存储在被定位在同一数据存储设备内的存储位置。

    下面提供了用于创建数据库以及将存储层与数据库的文件组/日志组进行关联的示例命令句法:

    在前述命令中,database_name(数据库名称)是标识正在被创建的数据库的名称。遵循命令项PRIMARY(主)的标示为<filegroup_spec>(<文件组_空间>)的文件组规范包括将被指派给数据库的主文件组的存储层实例的名称。遵循命令项LOG?ON(日志记录在)的另一文件组规范包括将被指派给数据库的日志文件组的存储层实例的名称。也可以使用文件组规范来将由″<filegroup>[,...n](<文件组>[,...n])″表示的其他用户创建的文件组指派给存储层。

    如也通过示例命令句法所示出的,文件组规范包括可以对文件或日志组设置的各种属性。这些包括REDUNDANCY_FACTOR(冗余因子)、INITIALSIZE(初始大小)、MAXSIZE(最大大小)和FILEGROWTH(文件增长)。属性REDUNDANCY_FACTOR指定要为文件组中所包含的对象的每一个段创建的克隆的数量。属性INITIALSIZE表示由系统在该文件组中创建的用于保存/存储信息的任何文件的初始大小。属性MAXSIZE指定由文件组占用的空间的最大量,包括由克隆占用的空间。属性FILEGROWTH指定文件组中的每一文件增长的增量。

    下面是用于创建名为MyDB的数据库的前述命令句法的使用的一个示例:

    这里,数据库MyDB的主文件组被指派给存储层类型data的系统提供的实例——其名为StData,数据库MyDB的日志文件被指派给存储层类型log的系统提供的实例——其名为StLog,而用户创建文件组MyDB_FG1被指派给类型data的用户创建存储层实例——其名为StTier1(St层1)。

    下面是创建名为testdb1(测试数据库1)的数据库的前述命令句法的使用的另一示例:

    这里,数据库testdb1的主文件组将被指派给名为StData1(St数据1)的用户创建存储层实例,而数据库testdb1的日志文件将被指派给名为StLog1的用户创建存储层实例。

    下面是创建名为testdb2(测试数据库2)的数据库的前述命令句法的使用的再一个示例:

    这里,由于没有显式地指定存储层,因此命令处理器1112将把数据库testdb2的主文件组指派给存储层类型data的默认实例,且将把数据库testdb2的日志文件指派给存储层类型log的默认实例。在此示例中,在流程图1700的步骤1702中接收到的数据库文件的标识符和在步骤1704中接收到的存储层实例的标识符不是通过用户命令提供的,而是替代地由数据库系统100本身来提供的。

    也可以执行流程图1700的过程,以根据相关联的存储层来存储系统数据库文件。在此情况下,数据库系统100提供系统数据库文件以及相关联的存储层实例两者的标识符,且诸如图6的数据虚拟化管理器604之类的数据虚拟化管理器将数据库文件存储在由存储层逻辑表示的一个或多个存储位置中。例如,数据库系统100指定系统数据库tempdb的日志文件与系统所提供的存储层实例StTempLog相关联,以及数据虚拟化管理器604跨由存储层StTempLog逻辑表示的存储位置存储系统数据库tempdb的日志文件。

    6.向存储层指定策略

    根据本发明的进一步的实施例,可以结合存储层引入策略,以便给用户提供用于控制不同的对象集在数据库内的存储或放置的能力。根据这样的实施例,可以实现,例如,控制谁可以创建、更改或丢弃存储层,或谁可以将与所创建的数据库相关联的文件存储特定存储层的安全性方案。也可以指定其他策略。

    C.示例计算机系统实现

    图18描绘了在其上可以执行本发明的各个方面的计算机系统1800的示例性实现。计算机系统1800旨在以常规个人计算机的形式表示通用计算系统。

    如图15所示,计算机系统1800包括处理单元1802、系统存储器1804,以及将包括系统存储器1804的各种系统组件耦合到处理单元1802的总线1806。系统总线1806表示若干类型的总线结构中的任何一种总线结构的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口,以及使用各种总线体系结构中的任何一种的处理器或局部总线。系统存储器1804包括只读存储器(ROM)1808和随机存取存储器(RAM)1810?;臼淙?输出系统1812(BIOS)存储在ROM?1808中。

    计算机系统1800还具有下列驱动器中的一个或多个:用于读写硬盘的硬盘驱动器1814,用于读写可移动磁盘1818的磁盘驱动器1816,以及用于读写诸如CD?ROM、DVD?ROM之类的可移动光盘1822,或其他光学介质的光盘驱动器1820。硬盘驱动器1814、磁盘驱动器1816,以及光驱动器1820分别通过硬盘驱动器接口1824、磁盘驱动器接口1826,以及光学驱动器接口1828连接到系统总线1806。驱动器以及它们相关联的计算机可读介质为服务器计算机提供了对计算机可读指令、数据结构、程序???,及其他数据的非易失存储器。虽然描述了硬盘、可移动磁盘和可移动光盘,但是,也可以使用诸如闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等等之类的其他类型的计算机可读介质来存储数据。

    数个程序??榭杀淮娲⒃谟才?、磁盘、光盘、ROM,或RAM上。这些程序包括操作系统1830、一个或多个应用程序1832、其他程序???834,以及程序数据1836。应用程序1832或程序???834可包括,例如,所描述的用于实现数据库服务器实例的逻辑,以及群集基础结构逻辑实例。应用程序1832或程序???834也可以包括,例如,用于实现图12-15和17中所描绘的流程图的一个或多个步骤的逻辑。如此,那些图形中所示出的每一步骤都也可以被视为被配置成通过该步骤执行所描述的功能的程序逻辑。

    用户可以通过诸如键盘1838和定点设备1840之类的输入设备向计算机1800中输入命令和信息。其他输入设备(未示出)可以包括麦克风、游戏杆、游戏手柄、圆盘式卫星天线、扫描仪等等。这些及其他输入设备常常通过耦合到总线1806的串行端口接口1842连接到处理单元1802,但是,也可以通过其他接口,诸如并行端口、游戏端口、通用串行总线(USB)端口,来进行连接。

    监视器1844或其他类型的显示设备也可以经由诸如视频适配器1846之类的接口来连接到系统总线1806。监视器1844被用来呈现协助用户/操作员配置和控制计算机1800的GUI。除了监视器之外,计算机1800还可包括其他外围输出设备(未示出),如扬声器和打印机。

    计算机1800通过网络接口1850、调制解调器1852、或用于通过网络建立通信的其他装置连接到网络1848(例如,诸如因特网之类的WAN或LAN)。调制解调器1852(可以是内置的或外置的),通过串行端口接口1842连接到系统总线1806。

    如此处所使用的,术语“计算机程序介质”和“计算机可读介质”被用来泛指诸如与硬盘驱动器1814相关联的硬盘、可移动磁盘1818、可移动光盘1822,以及诸如闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等等之类的其他介质。

    如上文所指出的,计算机程序(包括应用程序1832及其他程序???834)可以存储在硬盘、磁盘、光盘、ROM或RAM上。这样的计算机程序也可以通过网络接口1850或串行端口接口1842来接收。这样的计算机程序,当执行时,使得计算机1800能实现此处所讨论的本发明的特征。相应地,这样的计算机程序表示计算机1800的控制器。

    本发明还涉及包括存储在任何计算机可使用介质上的软件的计算机程序产品。这样的软件,当在一个或多个数据处理设备中执行时,使数据处理设备如此处所描述的那样操作。本发明的各实施例使用现在已知的或将来已知的任何计算机可使用或计算机可读介质。计算机可读介质的示例包括,但不仅限于,诸如RAM、硬盘驱动器、软盘、CD?ROM、DVD?ROM、zip磁盘、磁带、磁存储设备、光存储设备、MEM(存储器)、基于纳米技术的存储设备等等之类的存储设备。

    D.结论

    尽管上文描述了本发明的各实施例,但是,应该理解,它们只是作为示例来呈现的,而不作为限制。那些精通有关技术的人员将理解,在不偏离如所附权利要求书所定义的本发明的精神和范围的情况下,可以在形式和细节方面进行各种修改。因此,本发明的范围不应该受到上述示例性实施例的任一个的限制,而只应根据下面的权利要求和它们的等效内容进行定义。

    关于本文
    本文标题:数据库服务器系统的存储层.pdf
    链接地址://www.4mum.com.cn/p-5867887.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 辽宁11选5几点开始 股票行情走势图 体彩新疆11选5开奖结果查询 如何制作双色球合买格式 大富豪168手游棋牌官网 青海十一选五今天开奖结果查询 蓝球nba比分 新疆十一选五开奖走势图乐彩 456棋牌娱乐网址 福彩3d跨度走势图带线 合买大乐透8jia3 体彩新11选5技法 今日股票推荐短线个股推荐 今日个股推荐 内蒙古十一选五预测软件下载 双色球的篮球投注技巧 山东群英会开奖结果