用于审计跟踪的无回滚阈值的制作方法

文档序号:9829923阅读:364来源:国知局
用于审计跟踪的无回滚阈值的制作方法【专利说明】【
背景技术
】[0001]随着用户不断增加产生的和需要的数据量,位于计算系统上的数据库的重要性、规模和复杂性已经增长。例如,数据库可以跨越多个服务器,可以包含数百万个记录和若干千兆字节数据。结果,数据库管理也已经变得越来越重要和复杂。【附图说明】[0002]下面的详细描述参考附图,其中:[0003]图1图示根据本公开的示例的利用无回滚阈值的审计跟踪的框图;[0004]图2A-图2B图示根据本公开的示例的用于为审计跟踪所用的无回滚阈值的计算系统的框图。[0005]图3图示根据本公开的示例的用于处理为审计跟踪所用的无回滚事务的方法的流程图。[0006]图4A-图4D图示根据本公开的示例的用于基于为审计跟踪所用的无回滚阈值来确定是否提交或终止事务的方法。【具体实施方式】[0007]当数据库管理员涉及修改数据库时,他们会希望监视并记录数据库事务。例如,监视和记录(也称为审计)可以基于单独的动作,如所执行的SQL语句的类型,和/或基于多个因素的组合,如执行动作的用户、应用程序、时间等。审计(auditing)可以监视并收集关于数据库活动的数据,如关于哪些表格正被更新的统计结果、关于哪些用户正在修改数据库内容的统计结果等等。[0008]在传统数据库中,这些事务被记录到审计跟踪(audittrail)内,以使可以重放或撤销这些事务,如在发生错误时或者为了恢复目的而重放或撤销这些事务。这些审计跟踪(或者审计日志)有时被实现为环形缓冲器;一旦所有之前的缓冲器都被填满并且之前的事务活动存储不再需要下一缓冲器,就重新使用该环形缓冲器。在这些缓冲器内,事务具有开始和末尾,并且在该范围内描述事务的审计跟踪记录。有时将该范围描述为存在于分别以事务的第一个审计跟踪记录位置和同一事务的最后一个审计跟踪记录的位置为特征的低水位标志(LffM)和高水位标志(HffM)之间。HffM还可以是事务的最终状态记录(提交或终止)。[0009]在审计跟踪记录的该范围或跨度内,可能仅存在指定事务的记录,或更可能地,可能存在其它不同事务的混合审计记录。只要LWM属于的那些事务仍然未解决,事务的LWM通常用于识别或标记不能被重新用于新事务的审计缓冲器。也就是说,直到特定LffM提交或终止并且成为数据库的永久部分,该特定LffM才能够被再用于新事务。[0010]数据库的规模正在逐步增大,并且在那些正在增长的数据库上运行的工作负荷的复杂性正在增加。因此,事务的审计跟踪跨度(在LffM和HffM之间的范围)也渐渐变得更大。在所谓的“大数据”实现方式中,单个查询或变换会容易地超过所分配的审计跟踪空间的全部容量或者维护充足审计跟踪空间的成本过高,是十分可能的。在也不增加审计跟踪的容量的情况下,在事务完成之前耗尽审计跟踪空间的风险上升。之前,已经实施多种策略来尝试适应不断增大的审计跟踪的空间要求。例如,已经构思出增加更多审计容量或从平台上去除旧的审计跟踪以释放本地磁盘空间。然而,这些解决方案通过增加磁盘空间或将日志移动至另一指定存储位置,提高了成本,同时还提高了附加服务器空间的成本。[0011]此外,可以针对最常见情况优化数据库系统,最常见情况是事务提交。当事务进入回滚状态时,在生成并处理补偿记录以将数据库回滚至一致的或已知的状态方面,经常低效得多。如果事务产生多个审计记录并且在事务终止之前活跃几分钟(例如,十五分钟),那么事务回滚花费几个小时可能不是异常的,在该时间期间底层SQL表格可以被锁定,这将防止发生附加操作。[0012]下面将通过参考用于审计跟踪的无回滚阈值的几个示例来描述各个实施例。无回滚阈值允许数据库管理员(DBA)规定在改变事务的个性之前允许该事务跨越的审计范围,使得将不再尝试回滚。事务将不被终止,并且该事务继续,好像什么也没改变一样。然而,如果该事务因某种原因而应该终止,那么作为操作或硬件错误的结果或者应用户的请求,该事务将不回滚并相反将被终止。[0013]在一些实现方式中,无回滚阈值可以防止回滚期间的延长停歇或禁闭时间段。如果数据库是空的并且正被填充,那么通过返回空数据库来重启加载而不是尝试针对事务回滚发生而等待延长的一段时间,可能是令人期望的。此外,没必要将从平台离开的较旧审计跟踪归档,因为将永远不需要它们。这消除了离开平台存储的成本以及恢复和读取日志所需的时间。由于大型事务在审计跟踪中跨越太多空间,所以可能也不需要阻挡新事务,因为这种事务被自动地转换成无回滚。这允许系统中的其它工作正常地进行。因为放弃了这种事务,所以消除了从巨大表格加载故障的延长恢复时间和总表锁(grosstablelock)。能够在短时间内丢弃并重新创建这些表,并且正常操作能够继续。这些和其它优点将从随后的描述中显而易见。[0014]图1图示根据本公开的示例的具有无回滚阈值的审计跟踪100的框图。[0015]无回滚阈值的一个实现方式暴露被称为无回滚阈值的可配置的审计跟踪容量参数,该无回滚阈值在被事务超过时引起将该事务转换至无回滚状态。如果发生错误,那么超过该阈值的事务被放弃而不是被终止(回滚)。例如,图1图示由10个文件102a-102j构成的审计跟踪100。每个文件可以具有限定的容量(在一个示例中,每个文件100MB容量)。总计,审计跟踪100包括用于该总共10个文件102a-102j的空间(在这个示例中,用于审计跟踪100的1,000ΜΒ总容量)。[0016]用户或DBA可以建立无回滚阈值,该无回滚阈值在跨越超过该阈值的任何事务超过该无回滚阈值时将被转换至无回滚状态。被转换至无回滚状态(也被称为无回滚事务)的事务在该事务的处理期间在发生错误的情况下不会回滚。在这个示例中,将无回滚阈值设置成40%的容量阈值,并且该审计跟踪具有I,000ΜΒ的可用存储空间。允许将比审计跟踪100中的可用空间小的事务(如TX104)存储在该审计跟踪中。更特别地,在该示例中,TX104跨越300MB,因为它占据三个100MB的文件102b-102d。当TX104开始时,在文件102b处,在审计跟踪中仅使用100MB的空间(S卩,仅使用100MB的文件102a)。这意味着,审计跟踪100中的可用容量是900MB或90%,其大于被设置在40%的无回滚阈值110。因为在审计跟踪100中的可用容量大于无回滚阈值110,所以该审计跟踪能够存储TX104。[0017]然而,TX106(跨越600MB的事务)不能被存储在审计跟踪100中,因为TX106的跨度超过无回滚阈值110。换句话说,审计跟踪100中的可用容量小于无回滚阈值110。更具体地,TX106开始文件102e,意味着在审计跟踪100中已经使用400MB的容量。因为TX106超过无回滚阈值110,所以TX106可以存储在审计跟踪100中;然而,不是与TX106相关的所有文件都被保持到事务完成,因为将不需要早期记录用于事务回滚。[0018]应该理解,通过观察每个事务的低水位标志能够进行相同的确定。例如,LffM104a表示TX104的低水位标志,而LWM106a表示TX106的低水位标志。类似地,HffM104b表示TX104的高水位标志,而HWM106b表示TX106的高水位标志。审计跟踪100被限定为审计跟踪108的开始和当前EOF112之间的空间,当前EOF112是文件位置的当前末尾。[0019I在图1所示的示例中,文件112的当前末尾(EOF)还表示活跃事务(如TX106)的HffM。在这种情况中,HWM106b对应于当前EOF112,并且在将事务转换成无回滚之前,根据EOF112对无回滚阈值位置进行的计算提供所允许的最低LWM。在这种情况中,40%的无回滚阈值在文件102g处显示。如果活跃事务(如TX106)具有在文件102a-102f中的LWM,那么事务将被转换成无回滚事务。在本示例中,TX106具有在该范围中的LWM(LMW106a在文件102e中),当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1