用于维护数据库与文件系统之间的事务链接级一致性的方法和计算机可读介质。在数据库日志的记录中将文件系统的改变记入日志,且在文件系统文件夹中创建对应于该文件系统改变的文件。在重启恢复过程期间,基于数据库日志执行分析操作和条件重做操作,并基于文件系统文件夹中的文件执行条件重做操作和取消操作。然后基于数据库日志执行取消操作。
【技术实现步骤摘要】
【国外来华专利技术】专利
本专利技术一般涉及数据库管理领域。更具体地,本专利技术涉及维护数据库与相应的文件系统之间的链接级一致性。专利技术背景近年来,对诸如图片、视频和电影的大型非结构化数据类型的使用增长巨大,伴随以高效方式存储这些大量数据流的需求。传统上,在诸如文件系统的结构中或数据库中存储数据。文件系统是其中在诸如硬盘的存储介质上将文件存入文件夹内的分级数据结构。操作系统的一部分维护文件系统,并控制对文件系统中的文件的访问。文件系统擅长将大量非结构化数据以流的形式传入和传出文件。目前已知的文件系统的问题之一在于,诸文件必须被手动组织成分组(诸文件夹和子文件夹),并且,如果用户忘记了他在哪里存储了特定的文件,则可能难以找到该文件。磁盘技术的进步已经预见到发展越来越大的硬盘,诸如此类的技术动力使得这一问题更为严重。能够存储在单张磁盘上的数据的绝对容量可能使跟踪文件系统中的文件成为极其困难的任务。数据组织的另一广泛使用的方法是数据库。数据库系统将数据存储为一个或多个表,其中表的每一行包括涉及一个实体的相关数据元素的多个分组,各列表示关于该行主题的实体的有用信息。例如,可维护人力资源信息的数据库,其中人力资源数据库的每一行表示一个雇员,而人力资源数据库中的每一列表示诸如雇员名、雇员社会保障号以及雇员薪资的数据元素。数据库提供优于数据的文件系统组织的众多有用优点。数据库管理系统擅长存储、寻找和检索结构化数据的细小片段。此外,通常存在搜索和访问存储在数据库中的数据的指定部分的高度灵活的手段。然而,数据库还未能很好地处理大量非结构化数据(被称为BLOB(Binary Large Object,二进制大对象))的存储和访问。-->具体地,当数据库包括BLOB列时,BLOB一般被拆分成分散在磁盘的细小片段。数据库列中的条目包含指向BLOB第一片段的指针而非包含BLOB本身。这种情况导致检索BLOB中的数据的低效率,因为必须找到并重新组合不同的BLOB片段。为了减少这些低效率的影响,通常返回指向BLOB的第一片段的指针而非即时检索BLOB本身。例如,假定雇员信息的数据库包括雇员相片的BLOB列。假定用户请求特定雇员的相片,并向其返回了指向该相片的指针。指针表示一个物理位置——例如,表示磁盘扇区上存储相片第一片段的实际磁盘地址的16字节十六进制值。在这种情况中,会引起若干问题。除了磁盘地址无法为用户所知以外,如果操作系统重新组织磁盘上的数据,则相片可能不再存在于该位置,在这种情况中将向用户返回“找不到”消息。近来,开发了存储BLOB的另一方式,其中BLOB在文件系统中被存储为毗邻文件即“FILESTREAM(文件流)”。提供可用于对关系表中的一列附加标签的FILESTREAM数据存储属性。FILESTREAM属性指示该列的数据将被存储为操作系统(OS)的文件系统中的文件。数据库管理系统管理文件系统中的文件的创建和删除。在文件系统中的文件与单元(行和列的交集)之间存在1:1的引用。可使用诸如SQL或MICROSOFT的T-SQL等程序设计语言按照与其它列中的数据相同的方式操作FILESTREAM列中的数据。因此,FILESTREAM列在数据库中用于大型非结构化数据。对FILESTREAM数据存储属性的使用允许将大型非结构化数据存储为文件系统中的毗邻文件,而同时仍可供数据库访问。这样的数据库管理系统需要维护具有FILESTREAM属性的数据库行与其相应的FILESTREAM数据之间的链接的一致性(即,“链接级一致性”)以确保数据完整性并避免数据库的讹误。例如,如果在将改变提交给磁盘(即“刷新(flush)”)之前,发生诸如电源故障或系统崩溃的故障,则可能导致若干问题。例如,数据库可能不会反映文件系统中存在的文件或目录的存在;或者,数据库可能会反映文件系统中不存在的文件或目录的存在。因此,数据库与文件之间被破坏链接损害了数据库的完整性,因为数据库用户不能确信数据库准确地反映了由数据库列中FILESTREAM单元所表示的数据的当前状态。一般,通过两种不同的方式实现了对链接级一致性的维护:一致性检查和修复,以及日志记录和恢复。在一致性检查和修复中,爬行(crawling)任务搜索数据库和文件系统来检查不一致性并潜在地对其修复。这样的方法费时、目标不明,-->且消耗过多的系统资源。常规的日志记录和恢复方法可在数据库日志中使用日志记录,或与事务化文件系统协作。在前一方法中,文件系统操作与数据库数据更新一起被记录在数据库日志中。在这样的方法中,当数据库管理系统恢复数据库时,可为所记入日志的文件系统操作触发取消和重做操作,并使文件系统数据与同一数据库恢复框架中的数据库数据一致。这种方法的一个缺点是,数据库管理系统通常不与文件系统紧密集成,从而不了解文件系统对磁盘的数据刷新。在不能协调数据刷新的情况下,数据库管理系统必须强制日志刷新每一文件系统操作的日志记录以实现正确的预写式日志,这有助于在崩溃恢复中维护事务链接级一致性。这种强制日志记录导致每个文件系统操作就有一个磁盘I/O操作,通常这是不可接受的性能开支量。后一方法涉及与事务化文件系统协作,其中文件系统本身是事务性的,且能够恢复。数据库管理系统参与由高级事务管理器(Transaction Manager,“TM”)协调的分布式事务。在崩溃恢复期间,高级TM解决有疑问的事务,并确保数据库与文件系统资源管理器之间的一致性。该方法的缺点在于,在商业操作系统上没有可用的事务化文件系统。从而,对许多OS平台上的许多数据库管理系统而言,该方法不可用。此外,该方法具有在实现中增加复杂性和执行成本的缺点。从而,需要维护数据库的诸列与文件系统中其相应的FILESTREAM数据之间的链接级一致性同时解决以上缺点的机制。本专利技术满足这种需求。专利技术概述考虑以上缺点和不足,此处公开用于维护数据库与文件系统之间的事务链接级一致性的方法和计算机可读介质。在一种方法中,在数据库日志的记录中将文件系统改变记入日志,且在文件系统文件夹中创建对应于该文件系统改变的文件。在重启恢复过程期间,基于数据库日志执行分析操作和条件重做操作,并基于文件系统文件夹中的文件执行条件重做操作和取消操作。然后基于数据库日志执行取消操作。附图简述图1是可在其中实现本专利技术的各方面的示例计算环境;图2是可在其中实现本专利技术的各方面的示例数据库配置;图3A-C是可在其中实现本专利技术的各方面的示例日志;-->图4-5是例示根据本专利技术诸实施例的示例方法的流程图。说明性实施例的详细描述结合特征描述本专利技术的主题以满足法定要求。然而,描述本身不旨在限制本专利的范围。相反,专利技术人考虑到,所要求的主题可结合其它目前或将来的技术按照其它方式来具体化,以包括不同的步骤或与本文档中所述的相似的元素。而且,尽管术语“步骤”可在此处用于指示所采用的方法的不同方面,但除非明确描述了各个步骤的顺序,否则该术语不应被解释为暗示此处公开的各个步骤之间的任何特定顺序。示例计算环境图1示出了可在其上实现本专利技术的合适的计算系统环境100的示例。计算系统环境100只是合适的计算环境的一个示例,并不旨在对本专利技术的使用范围或功能提出任何限制。也不应该把计算环境100解释为对示例性操作环境100中示出的任一组件或本文档来自技高网...
【技术保护点】
一种维护数据库与文件系统之间的事务链接级一致性的方法,包括: 将文件系统改变记入数据库日志的记录中; 在文件系统日志文件夹中创建对应于所述文件系统改变的文件;以及在重启恢复中, 基于所述数据库日志,执行分析操作和条件重做操 作; 基于所述文件系统日志,执行条件重做操作和取消操作;以及 基于所述数据库日志,执行取消操作。
【技术特征摘要】
【国外来华专利技术】US 2005-5-6 11/123,5631.一种维护数据库与文件系统之间的事务链接级一致性的方法,包括:将文件系统改变记入数据库日志的记录中;在文件系统日志文件夹中创建对应于所述文件系统改变的文件;以及在重启恢复中,基于所述数据库日志,执行分析操作和条件重做操作;基于所述文件系统日志,执行条件重做操作和取消操作;以及基于所述数据库日志,执行取消操作。2.如权利要求1所述的方法,其特征在于,进一步包括创建与所述文件相关联的文件名。3.如权利要求2所述的方法,其特征在于,所述文件名包括对应于所述文件系统改变的文件系统对象名、日志序列号、事务标识符和操作描述符。4.如权利要求2所述的方法,其特征在于,进一步包括在所述文件名中记录所述数据库日志记录的日志序列号,其中所述日志序列号对应于所述文件系统改变。5.如权利要求1所述的方法,其特征在于,所述记入步骤和创建步骤在所述文件系统改变执行之前进行。6.如权利要求5所述的方法,其特征在于,所述记入步骤在所述创建步骤之前进行。7.如权利要求1所述的方法,其特征在于,所述数据库日志和所述文件系统日志文件夹分别包括多项记录和多个文件,所述方法进一步包括:把与所述文件系统改变相关联的日志序列号记录到所述多项记录的其中之一;选择所述多项记录的其中之一,其中所述执行条件重做操作步骤进一步包括:将与所述文件系统改变相关联的最大日志序列号同与所选择的记录相关联的日志序列号进行比较。8.如权利要求7所述的方法,其特征在于,如果与所选择的记录相关联的所述日志序列号大于或等于与所述文件系统改变相关联的最大日志序列号,则对所述文件执行所述条件重做操作。9.如权利要求1所述的方法,其特征在于,所述文件系统改变是对存储在所述文件系统中的二进制大对象数据做出的。10.如权利要求1所述的方法,其特征在于,所述文件系统改变是对所述文件系统的文件或目录做出的。11.如权利要求1所述的方法,其特征在于,所述对数据库日志执行分析操作、条件重做操作和取消操作的各步骤是根据利用语义的恢复和隔离算法(ARIES)执行的。12.如权利要求1所述的方法,其特征在于,所述对文件执行条件重做操作和取消操作的各步...
【专利技术属性】
技术研发人员:BS拉曼,K严,RB拉杰恩,
申请(专利权)人:微软公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。